当前位置:首页 > Python 工业工具 > 正文内容

FAB数据分析项目完整案例:从数据到模型到可视化

叶志辉2个月前 (06-29)Python 工业工具6

FAB数据分析项目完整案例:从数据到模型到可视化

1. 项目背景

晶圆良率是FAB最核心的KPI。传统做法:等晶圆加工完,上量测机台测一遍,才知道良率是好是坏。这时候发现问题,晶圆已经报废了,成本已经发生了。

我们想做的:提前预测。在关键工序后(如CVD镀膜后),根据前面工序的参数,预测最终良率。如果预测低于阈值,提前介入,避免损失。

这个项目的价值不只是省了多少钱,更重要的是建立了一套数据驱动的良率管理方法论——用数据说话,而不是凭经验判断。

2. 数据采集与预处理(3天工作量)

数据来源:MES系统API拉取过去2年的历史数据,涵盖5个关键工序(氧化、扩散、离子注入、光刻、蚀刻)。原始数据:50万行×120列。

处理步骤:缺失值(前向填充+均值填充,占总数据3%)、异常值(3σ原则检测并剔除,占1.2%)、特征去重(从120维降到85维)、时间对齐(确保每个Lot各工序数据时间戳对齐)。

最终有效数据:48万行×85列。数据质量是模型效果的前提——垃圾进,垃圾出。

3. 特征工程

基础工艺参数:每个工序的温度、压力、时间、流量等(约60个特征)。这是地基,地基不稳房子不稳。

统计特征:每个工序参数的均值、标准差、最大值、最小值、趋势斜率(约20个特征)。趋势斜率特别重要——参数是上升趋势还是下降趋势,往往比绝对值更能预测良率。

交互特征:相邻工序参数的乘积、比值(约5个核心交互特征)。比如蚀刻速率和光刻CD的乘积,与最终良率的相关性比单独看这两个参数更强。

时间衰减特征:考虑工艺参数随时间的漂移,给近期的数据更高的权重。这是FAB数据特有的时间依赖性。

4. 模型选择与训练

对比了3种模型:逻辑回归(准确率72%,可解释性最好)、随机森林(准确率81%,兼顾准确性和可解释)、XGBoost(准确率89%,需要更多调参)。最终选择XGBoost作为生产模型,辅助以逻辑回归作为可解释性分析工具。

调参:用Optuna做贝叶斯超参数搜索,200次试验,找到最优参数组合。关键参数:max_depth=6、n_estimators=200、learning_rate=0.1、subsample=0.8。

SHAP值分析:用SHAP值解释XGBoost模型的输出。最终发现:蚀刻速率趋势,光刻CD波动,离子注入能量偏差是影响良率的Top3因素。

5. 实战代码(核心片段)

数据加载和预处理(Pandas):读取MES导出的CSV,处理缺失值和异常值,特征工程。

模型训练(XGBoost+Optuna):数据划分(训练集80%,测试集20%),贝叶斯超参搜索(200次试验),交叉验证(5折)。

结果可视化(Matplotlib):ROC曲线(模型整体性能AUC=0.91)、SHAP summary plot(特征重要性Top10)、混淆矩阵、良率预测分布图。

6. 效果对比

用预测模型前:晶圆加工完成后才发现良率问题,平均损失约/片。

用预测模型后:在关键工序后即可预测,平均提前3天预警,损失减少60%。

年度节省:约180万美金(按每年30000片风险批次,每片节省)。模型本身的价值:一套预测系统,1年节省的成本相当于3个工程师的年薪。

额外价值:工程师的决策从「凭经验判断」变成「看数据决策」,减少了人为误判导致的损失。

7. 踩坑经验

坑1:用了未来的数据(数据泄露)。解决:严格按时间顺序切分训练集和测试集,不用随机切分。

坑2:特征相关性导致过拟合。解决:用SHAP值分析,剔除重要性<1%的特征,从85维降到62维,AUC从0.85提升到0.91。

坑3:模型上线后效果下降。解决:每月用新数据重新训练一次,保持模型与最新工艺状态同步。

8. 进阶方向

多工序联动预测:用LSTM网络建模工序间的时序依赖关系。

根因推荐:不仅预测良率,还能推荐调整哪些参数可以改善良率——把预测模型和问题诊断模型结合起来。

实时预测:把模型部署到MES边上,新批次数据进来立即预测,不用等关键工序完成后。

相关文章

FAB工程师学Python的正确路径(附学习地图)

FAB工程师学Python的正确路径(附学习地图)

FAB工程师学Python的正确路径(附学习地图) 我带过一个实习生,非科班出身,学了3个月Python,第一个月工资就涨了2000。 也有干了5年的工艺工程师,手动导数据画图画了5年,月薪还是那点钱...

Python+半导体数据工具完整自学路线(零基础→项目实战)

Python+半导体数据工具完整自学路线(零基础→项目实战)

Python+半导体数据工具完整自学路线(零基础→项目实战) 经常有人问我:我想学Python做FAB数据分析,从哪里开始? 今天我把完整路线画出来,从零基础到能独立做项目,按这个走,90天能出师。...

SPC/MES/FDC工具全家桶:工程师必备Python脚本合集

SPC/MES/FDC工具全家桶:工程师必备Python脚本合集

SPC/MES/FDC工具全家桶:工程师必备Python脚本合集 我在FAB干了15年,最值钱的东西不是经验,是一个攒了多年的Python工具箱。 今天把这个工具箱的核心部分分享出来,从数据采集到SP...

Python日报自动化:MES数据一键生成Excel报告(附完整源码)

Python日报自动化:MES数据一键生成Excel报告(附完整源码)

Python日报自动化:MES数据一键生成Excel报告(附完整源码) 1. 我的血泪史:每天2小时的日报工作 2018年,我在FAB做整合工程师的时候,每天早上第一件事不是分析数据,而是做日报。从M...

Python设备故障预测:XGBoost让FAB的设备维护从被动到主动

Python设备故障预测:XGBoost让FAB的设备维护从被动到主动

Python设备故障预测:XGBoost让FAB的设备维护从被动到主动 1. 问题背景:被动维修的代价 FAB里最贵的不是设备,是设备宕机造成的产能损失。一台光刻机价值$100M+,停机1小时损失约$...

Python晶圆良率分析实战:从数据清洗到可视化(附完整代码)

Python晶圆良率分析实战:从数据清洗到可视化(附完整代码)

Python晶圆良率分析实战:从数据清洗到可视化(附完整代码) 1. 问题背景:我的第一次良率分析 2016年,我在FAB做工艺工程师的时候,第一次被要求分析一批良率异常。工程师把数据发给我——一个E...