
一、背景故事周一早上那份永遠(yuǎn)趕不出來的良率周報先說明一個容易混淆的名詞。半導(dǎo)體圈子里說EDA大多數(shù)人第一反應(yīng)是Electronic Design Automation也就是Synopsys、Cadence那一套設(shè)計(jì)工具。但本文說的EDA是Exploratory Data Analysis探索性數(shù)據(jù)分析是數(shù)據(jù)科學(xué)里的概念。在Fab的良率工程場景中它指的是拿到一批良率數(shù)據(jù)后先做描述統(tǒng)計(jì)、分布檢查、分組對比、相關(guān)性掃描在建立正式假設(shè)之前把數(shù)據(jù)的形狀摸清楚。這是良率分析真正開始之前的必經(jīng)環(huán)節(jié)也是最耗時、最枯燥、最容易被壓縮的環(huán)節(jié)。我們組過去的周報流程是這樣的周五下午從數(shù)據(jù)倉庫導(dǎo)出本周所有量產(chǎn)批次的良率明細(xì)通常是三到五個CSV文件加起來二十幾萬行周末在家用pandas清洗一遍把設(shè)備號、配方版本、測試程序版本對齊周一早上七點(diǎn)開始畫圖把良率趨勢、工序分解、Top缺陷模式做成十幾張圖塞進(jìn)PPT九點(diǎn)半交給經(jīng)理十點(diǎn)參加良率例會。整個流程平均要花6.5小時其中真正需要動腦子的部分不到一小時剩下的全是機(jī)械勞動。更讓人沮喪的是這些機(jī)械勞動做完之后經(jīng)常發(fā)現(xiàn)某個維度沒切分到。比如經(jīng)理會問一句按測試機(jī)臺分組看過嗎那就得再回去跑一遍重新畫圖重新排版又是四十分鐘。人的耐心是有限的被這樣問過幾次之后很多工程師就會選擇在周報里少寫一點(diǎn)只保留最保險的幾張圖反正問了再補(bǔ)。這直接導(dǎo)致周報的信息密度越來越低良率例會變成了念數(shù)字大會。2026年初我們開始嘗試把這部分工作交給大模型的Code Interpreter能力。需要說清楚的是Code Interpreter和普通對話不是一回事它會真的在沙箱里跑Python讀取你上傳的CSV執(zhí)行pandas和matplotlib返回真實(shí)計(jì)算出來的數(shù)字和圖片而不是憑語言模型的直覺編造。這個區(qū)別至關(guān)重要因?yàn)榫幵斓牧悸蕯?shù)字比沒有數(shù)字更危險。圖1良率EDA七個環(huán)節(jié)的人工與Code Interpreter輔助耗時對比。結(jié)論撰寫環(huán)節(jié)耗時反而上升因?yàn)槿斯?fù)核與業(yè)務(wù)解讀無法也不應(yīng)被替代。二、技術(shù)原理Code Interpreter為什么能做EDA邊界在哪里2.1執(zhí)行沙箱的本質(zhì)模型寫代碼代碼算數(shù)字理解Code Interpreter的可靠性邊界關(guān)鍵是理解它的兩層結(jié)構(gòu)。第一層是語言模型負(fù)責(zé)理解你的自然語言意圖把它翻譯成Python代碼第二層是執(zhí)行沙箱一個隔離的Python運(yùn)行時預(yù)裝了pandas、numpy、scipy、matplotlib、scikit-learn等常用庫。模型生成代碼之后沙箱執(zhí)行把標(biāo)準(zhǔn)輸出、異常棧、生成的圖片文件回傳給模型模型再根據(jù)執(zhí)行結(jié)果決定下一步是解讀還是修正代碼重跑。這個循環(huán)帶來一個非常重要的性質(zhì)數(shù)值是算出來的不是猜出來的。當(dāng)模型說A組均值92.3%B組均值88.7%t檢驗(yàn)p0.003時這三個數(shù)字來自真實(shí)的scipy.stats.ttest_ind調(diào)用它們的正確性等價于代碼的正確性而不是等價于模型的記憶準(zhǔn)確度。這是Code Interpreter相比純對話模式在數(shù)據(jù)分析場景下最大的可信度提升來源。但風(fēng)險也隨之轉(zhuǎn)移了。數(shù)字本身可能是對的代碼邏輯卻可能是錯的。最常見的錯誤不是語法錯誤那會報錯模型會自己修而是靜默的語義錯誤groupby之后忘記dropna導(dǎo)致某些分組的樣本量其實(shí)只有2把包含工程批的數(shù)據(jù)混進(jìn)量產(chǎn)批統(tǒng)計(jì)用了不適合的檢驗(yàn)方法卻給出顯著性結(jié)論。這些錯誤代碼能跑通結(jié)果看著也合理只有懂業(yè)務(wù)的人才能發(fā)現(xiàn)不對。2.2三種數(shù)據(jù)接入方式的取舍第一種是直接上傳CSV。最簡單適合一次性分析但有文件大小限制多數(shù)平臺單文件在100MB上下而且數(shù)據(jù)離開了內(nèi)網(wǎng)合規(guī)風(fēng)險最高。我們只對徹底脫敏后的樣本數(shù)據(jù)用這種方式。第二種是本地部署的Code Interpreter。用開源方案比如基于Jupyter Kernel Gateway自建的執(zhí)行環(huán)境接一個私有化部署的模型數(shù)據(jù)完全不出內(nèi)網(wǎng)。缺點(diǎn)是模型能力通常弱于頂級閉源模型代碼一次通過率會下降15到25個百分點(diǎn)需要更多輪次的修正。我們最終選的是這條路。第三種是混合模式數(shù)據(jù)留在本地只把schema和統(tǒng)計(jì)摘要傳給云端模型讓它生成代碼再拿回本地執(zhí)行。這種方式合規(guī)性好、模型能力強(qiáng)但模型看不到真實(shí)數(shù)據(jù)分布遇到臟數(shù)據(jù)時生成的代碼魯棒性差來回調(diào)試的次數(shù)反而更多。適合分析邏輯固定、數(shù)據(jù)質(zhì)量穩(wěn)定的場景。2.3脫敏不是刪字段是保關(guān)系很多人做數(shù)據(jù)脫敏的第一反應(yīng)是把敏感列刪掉。這在良率分析里行不通因?yàn)榉治龅膬r值恰恰在于維度之間的交叉。刪掉設(shè)備號就沒法做設(shè)備間對比刪掉配方版本就沒法定位是不是換配方引起的下滑。正確的做法是保留關(guān)系、替換標(biāo)識。表1Fab良率數(shù)據(jù)交給大模型前的脫敏與預(yù)處理規(guī)則字段類別典型字段脫敏方式處理理由客戶標(biāo)識CustomerID /產(chǎn)品代號統(tǒng)一映射為PROD_A至PROD_H客戶信息屬于商業(yè)機(jī)密泄露風(fēng)險最高制程節(jié)點(diǎn)TechNode / DesignRule按代際粗化為成熟/先進(jìn)兩檔節(jié)點(diǎn)與客戶組合可反推出具體項(xiàng)目設(shè)備編號EqpID / ChamberID保留機(jī)型前綴序號重編機(jī)型信息對分析有用具體臺號無需外傳配方參數(shù)RecipeName /工藝參數(shù)值數(shù)值做線性縮放量綱保留絕對值是核心工藝Know-How批次編號LotID / WaferID哈希后取前8位需保持可追溯性但不暴露排產(chǎn)規(guī)律良率數(shù)值Yield / DieCount原值保留僅移除絕對產(chǎn)能良率相對關(guān)系是分析主體必須真實(shí)時間戳ProcessTime保留相對時序日期偏移時序關(guān)系必須真實(shí)絕對日期可偏移這張表是我們踩了幾次坑之后固化下來的規(guī)則。特別提醒兩點(diǎn)配方參數(shù)做線性縮放時同一參數(shù)在所有批次上必須用同一組縮放系數(shù)否則參數(shù)之間的相關(guān)性會被破壞分析結(jié)論直接作廢時間戳做日期偏移時偏移量必須是整數(shù)天且全局一致否則星期幾這個非常重要的維度很多Fab周末的良率確實(shí)和工作日不同就沒了。三、現(xiàn)狀分析我們對六類分析任務(wù)做了三個月的可靠性打分為了搞清楚哪些活能放心交出去我們做了一件比較笨但很有價值的事從2026年3月到5月每次用Code Interpreter做分析都由一名工程師用傳統(tǒng)方式獨(dú)立復(fù)算一遍然后逐項(xiàng)打分。累計(jì)樣本是187次分析任務(wù)覆蓋六個類別。圖2六類分析任務(wù)的可靠性評估矩陣。描述統(tǒng)計(jì)與分組對比可放心交付根因推斷一次通過率僅41%、邏輯誤導(dǎo)率高達(dá)58%必須由工程師主導(dǎo)。結(jié)果基本符合直覺但也有意外。描述統(tǒng)計(jì)一次通過率97%這類任務(wù)本質(zhì)是調(diào)API模型很難做錯。分組對比93%扣分主要來自小樣本組沒有被自動過濾。意外在相關(guān)分析。一次通過率88%看起來還行但邏輯誤導(dǎo)率有14%。典型情況是模型算出某個工藝參數(shù)和良率的Pearson相關(guān)系數(shù)是0.62然后寫道該參數(shù)對良率有顯著正向影響建議提高設(shè)定值。相關(guān)不等于因果這個道理誰都懂但當(dāng)它出現(xiàn)在一份格式規(guī)整、有圖有表有p值的報告里時很容易被順著讀下去。在Fab里一個錯誤的工藝參數(shù)調(diào)整建議可能造成幾十片wafer的損失。根因推斷這一項(xiàng)一次通過率只有41%邏輯誤導(dǎo)率58%。這個結(jié)果并不意外——根因推斷需要的是工藝物理知識、設(shè)備維護(hù)歷史、廠內(nèi)變更記錄這些數(shù)據(jù)之外的信息模型沒有這些上下文只能基于統(tǒng)計(jì)相關(guān)性編故事。我們的結(jié)論是根因推斷這一步堅(jiān)決不交給模型最多讓它列出候選假設(shè)供工程師篩選。四、瓶頸問題三個月里真正卡住我們的四件事4.1長對話中的上下文漂移第一次分析時你告訴模型Yield列是百分制取值0到100前十輪它都記得。到了第二十五輪它突然在代碼里寫了一句yield_rate df[Yield] * 100把92.3變成了9230。這類漂移在長會話里幾乎必然發(fā)生因?yàn)樵缙诘募s束在上下文窗口里被后續(xù)內(nèi)容稀釋了。我們的對策是約束前置化把數(shù)據(jù)字典和口徑約束寫成一個固定的文本塊每隔八到十輪就完整重貼一次而不是指望模型記住。這個做法很土但把漂移導(dǎo)致的錯誤從每周三四次降到了兩周一次。4.2圖表默認(rèn)樣式與工廠規(guī)范不一致模型生成的matplotlib圖默認(rèn)是白底、英文標(biāo)簽、默認(rèn)配色而我們的周報模板要求深色背景、中文標(biāo)簽、公司標(biāo)準(zhǔn)色。每次手工改樣式把節(jié)省下來的時間又吐回去一半。解決辦法是準(zhǔn)備一個樣式初始化代碼塊在每次會話開始時讓模型先執(zhí)行它設(shè)置SimHei字體、深色主題、固定配色列表、DPI150后續(xù)所有繪圖自動繼承。這個小改動單次分析節(jié)省約二十分鐘。4.3沙箱環(huán)境的庫版本與本地不一致云端沙箱的pandas版本可能是2.2我們本地生產(chǎn)環(huán)境還停在1.5。模型生成的代碼用了2.x才有的API拿回本地跑就報錯。這個問題在把分析代碼固化成定時腳本時特別致命。對策是在提示詞里明確寫出目標(biāo)環(huán)境的關(guān)鍵庫版本并要求生成的代碼避免使用近兩年新增的API。4.4工程師的能力退化風(fēng)險這一條是最容易被忽略、但長期看最需要警惕的。用了兩個月之后我發(fā)現(xiàn)組里兩個新人已經(jīng)不會手寫groupby加agg的組合了遇到問題第一反應(yīng)是問模型。當(dāng)模型給出錯誤代碼時他們?nèi)狈ψR別能力只會說模型是這么寫的。我們的應(yīng)對是硬性規(guī)定所有交付到經(jīng)理層面的分析關(guān)鍵結(jié)論必須由工程師用獨(dú)立方式復(fù)算一遍并且每周的組內(nèi)技術(shù)分享輪流講一次自己手寫的分析代碼。工具是用來提升上限的不是用來降低下限的。五、解決方案一套可復(fù)制的四層落地架構(gòu)5.1第一層數(shù)據(jù)管道與脫敏網(wǎng)關(guān)在數(shù)據(jù)倉庫和分析環(huán)境之間加一個脫敏網(wǎng)關(guān)用Python實(shí)現(xiàn)核心是一個配置驅(qū)動的映射器。每個字段在YAML配置里聲明脫敏策略passthrough / hash / scale / categorize / offset網(wǎng)關(guān)讀取配置執(zhí)行轉(zhuǎn)換同時把映射關(guān)系加密存檔保證分析出結(jié)論后可以反查到真實(shí)的設(shè)備號和批次號。RULES {EqpID: {mode: prefix_reindex, keep_prefix: 4},RecipeP1: {mode: scale, k: 0.837, b: 0.0},LotID: {mode: hash, length: 8, salt: ENV_SALT},Yield: {mode: passthrough},ProcTime: {mode: offset_days, days: -137},}這里有個細(xì)節(jié)值得強(qiáng)調(diào)scale模式的系數(shù)k必須寫死在配置里并納入版本管理不能每次隨機(jī)生成。否則兩次分析的數(shù)據(jù)無法對比而良率分析最常見的需求恰恰就是這周和上周比怎么樣。5.2第二層五段式提示詞模板提示詞不是玄學(xué)它是接口契約。我們把它固化成五段結(jié)構(gòu)每段有明確職責(zé)工程師只需要填空。表2良率EDA提示詞模板的五段式結(jié)構(gòu)與實(shí)測效果段落作用寫法要點(diǎn)缺失時的典型失效1-角色與領(lǐng)域鎖定半導(dǎo)體語境明確Fab、晶圓、Die、良率的定義域模型按互聯(lián)網(wǎng)A/B測試邏輯解讀數(shù)據(jù)2-數(shù)據(jù)字典消除字段歧義逐列說明含義、單位、取值范圍、空值語義Yield被當(dāng)成百分比或小數(shù)混用3-分析任務(wù)限定輸出邊界一次只提1至2個明確問題禁止開放式提問輸出30頁無重點(diǎn)的通用報告4-方法約束固定統(tǒng)計(jì)口徑指定檢驗(yàn)方法、顯著性水平、樣本量下限對n3的分組做t檢驗(yàn)并宣稱顯著5-輸出格式便于二次加工要求表格加圖加代碼結(jié)論與推測分開標(biāo)注推測被寫成結(jié)論無法區(qū)分可信度附-反向校驗(yàn)發(fā)現(xiàn)幻覺追問計(jì)算過程并要求打印中間變量數(shù)字對不上卻給出自信結(jié)論實(shí)際使用時第1段和第2段是固定的存在一個模板文件里第3段是每次分析的變量工程師寫一到兩句話第4段和第5段也是固定的。所以真正需要手寫的只有第3段一般不超過五十個字。這個設(shè)計(jì)讓新人上手時間從半天縮短到二十分鐘。5.3第三層反向校驗(yàn)機(jī)制拿到模型的分析結(jié)果后不要直接采信而是執(zhí)行三個固定的反問。第一問請打印出每個分組的樣本量n以及被dropna過濾掉的行數(shù)。這一問能抓出絕大部分小樣本和缺失值問題。第二問請把你用來得出這個結(jié)論的中間DataFrame前20行打印出來。這一問能驗(yàn)證數(shù)據(jù)切分邏輯對不對我們抓到過好幾次把工程批混入量產(chǎn)批統(tǒng)計(jì)的情況。第三問以上哪些是計(jì)算結(jié)果哪些是你的推測請分開列出。這一問對區(qū)分事實(shí)和幻覺極其有效模型在被明確要求區(qū)分時通常會誠實(shí)地承認(rèn)哪些是推斷。5.4第四層固化為定時任務(wù)當(dāng)某類分析被重復(fù)做過五次以上說明它已經(jīng)穩(wěn)定了這時應(yīng)該讓模型把交互過程中的代碼整理成一個獨(dú)立腳本人工審核后納入git配置成定時任務(wù)。之后這類分析就完全自動化了不再需要模型參與。這一點(diǎn)非常重要Code Interpreter的定位是探索階段的加速器不是生產(chǎn)環(huán)境的執(zhí)行器。穩(wěn)定的分析用固化腳本成本更低、結(jié)果可復(fù)現(xiàn)、出問題好排查。把每次都一樣的活反復(fù)交給模型既浪費(fèi)token也增加不確定性。六、實(shí)戰(zhàn)案例一次真實(shí)的良率下滑排查2026年4月中旬某成熟制程產(chǎn)品線的整體良率從周均93.1%掉到90.4%掉了2.7個百分點(diǎn)。傳統(tǒng)排查流程預(yù)計(jì)需要一天半這次我們用新流程做從數(shù)據(jù)準(zhǔn)備到鎖定嫌疑范圍花了一小時四十分鐘。第一步脫敏網(wǎng)關(guān)導(dǎo)出近八周的批次級良率明細(xì)包含批次號哈希、投料日期偏移、產(chǎn)品代號、各工序設(shè)備號、配方版本、最終良率、Bin分布共31274行。第二步用五段式提示詞發(fā)起第一輪分析任務(wù)是識別良率從第6周開始下降的過程中哪些維度上的分布發(fā)生了統(tǒng)計(jì)顯著的變化。模型跑了四個維度的KS檢驗(yàn)返回結(jié)果指向兩個候選CMP工序的設(shè)備分布p0.0007和某個測試程序版本的占比p0.013。第三步執(zhí)行反向校驗(yàn)。第一問打出樣本量發(fā)現(xiàn)測試程序版本那個信號的樣本量只有14個批次而且集中在最后三天很可能是剛切換的新版本還沒鋪開屬于偽信號。CMP設(shè)備那條線樣本量充足保留。第四步追問CMP設(shè)備維度。模型做了設(shè)備間良率的箱線圖對比發(fā)現(xiàn)CMP-03這臺機(jī)臺在第6周之后處理的批次良率中位數(shù)比其他三臺低3.8個百分點(diǎn)而且它在第6周的產(chǎn)出占比從18%漲到了34%。也就是說不是CMP-03突然變差了而是它一直略差但第6周排產(chǎn)把更多批次壓給了它稀釋了整體良率。第五步人工介入。我們查了設(shè)備維護(hù)記錄CMP-03在3月底做過研磨墊更換之后一直沒有做過完整的Cpk驗(yàn)證再查排產(chǎn)第6周CMP-01停機(jī)保養(yǎng)產(chǎn)能確實(shí)壓給了03。兩條線索對上了。這一步模型幫不上忙因?yàn)榫S護(hù)記錄和排產(chǎn)計(jì)劃不在分析數(shù)據(jù)集里。最終措施CMP-03暫停接高價值產(chǎn)品安排研磨墊參數(shù)重新驗(yàn)證排產(chǎn)系統(tǒng)增加設(shè)備良率權(quán)重避免把批次過度集中到能力偏弱的機(jī)臺。兩周后整體良率恢復(fù)到92.8%。七、實(shí)施效果三個月的量化數(shù)據(jù)統(tǒng)計(jì)口徑是2026年3月1日到5月31日與上一季度同期對比。周報制作總工時從平均6.5小時降到55分鐘降幅85.9%。需要說明的是圖1中結(jié)論撰寫環(huán)節(jié)的耗時從15分鐘漲到17分鐘這是有意為之省下來的時間部分投入到了人工復(fù)核和業(yè)務(wù)解讀上。分析維度的覆蓋數(shù)量從平均每期4.2個維度提升到11.6個維度。這是我認(rèn)為比省時間更有價值的變化——過去因?yàn)槌杀靖叨蛔龅慕徊娣治霈F(xiàn)在可以隨手做。良率例會上這個維度看過嗎的追問次數(shù)從每次平均3.4次降到0.6次。異常發(fā)現(xiàn)的平均提前期從6.2天縮短到2.8天。原因是過去每周只做一次全面EDA現(xiàn)在每兩天可以跑一輪緩慢的趨勢變化能更早被捕捉。同期需要如實(shí)記錄的負(fù)面數(shù)據(jù)三個月里發(fā)生了2次因模型輸出錯誤而導(dǎo)致的誤判均在人工復(fù)核環(huán)節(jié)被攔截未流出到?jīng)Q策層。第一次是分組樣本量過小被當(dāng)作顯著差異第二次是模型把兩個不同測試站的良率直接平均而沒有加權(quán)。這兩次都印證了反向校驗(yàn)機(jī)制的必要性。成本方面本地部署方案的一次性投入約為一臺帶48GB顯存顯卡的推理服務(wù)器加上兩周的工程搭建時間。按節(jié)省的工時折算回收期大約在五個月這還沒算分析質(zhì)量提升帶來的隱性收益。八、延伸補(bǔ)充工程落地的更多細(xì)節(jié)8.1什么樣的分析任務(wù)適合交給Code Interpreter經(jīng)過三個月實(shí)踐我們總結(jié)出一個簡單的判斷標(biāo)準(zhǔn)如果一個分析任務(wù)你能在三十秒內(nèi)向一個懂Python但不懂半導(dǎo)體的實(shí)習(xí)生講清楚要做什么那它就適合交給模型如果講清楚需要先鋪墊工藝背景那就不適合。具體來說適合的任務(wù)包括數(shù)據(jù)清洗與格式轉(zhuǎn)換、描述統(tǒng)計(jì)與分布檢查、按已知維度的分組對比、指定方法的假設(shè)檢驗(yàn)、標(biāo)準(zhǔn)圖表繪制、多文件合并對齊、缺失值與異常值的識別報告。這些任務(wù)的共同點(diǎn)是判斷標(biāo)準(zhǔn)客觀、不依賴領(lǐng)域先驗(yàn)。配套資料與實(shí)戰(zhàn)工具包本文涉及的腳本、參數(shù)模板、檢查清單已整理成配套資料包可直接用于工廠落地實(shí)施內(nèi)容隨實(shí)踐持續(xù)更新。點(diǎn)擊文章上方「VIP資源」下載區(qū)免費(fèi)獲取良率數(shù)據(jù)脫敏網(wǎng)關(guān)配置模板YAML規(guī)則文件加Python實(shí)現(xiàn)五段式EDA提示詞模板含數(shù)據(jù)字典填寫示例matplotlib深色主題樣式初始化代碼塊SimHei中文支持Code Interpreter輸出反向校驗(yàn)Checklist三問清單批次良率EDA標(biāo)準(zhǔn)分析腳本pandas版含示例數(shù)據(jù)集────────────────────────────────────────本文首發(fā)于博客半導(dǎo)體智能制造| MES工程師實(shí)戰(zhàn)筆記你在實(shí)際項(xiàng)目里遇到過類似情況嗎是怎么處理的歡迎在評論區(qū)分享你的實(shí)戰(zhàn)經(jīng)驗(yàn)一起交流進(jìn)步。標(biāo)簽半導(dǎo)體AI融合|半導(dǎo)體Fab | MES系統(tǒng)| SPC |良率提升|智能制造