SlideShare a Scribd company logo
Seungchul Lee, sclee@bistel.com
BISTel Inc.
Daeyoung Kim, dykim3@bistel.com
BISTel Inc.
Analyzing 2TB of Raw Trace Data
from a Manufacturing Process:
A First Use Case of Apache Spark for
Semiconductor Wafers from Real Industry
#UnifiedAnalytics #SparkAISummit
Contents
2#UnifiedAnalytics #SparkAISummit
• Introduction to BISTel
– BISTel’s business and solutions
– Big Data for BISTel’s smart manufacturing
• Use cases of Apache Spark in manufacturing industry
– Trace Analyzer (TA)
– Map Analyzer (MA)
Introduction to BISTel
3#UnifiedAnalytics #SparkAISummit
BISTel’s business areas
• Providing analytic solutions based on Artificial Intelligence (AI)
and Big Data to the customers for Smart Factory
4#UnifiedAnalytics #SparkAISummit
BISTel’s solution areas
• World-Class Manufacturing Intelligence through innovation
5#UnifiedAnalytics #SparkAISummit
BISTel’s analytic solution: eDataLyzer
6#UnifiedAnalytics #SparkAISummit
BISTel’s analytic solutions (MA)
7#UnifiedAnalytics #SparkAISummit
• Map Pattern Clustering
– Automatically detect and classify map patterns with/without libraries
– Process thousands of wafers and give results in few minutes
Clustered
Defective
wafers
BISTel’s analytic solutions (TA)
• Specialized Application for Trace Raw Data
– Extracts the vital signs out of equipment trace data
– Provide in-depth analysis which traditional methods cannot reach
8#UnifiedAnalytics #SparkAISummit
Abnormal
Normal
BISTel’s big data experiences
9#UnifiedAnalytics #SparkAISummit
BISTel’s big data experiences
10#UnifiedAnalytics #SparkAISummit
- YMA Test using Spark - - Big data platforms comparison-
Trace Analyzer (TA)
11#UnifiedAnalytics #SparkAISummit
Trace Data
• Trace Data is sensor data collected from processing equipment
within a semiconductor fab during a process run.
12#UnifiedAnalytics #SparkAISummit
- Semiconductor industry -
- Wafer -
Logical Hierarchy of the trace data
13#UnifiedAnalytics #SparkAISummit
Wafer
Lot
Recipe Step
Recipe
Process
Visualization
Whole
process
Process
Recipe 1
wafer
An example of the trace data
14#UnifiedAnalytics #SparkAISummit
Process Recipe Recipe step Lot Wafer Param1 Param2 Time
021_LIT RecipeA 1 1501001 1 32.5 45.4
2015-01-20
09:00:00
Data attributes
• Base unit : one process and one parameters
• 1000 wafers
• Each wafer has 1000~2000 data points in a recipe step
• Some factors that make trace data huge volume
• # of parameters
• # of processes
• # of wafers
• # of recipe steps
• duration of the recipe step
15#UnifiedAnalytics #SparkAISummit
An example of the trace data – (2)
16#UnifiedAnalytics #SparkAISummit
No. Fab
# of
processes
# of
recipe steps
Avg. Recipe
ProcessTime
Data
Frequency
# of
units
Parameter
per unit
(max)
1 Array 109 10 16 mins 1Hz 288 185
2 CF 25 5 1min 1Hz 154 340
3 CELL 12 7 1min 1Hz 213 326
4 MDL 5 12 2mins 1Hz 32 154
• Some calculations
• For one process, one parameter and one wafer
• 16 * 10 * 60 sec * 1Hz = 9600 points
• Multi parameters, multi processes and multi wafers
• 9600 * 288 *185 * 109 * (# of wafers)
Spark : Smart manufacturing
• Spark is a best way to process big data in batch analytics
• Distributing data based on parameter is suitable for using
Apache Spark.
• Easy deployment and scalability when it comes to providing the
solutions to our customers
17#UnifiedAnalytics #SparkAISummit
18#UnifiedAnalytics #SparkAISummit
Naïve way: applying spark to TA
How to apply Spark to TA?
traceDataSet = config.getTraceRDDs().mapToPair(t->{
String recipeStepKey = TAUtil.getRecipeStepKey(t); #use recipe step as key
return new Tuple2<String,String>(recipeStepKey,t);
}).groupByKey();
traceDataSet.flatMap(t->{
Map<String,TraceDataSet> alltraceData = TAUtil.getTraceDataSet(t);
...
TAUtil.seperateFocusNonFocus(alltraceData,focus,nonFocus); #separate data
ta.runTraceAnalytic(focus,nonFocus,config); # calling the TA core
...
});
Most cases in manufacturing industry
• In real industry, most parameters have small number of data points.
(Most case : 1Hz)
• In addition, the number of wafers to be analyzed is not massive.
(up to 1,000 wafers)
• Therefore the total number of data points in a process can be easily
processed in a core
Issues in manufacturing industry
21#UnifiedAnalytics #SparkAISummit
• Last year, I have got an email indicating that..
Big parameter
22#UnifiedAnalytics #SparkAISummit
• Tools with high frequency or high recipe time can produce huge
volume for single parameter
• Requirements in industry
• For one parameter
• 400,000 wafers
• 20,000 data points.
Limitations of the Naïve TA
23#UnifiedAnalytics #SparkAISummit
For(Tuple<String,Iterable<String> recipeTrace : allTraceData){
TraceDataSet ftds = new TraceDataSet();
Iterable<String> oneRecipe = recipeTrace._2();
for(String tr : oneRecipe){
TraceData td = TAUtil.convertToTraceData(tr);
ftds.add(td);
}
}
traceDataSet = config.getTraceRDDs().mapToPair(t->{
String recipeStepKey = TAUtil.getRecipeStepKey(t); #use recipe step as key
return new Tuple2<String,String>(recipeStepKey,t);
}).groupByKey();
All the data points based
on the key are pushed
into one core by shuffling
Java object holds too
many data points
Needs for new TA spark
24#UnifiedAnalytics #SparkAISummit
• Naïve TA Spark version cannot process massive data points.
• Nowadays, new technology enhancements enable data capture at
much higher frequencies.
• TA for “big parameter” version is necessary.
Our idea is that..
25#UnifiedAnalytics #SparkAISummit
• Extracting the TA core logic
– Batch mode
– Key-based processing
– Using .collect() to broadcast variables
– Caching the object
• Preprocessing trace data
• Key-based processing
• Base unit : process key or recipe step key
Batch
26#UnifiedAnalytics #SparkAISummit
JavaPairRDD<String, List<String>> traceDataRDD
= TAImpl.generateBatch(traceData)
First element : process, recipe
step, parameter and batch ID
Second element : lot, wafer and
trace values
Summary
statistics
.
.
.
•Param A
Collect() : TA Cleaner
27#UnifiedAnalytics #SparkAISummit
• Filtering out traces that have unusual duration of process time.
• Use the three main Spark APIs
– mapToPair : extract relevant information
– reduceByKey : aggregating values based on the key
– collect : send the data to the driver
Collect() : TA Cleaner – (2)
28#UnifiedAnalytics #SparkAISummit
Worker
wafer value
1 65
2 54
… …
Worker
wafer value
1 83
2 54
… …
Worker
wafer value
1 34
2 77
… …
Worker
wafer value
1 71
2 80
… …
• traceData.mapToPair()
• Return
• key : process
• value : wafer and its length
Collect() : TA Cleaner – (3)
29#UnifiedAnalytics #SparkAISummit
• reduceByKey()
• Aggregating contexts into one based on the process key
wafer value
1 65
2 54
… …
Shuffling
wafer value
1 88
2 92
… …
wafer value
1 153
2 146
… …
Collect() : TA Cleaner – (4)
30#UnifiedAnalytics #SparkAISummit
• Applying filtering method in each worker
mapToPair(t -> {
String pk = t._1();
Double[] values = toArray(t._2());
FilterThresdholds ft = CleanerFilter.filterByLength(values);
return Tuple(pk,ft);
}).collect();
Examples 2 : Computing outlier
31#UnifiedAnalytics #SparkAISummit
• To detect the outlier in a process, median statistics is required.
• To compute the median value, the values need to be sorted.
• Sort(values)
Examples 2 : Computing outlier – (2)
32#UnifiedAnalytics #SparkAISummit
mapToPair reduceByKey
• Computed the approximate median value for big data processing.
• Applied histogram for median
• Collecting the histogram
Collect
Caching the trace data
33#UnifiedAnalytics #SparkAISummit
• Persist the trace data before applying TA algorithm
• Be able to prevent data load when the action is performed
Focus=Focus.persist(StorageLevel.MEMORY() AND DISK())
NonFocus=NonFocus.persist(StorageLevel.MEMORY() AND DISK())
RDD vs. DataSet (DataFrame)
34#UnifiedAnalytics #SparkAISummit
• RDD
– All the data points in a process should be scanned
• Advantage of the DataSet is weakened.
– Hard to manipulate trace data using SQL
– Basic statistics (i.e. Min, Max, Avg, Count…)
– Advanced algorithm (Fast Fourier Transform and
Segmentation)
Demo : Running the TA algorithm
35#UnifiedAnalytics #SparkAISummit
• Analyzed 2TB trace data using TA
TA results in eDataLyzer
36#UnifiedAnalytics #SparkAISummit
Results of the Naïve TA
37#UnifiedAnalytics #SparkAISummit
Results of the big parameter TA Spark
38#UnifiedAnalytics #SparkAISummit
• Two different TA Spark versions
Two different TA Spark versions
39#UnifiedAnalytics #SparkAISummit
Data size
# of
parameter
# of
wafers
# of data
points
Running Time
Naïve TA 2TB 270,000 250 1000 1.1h
Big Param TA 1TB 4 400,000 20,000 54min
Map Analyzer (MA)
40#UnifiedAnalytics #SparkAISummit
Map Analytics (MA)
41#UnifiedAnalytics #SparkAISummit
• Hierarchical clustering is used to find a defect pattern
S.-C. Hsu, C.-F. Chien / Int. J. Production Economics 107 (2007) 88–103
MA datasets
42#UnifiedAnalytics #SparkAISummit
Process Process step Parameter Lot Wafer
Defective
chips
FPP Fall_bin P01 8152767 23
-02,04|-
01,22|+00,25|+08,
33|+04,05
waferDataSetRDD.mapToPair(...).groupBy().mapToPair(...);
Generating
a key value pair
Calling hierarchical
clustering
BISTel’s first approach for MA
43#UnifiedAnalytics #SparkAISummit
• Using the batch mode for clustering massive wafers.
Demo : Running the MA algorithm
44#UnifiedAnalytics #SparkAISummit
• Dataset consists of 26 parameters containing 120,000 wafers
Problems in batch for clustering
45#UnifiedAnalytics #SparkAISummit
• In a manufacturing industry, some issues exist
# of wafers Time Detecting a pattern
DataSet1 15 2017-02-01:09:00 ~ 09:30 Yes
DataSet2 7,000 2017-02-01~2017-02-08 No
Spark summit: SHCA algorithm
46#UnifiedAnalytics #SparkAISummit
• In Spark Summit 2017, chen jin presented a scalable hierarchical
clustering algorithm using Spark.
A SHCA algorithm using Spark
47#UnifiedAnalytics #SparkAISummit
Jin, Chen, et al. "A scalable hierarchical clustering algorithm using
spark." 2015 IEEE First International Conference on Big Data Computing
Service and Applications. IEEE, 2015.
Applying SHCA to wafer datasets
48#UnifiedAnalytics #SparkAISummit
Wafer map ID Coordinates of defective chips
A (13,22), (13,23), (13,24), (13,25)…
B (5,15), (6,12), (6,17), (8,25)…
C (9,29), (16,33), (19,39), (22,25)…
D (19,9), (20,2), (23,21), (25,4)…
E (5,5), (5,8), (5,15), (5,25)…
• Designed the key-value pairs
• Minimum spanning tree (MST)
– Vertex : Wafer
– Edge : distance between wafers
• distance w1, w2
Comparison between two versions
49#UnifiedAnalytics #SparkAISummit
Comparison between two versions - (2)
50#UnifiedAnalytics #SparkAISummit
Spark stage results of MA
51#UnifiedAnalytics #SparkAISummit
• Approximately 100,000 wafers are analyzed for clustering
Comparison of the results
52#UnifiedAnalytics #SparkAISummit
0
500
1000
1500
2000
2500
5,000 50,000 100k 160k 320k
Batch New MA
Summary
53#UnifiedAnalytics #SparkAISummit
• MA using SHCA is accurate than the batch MA.
• However, the running time of the batch MA is faster than that of the
new MA.
• In manufacturing industry, we suggest them to use both of two MAs.
Conclusions
54#UnifiedAnalytics #SparkAISummit
• A first use case of Apache Spark in Semiconductor industry
– Terabytes of trace data is processed
– Achieved hierarchical clustering on distributed machines for
semiconductor wafers
Acknowledgements
55#UnifiedAnalytics #SparkAISummit
• BISTel Korea (BK)
– Andrew An
• BISTel America (BA)
– James Na
– WeiDong Wang
– Rachel Choi
– Taeseok Choi
– Mingyu Lu
* This work was supported by the World Class 300 Project (R&D) (S2641209, "Development of next generation intelligent Smart
manufacturing solution based on AI & Big data to improve manufacturing yield and productivity") of the MOTIE, MSS(Korea).
DON’T FORGET TO RATE
AND REVIEW THE SESSIONS
SEARCH SPARK + AI SUMMIT

More Related Content

PDF
Apache Spark At Apple with Sam Maclennan and Vishwanath Lakkundi
PDF
Do's and Don'ts im Personalcontrolling
PDF
Residencial SONNATA
PDF
Snowflake SnowPro Core Cert CheatSheet.pdf
PDF
Hive Bucketing in Apache Spark with Tejas Patil
PPTX
Flink Forward Berlin 2017: Piotr Nowojski - "Hit me, baby, just one time" - B...
PPT
Hive Training -- Motivations and Real World Use Cases
PDF
Lessons in Linear Algebra at Scale with Apache Spark : Let's Make the Sparse ...
Apache Spark At Apple with Sam Maclennan and Vishwanath Lakkundi
Do's and Don'ts im Personalcontrolling
Residencial SONNATA
Snowflake SnowPro Core Cert CheatSheet.pdf
Hive Bucketing in Apache Spark with Tejas Patil
Flink Forward Berlin 2017: Piotr Nowojski - "Hit me, baby, just one time" - B...
Hive Training -- Motivations and Real World Use Cases
Lessons in Linear Algebra at Scale with Apache Spark : Let's Make the Sparse ...

What's hot (20)

PDF
HBase Storage Internals
PPTX
Introduction to Data Warehousing
PDF
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
PDF
Simplifying Disaster Recovery with Delta Lake
PPTX
Optimizing Apache Spark SQL Joins
PDF
Arban complete method for trumpet allen vizzutti
PDF
You might be paying too much for BigQuery
PPTX
Demystifying data engineering
PDF
chorinho de gafieira
PPTX
Hive + Tez: A Performance Deep Dive
PDF
Cloud Data Warehouses
PDF
Internals of Presto Service
PDF
Simplifying Change Data Capture using Databricks Delta
PPTX
How to understand and analyze Apache Hive query execution plan for performanc...
PDF
Data Governance
PDF
Fine Tuning and Enhancing Performance of Apache Spark Jobs
PDF
Bach minueto-g
PDF
DOC
Listaextra mat2 mab
PDF
Apache Spark PDF
HBase Storage Internals
Introduction to Data Warehousing
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Simplifying Disaster Recovery with Delta Lake
Optimizing Apache Spark SQL Joins
Arban complete method for trumpet allen vizzutti
You might be paying too much for BigQuery
Demystifying data engineering
chorinho de gafieira
Hive + Tez: A Performance Deep Dive
Cloud Data Warehouses
Internals of Presto Service
Simplifying Change Data Capture using Databricks Delta
How to understand and analyze Apache Hive query execution plan for performanc...
Data Governance
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Bach minueto-g
Listaextra mat2 mab
Apache Spark PDF
Ad

Similar to Analyzing 2TB of Raw Trace Data from a Manufacturing Process: A First Use Case of Apache Spark for Semiconductor Wafers from Real Industry (20)

PDF
Learnings Using Spark Streaming and DataFrames for Walmart Search: Spark Summ...
PDF
Performance Analysis of Apache Spark and Presto in Cloud Environments
PDF
Apache Spark Performance Troubleshooting at Scale, Challenges, Tools, and Met...
PPS
Teradata Partner 2016 Gas_Turbine_Sensor_Data
PDF
How to Automate Performance Tuning for Apache Spark
PDF
Webinar: Data Modeling and Shortcuts to Success in Scaling Time Series Applic...
PPTX
Real time streaming analytics
PDF
Track A-2 基於 Spark 的數據分析
PDF
Fast and Reliable Apache Spark SQL Engine
PPTX
SnappyData Ad Analytics Use Case -- BDAM Meetup Sept 14th
PDF
Open Source Innovations in the MapR Ecosystem Pack 2.0
PPTX
Leveraging smart meter data for electric utilities: Comparison of Spark SQL w...
PDF
Macy's: Changing Engines in Mid-Flight
PDF
Spark Autotuning - Spark Summit East 2017
PDF
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
PDF
Cooperative Task Execution for Apache Spark
PDF
Performance Troubleshooting Using Apache Spark Metrics
PDF
Mastering Query Optimization Techniques for Modern Data Engineers
PPTX
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
PPTX
All (that i know) about exadata external
Learnings Using Spark Streaming and DataFrames for Walmart Search: Spark Summ...
Performance Analysis of Apache Spark and Presto in Cloud Environments
Apache Spark Performance Troubleshooting at Scale, Challenges, Tools, and Met...
Teradata Partner 2016 Gas_Turbine_Sensor_Data
How to Automate Performance Tuning for Apache Spark
Webinar: Data Modeling and Shortcuts to Success in Scaling Time Series Applic...
Real time streaming analytics
Track A-2 基於 Spark 的數據分析
Fast and Reliable Apache Spark SQL Engine
SnappyData Ad Analytics Use Case -- BDAM Meetup Sept 14th
Open Source Innovations in the MapR Ecosystem Pack 2.0
Leveraging smart meter data for electric utilities: Comparison of Spark SQL w...
Macy's: Changing Engines in Mid-Flight
Spark Autotuning - Spark Summit East 2017
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
Cooperative Task Execution for Apache Spark
Performance Troubleshooting Using Apache Spark Metrics
Mastering Query Optimization Techniques for Modern Data Engineers
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
All (that i know) about exadata external
Ad

More from Databricks (20)

PPTX
DW Migration Webinar-March 2022.pptx
PPTX
Data Lakehouse Symposium | Day 1 | Part 1
PPT
Data Lakehouse Symposium | Day 1 | Part 2
PPTX
Data Lakehouse Symposium | Day 2
PPTX
Data Lakehouse Symposium | Day 4
PDF
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
PDF
Democratizing Data Quality Through a Centralized Platform
PDF
Learn to Use Databricks for Data Science
PDF
Why APM Is Not the Same As ML Monitoring
PDF
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
PDF
Stage Level Scheduling Improving Big Data and AI Integration
PDF
Simplify Data Conversion from Spark to TensorFlow and PyTorch
PDF
Scaling your Data Pipelines with Apache Spark on Kubernetes
PDF
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
PDF
Sawtooth Windows for Feature Aggregations
PDF
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
PDF
Re-imagine Data Monitoring with whylogs and Spark
PDF
Raven: End-to-end Optimization of ML Prediction Queries
PDF
Processing Large Datasets for ADAS Applications using Apache Spark
PDF
Massive Data Processing in Adobe Using Delta Lake
DW Migration Webinar-March 2022.pptx
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 4
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
Democratizing Data Quality Through a Centralized Platform
Learn to Use Databricks for Data Science
Why APM Is Not the Same As ML Monitoring
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
Stage Level Scheduling Improving Big Data and AI Integration
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Sawtooth Windows for Feature Aggregations
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Re-imagine Data Monitoring with whylogs and Spark
Raven: End-to-end Optimization of ML Prediction Queries
Processing Large Datasets for ADAS Applications using Apache Spark
Massive Data Processing in Adobe Using Delta Lake

Recently uploaded (20)

PDF
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
PPTX
IB Computer Science - Internal Assessment.pptx
PDF
Foundation of Data Science unit number two notes
PPTX
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
PDF
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
PPT
ISS -ESG Data flows What is ESG and HowHow
PDF
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
PDF
Business Analytics and business intelligence.pdf
PPTX
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
PDF
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
PDF
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
PDF
.pdf is not working space design for the following data for the following dat...
PPTX
IBA_Chapter_11_Slides_Final_Accessible.pptx
PDF
Lecture1 pattern recognition............
PPTX
Introduction to Knowledge Engineering Part 1
PPTX
01_intro xxxxxxxxxxfffffffffffaaaaaaaaaaafg
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PPTX
Acceptance and paychological effects of mandatory extra coach I classes.pptx
PPTX
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
PDF
Mega Projects Data Mega Projects Data
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
IB Computer Science - Internal Assessment.pptx
Foundation of Data Science unit number two notes
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
ISS -ESG Data flows What is ESG and HowHow
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
Business Analytics and business intelligence.pdf
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
.pdf is not working space design for the following data for the following dat...
IBA_Chapter_11_Slides_Final_Accessible.pptx
Lecture1 pattern recognition............
Introduction to Knowledge Engineering Part 1
01_intro xxxxxxxxxxfffffffffffaaaaaaaaaaafg
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
Acceptance and paychological effects of mandatory extra coach I classes.pptx
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
Mega Projects Data Mega Projects Data

Analyzing 2TB of Raw Trace Data from a Manufacturing Process: A First Use Case of Apache Spark for Semiconductor Wafers from Real Industry

  • 1. Seungchul Lee, sclee@bistel.com BISTel Inc. Daeyoung Kim, dykim3@bistel.com BISTel Inc. Analyzing 2TB of Raw Trace Data from a Manufacturing Process: A First Use Case of Apache Spark for Semiconductor Wafers from Real Industry #UnifiedAnalytics #SparkAISummit
  • 2. Contents 2#UnifiedAnalytics #SparkAISummit • Introduction to BISTel – BISTel’s business and solutions – Big Data for BISTel’s smart manufacturing • Use cases of Apache Spark in manufacturing industry – Trace Analyzer (TA) – Map Analyzer (MA)
  • 4. BISTel’s business areas • Providing analytic solutions based on Artificial Intelligence (AI) and Big Data to the customers for Smart Factory 4#UnifiedAnalytics #SparkAISummit
  • 5. BISTel’s solution areas • World-Class Manufacturing Intelligence through innovation 5#UnifiedAnalytics #SparkAISummit
  • 6. BISTel’s analytic solution: eDataLyzer 6#UnifiedAnalytics #SparkAISummit
  • 7. BISTel’s analytic solutions (MA) 7#UnifiedAnalytics #SparkAISummit • Map Pattern Clustering – Automatically detect and classify map patterns with/without libraries – Process thousands of wafers and give results in few minutes Clustered Defective wafers
  • 8. BISTel’s analytic solutions (TA) • Specialized Application for Trace Raw Data – Extracts the vital signs out of equipment trace data – Provide in-depth analysis which traditional methods cannot reach 8#UnifiedAnalytics #SparkAISummit Abnormal Normal
  • 9. BISTel’s big data experiences 9#UnifiedAnalytics #SparkAISummit
  • 10. BISTel’s big data experiences 10#UnifiedAnalytics #SparkAISummit - YMA Test using Spark - - Big data platforms comparison-
  • 12. Trace Data • Trace Data is sensor data collected from processing equipment within a semiconductor fab during a process run. 12#UnifiedAnalytics #SparkAISummit - Semiconductor industry - - Wafer -
  • 13. Logical Hierarchy of the trace data 13#UnifiedAnalytics #SparkAISummit Wafer Lot Recipe Step Recipe Process Visualization Whole process Process Recipe 1 wafer
  • 14. An example of the trace data 14#UnifiedAnalytics #SparkAISummit Process Recipe Recipe step Lot Wafer Param1 Param2 Time 021_LIT RecipeA 1 1501001 1 32.5 45.4 2015-01-20 09:00:00
  • 15. Data attributes • Base unit : one process and one parameters • 1000 wafers • Each wafer has 1000~2000 data points in a recipe step • Some factors that make trace data huge volume • # of parameters • # of processes • # of wafers • # of recipe steps • duration of the recipe step 15#UnifiedAnalytics #SparkAISummit
  • 16. An example of the trace data – (2) 16#UnifiedAnalytics #SparkAISummit No. Fab # of processes # of recipe steps Avg. Recipe ProcessTime Data Frequency # of units Parameter per unit (max) 1 Array 109 10 16 mins 1Hz 288 185 2 CF 25 5 1min 1Hz 154 340 3 CELL 12 7 1min 1Hz 213 326 4 MDL 5 12 2mins 1Hz 32 154 • Some calculations • For one process, one parameter and one wafer • 16 * 10 * 60 sec * 1Hz = 9600 points • Multi parameters, multi processes and multi wafers • 9600 * 288 *185 * 109 * (# of wafers)
  • 17. Spark : Smart manufacturing • Spark is a best way to process big data in batch analytics • Distributing data based on parameter is suitable for using Apache Spark. • Easy deployment and scalability when it comes to providing the solutions to our customers 17#UnifiedAnalytics #SparkAISummit
  • 19. How to apply Spark to TA? traceDataSet = config.getTraceRDDs().mapToPair(t->{ String recipeStepKey = TAUtil.getRecipeStepKey(t); #use recipe step as key return new Tuple2<String,String>(recipeStepKey,t); }).groupByKey(); traceDataSet.flatMap(t->{ Map<String,TraceDataSet> alltraceData = TAUtil.getTraceDataSet(t); ... TAUtil.seperateFocusNonFocus(alltraceData,focus,nonFocus); #separate data ta.runTraceAnalytic(focus,nonFocus,config); # calling the TA core ... });
  • 20. Most cases in manufacturing industry • In real industry, most parameters have small number of data points. (Most case : 1Hz) • In addition, the number of wafers to be analyzed is not massive. (up to 1,000 wafers) • Therefore the total number of data points in a process can be easily processed in a core
  • 21. Issues in manufacturing industry 21#UnifiedAnalytics #SparkAISummit • Last year, I have got an email indicating that..
  • 22. Big parameter 22#UnifiedAnalytics #SparkAISummit • Tools with high frequency or high recipe time can produce huge volume for single parameter • Requirements in industry • For one parameter • 400,000 wafers • 20,000 data points.
  • 23. Limitations of the Naïve TA 23#UnifiedAnalytics #SparkAISummit For(Tuple<String,Iterable<String> recipeTrace : allTraceData){ TraceDataSet ftds = new TraceDataSet(); Iterable<String> oneRecipe = recipeTrace._2(); for(String tr : oneRecipe){ TraceData td = TAUtil.convertToTraceData(tr); ftds.add(td); } } traceDataSet = config.getTraceRDDs().mapToPair(t->{ String recipeStepKey = TAUtil.getRecipeStepKey(t); #use recipe step as key return new Tuple2<String,String>(recipeStepKey,t); }).groupByKey(); All the data points based on the key are pushed into one core by shuffling Java object holds too many data points
  • 24. Needs for new TA spark 24#UnifiedAnalytics #SparkAISummit • Naïve TA Spark version cannot process massive data points. • Nowadays, new technology enhancements enable data capture at much higher frequencies. • TA for “big parameter” version is necessary.
  • 25. Our idea is that.. 25#UnifiedAnalytics #SparkAISummit • Extracting the TA core logic – Batch mode – Key-based processing – Using .collect() to broadcast variables – Caching the object
  • 26. • Preprocessing trace data • Key-based processing • Base unit : process key or recipe step key Batch 26#UnifiedAnalytics #SparkAISummit JavaPairRDD<String, List<String>> traceDataRDD = TAImpl.generateBatch(traceData) First element : process, recipe step, parameter and batch ID Second element : lot, wafer and trace values Summary statistics . . . •Param A
  • 27. Collect() : TA Cleaner 27#UnifiedAnalytics #SparkAISummit • Filtering out traces that have unusual duration of process time. • Use the three main Spark APIs – mapToPair : extract relevant information – reduceByKey : aggregating values based on the key – collect : send the data to the driver
  • 28. Collect() : TA Cleaner – (2) 28#UnifiedAnalytics #SparkAISummit Worker wafer value 1 65 2 54 … … Worker wafer value 1 83 2 54 … … Worker wafer value 1 34 2 77 … … Worker wafer value 1 71 2 80 … … • traceData.mapToPair() • Return • key : process • value : wafer and its length
  • 29. Collect() : TA Cleaner – (3) 29#UnifiedAnalytics #SparkAISummit • reduceByKey() • Aggregating contexts into one based on the process key wafer value 1 65 2 54 … … Shuffling wafer value 1 88 2 92 … … wafer value 1 153 2 146 … …
  • 30. Collect() : TA Cleaner – (4) 30#UnifiedAnalytics #SparkAISummit • Applying filtering method in each worker mapToPair(t -> { String pk = t._1(); Double[] values = toArray(t._2()); FilterThresdholds ft = CleanerFilter.filterByLength(values); return Tuple(pk,ft); }).collect();
  • 31. Examples 2 : Computing outlier 31#UnifiedAnalytics #SparkAISummit • To detect the outlier in a process, median statistics is required. • To compute the median value, the values need to be sorted. • Sort(values)
  • 32. Examples 2 : Computing outlier – (2) 32#UnifiedAnalytics #SparkAISummit mapToPair reduceByKey • Computed the approximate median value for big data processing. • Applied histogram for median • Collecting the histogram Collect
  • 33. Caching the trace data 33#UnifiedAnalytics #SparkAISummit • Persist the trace data before applying TA algorithm • Be able to prevent data load when the action is performed Focus=Focus.persist(StorageLevel.MEMORY() AND DISK()) NonFocus=NonFocus.persist(StorageLevel.MEMORY() AND DISK())
  • 34. RDD vs. DataSet (DataFrame) 34#UnifiedAnalytics #SparkAISummit • RDD – All the data points in a process should be scanned • Advantage of the DataSet is weakened. – Hard to manipulate trace data using SQL – Basic statistics (i.e. Min, Max, Avg, Count…) – Advanced algorithm (Fast Fourier Transform and Segmentation)
  • 35. Demo : Running the TA algorithm 35#UnifiedAnalytics #SparkAISummit • Analyzed 2TB trace data using TA
  • 36. TA results in eDataLyzer 36#UnifiedAnalytics #SparkAISummit
  • 37. Results of the Naïve TA 37#UnifiedAnalytics #SparkAISummit
  • 38. Results of the big parameter TA Spark 38#UnifiedAnalytics #SparkAISummit
  • 39. • Two different TA Spark versions Two different TA Spark versions 39#UnifiedAnalytics #SparkAISummit Data size # of parameter # of wafers # of data points Running Time Naïve TA 2TB 270,000 250 1000 1.1h Big Param TA 1TB 4 400,000 20,000 54min
  • 41. Map Analytics (MA) 41#UnifiedAnalytics #SparkAISummit • Hierarchical clustering is used to find a defect pattern S.-C. Hsu, C.-F. Chien / Int. J. Production Economics 107 (2007) 88–103
  • 42. MA datasets 42#UnifiedAnalytics #SparkAISummit Process Process step Parameter Lot Wafer Defective chips FPP Fall_bin P01 8152767 23 -02,04|- 01,22|+00,25|+08, 33|+04,05 waferDataSetRDD.mapToPair(...).groupBy().mapToPair(...); Generating a key value pair Calling hierarchical clustering
  • 43. BISTel’s first approach for MA 43#UnifiedAnalytics #SparkAISummit • Using the batch mode for clustering massive wafers.
  • 44. Demo : Running the MA algorithm 44#UnifiedAnalytics #SparkAISummit • Dataset consists of 26 parameters containing 120,000 wafers
  • 45. Problems in batch for clustering 45#UnifiedAnalytics #SparkAISummit • In a manufacturing industry, some issues exist # of wafers Time Detecting a pattern DataSet1 15 2017-02-01:09:00 ~ 09:30 Yes DataSet2 7,000 2017-02-01~2017-02-08 No
  • 46. Spark summit: SHCA algorithm 46#UnifiedAnalytics #SparkAISummit • In Spark Summit 2017, chen jin presented a scalable hierarchical clustering algorithm using Spark.
  • 47. A SHCA algorithm using Spark 47#UnifiedAnalytics #SparkAISummit Jin, Chen, et al. "A scalable hierarchical clustering algorithm using spark." 2015 IEEE First International Conference on Big Data Computing Service and Applications. IEEE, 2015.
  • 48. Applying SHCA to wafer datasets 48#UnifiedAnalytics #SparkAISummit Wafer map ID Coordinates of defective chips A (13,22), (13,23), (13,24), (13,25)… B (5,15), (6,12), (6,17), (8,25)… C (9,29), (16,33), (19,39), (22,25)… D (19,9), (20,2), (23,21), (25,4)… E (5,5), (5,8), (5,15), (5,25)… • Designed the key-value pairs • Minimum spanning tree (MST) – Vertex : Wafer – Edge : distance between wafers • distance w1, w2
  • 49. Comparison between two versions 49#UnifiedAnalytics #SparkAISummit
  • 50. Comparison between two versions - (2) 50#UnifiedAnalytics #SparkAISummit
  • 51. Spark stage results of MA 51#UnifiedAnalytics #SparkAISummit • Approximately 100,000 wafers are analyzed for clustering
  • 52. Comparison of the results 52#UnifiedAnalytics #SparkAISummit 0 500 1000 1500 2000 2500 5,000 50,000 100k 160k 320k Batch New MA
  • 53. Summary 53#UnifiedAnalytics #SparkAISummit • MA using SHCA is accurate than the batch MA. • However, the running time of the batch MA is faster than that of the new MA. • In manufacturing industry, we suggest them to use both of two MAs.
  • 54. Conclusions 54#UnifiedAnalytics #SparkAISummit • A first use case of Apache Spark in Semiconductor industry – Terabytes of trace data is processed – Achieved hierarchical clustering on distributed machines for semiconductor wafers
  • 55. Acknowledgements 55#UnifiedAnalytics #SparkAISummit • BISTel Korea (BK) – Andrew An • BISTel America (BA) – James Na – WeiDong Wang – Rachel Choi – Taeseok Choi – Mingyu Lu * This work was supported by the World Class 300 Project (R&D) (S2641209, "Development of next generation intelligent Smart manufacturing solution based on AI & Big data to improve manufacturing yield and productivity") of the MOTIE, MSS(Korea).
  • 56. DON’T FORGET TO RATE AND REVIEW THE SESSIONS SEARCH SPARK + AI SUMMIT