大家好!歡迎參加我們題為「貝葉斯優化:一種目標導向的工藝開發方法」的探索性講座。感謝您抽空參與。今天,我們將介紹JMP 19中最近發布的這個新平台。首先,我們將向您介紹什麼是貝葉斯優化,它在平台中的工作原理,以及它的工作原理和功能。然後,我們想特別強調的是,由於貝葉斯優化工具的價值所在,它在JMP中的獨特優勢至關重要。
接下來,我們將探討貝葉斯優化在哪些情況下是最佳工具,而非更傳統的工具。之後,我們將透過兩個不同的案例研究,逐步增加複雜性,以突顯貝葉斯優化的價值。最後,我們將回到討論環節,重點介紹其對半導體產業的價值。最後,我們將討論如何在製程開發中,將其更好地應用到更傳統的半導體工作流程環境中。感謝各位的參與。
謝謝,Peter。我將簡要概述貝葉斯優化是什麼,以及該演算法的工作原理。貝葉斯最佳化是一種迭代最佳化演算法,用於找到滿足響應目標的最佳因子設定組合。它具有生成性,因此它是一種學習技術,以高斯隨機過程模型為基礎產生新的(我們稱之為候選運行)結果,這些結果就是用於測試的因子組合的新設定。
貝葉斯優化的基本工作流程是從一些現有資料開始,這些現有資料可以是起始 DOE 設計,也可以從資料庫中的一些歷史資料開始。
從那裡開始,你取得數據,建立初始高斯過程模型,然後根據模型預測值、預測不確定性和回應目標,使用 BayesOpt 演算法產生新的候選集進行測試。測試新的候選集後,用新的響應結果更新模型,如此反复,直到找到最佳的因子設定。
在此流程圖中,「確定下一次運行」是貝葉斯優化的魔力所在。這是透過引導式搜尋實現的,它平衡了對過程空間的探索和對已創建模型的利用。
為什麼貝葉斯優化如此具有創新性?因為它會考慮每次迭代的反應,從而提供明確的指導,告訴您何時可以停止實驗。這是一種非常以目標為導向的方法。它不僅考慮您的輸入,還會考慮您的輸出和您的業務目標。
這將順序學習演算法與 JMP 的刻畫器和意願函數結合,創造出非常靈活的全新最佳化方法。正如 Peter 之前提到的,JMP 平台非常獨特,因為它建立在 JMP 豐富的刻畫器功能之上。
這意味著它可以處理可能存在相互衝突目標的多個回應。最大化、最小化或匹配目標。它還可以處理分類輸入、因子約束以及可能因輸入缺失而導致混亂的訓練資料。 JMP 平台非常強大。
為什麼這對半導體製造如此重要?因為它是一種迭代式的「填補知識空白」方法,因此非常適合半導體製程開發。我們稱之為 BayesOpt,它還能指出製程空間中可能值得探索的漏洞。它還能非常關鍵且有效率地利用可用的歷史數據,讓您儲存在資料庫中的數據真正得到利用。
簡單介紹一下貝葉斯最佳化過程的工作原理。首先,我將花點時間簡要介紹預測刻畫器,以防您不熟悉它,因為它是 JMP 中貝葉斯優化平台的一個非常關鍵的元素。
JMP 中的預測刻畫器是一個完全互動的模型圖示。您可以在此處查看預測刻畫器的範例螢幕截圖。您可以在此處操作視窗中的滑桿,變更因子值,然後即可立即看到更新後的模型預測。
貝葉斯最佳化的作用是利用你所建構的高斯過程模型(也就是基礎模型)的預測結果。它還會考慮預測的不確定性,並結合你的反應目標,為你提供新的因子組合進行測試。現在我將把演算法交給 Peter,讓他更詳細地講解一下演算法的工作原理。
我們將只查看平臺本身的幾張圖片,然後在案例研究中,我們將實際進入平台並即時使用它。但是,當您進入貝葉斯優化平台時,有兩種方法。我將簡要介紹更自訂的方法。我們今天不會示範這種方法,但所有自訂工具都可以在自動模式下調用,這正是我們將要重點介紹的。
您可以看到,在右下角,我們有一些分析器快捷方式。這些是貝葉斯優化可以部署的不同方法,用於找到下一個最佳候選集。例如,假設您的目標不一定是找到最佳回應目標,而可能您特別想填補知識空白。
嗯,比如說,你可以使用最大化貝葉斯期望標準差,它會圍繞候選集進行調整,以識別標準差較高的區域,然後開發候選集來縮小這些區域並獲得新的見解。在該平台上,如果你願意,你可以完全控制貝葉斯優化平台所採用的方法。
我們將重點介紹自動模式。自動模式會從分析器快速選單中提取選項,以實現最大化回應目標。我這裡使用的「最大化」比較寬泛。您可以具體地最大化、最小化,或嘗試匹配目標。無論這些回應目標是什麼,它都會提取這些選單項目來實現這一目標。
這是一種更簡化的方法,因為它是完全自動化的。根據初始資料集和初始模型的狀態,你將進行三個類別的評估。如果初始模型效果不佳,你將從「空間填充探索」開始。
平台會辨識有助於充實其知識庫的候選對象,直到能夠建立一個足以推進的高斯模型。完成之後,你就可以改進你的模型。一旦你獲得了平台認為能夠實現回應目標的最佳模型,它就會進入確認和挑戰階段。
這些不同的階段是什麼樣的呢?我將在這張投影片和下一張投影片中逐一介紹其中的四張圖片,重點介紹預測分析器不確定性的變化,以及我們目前處於模型建構的哪個階段。
左側顯示的是空間填滿模式。如果我們查看預測刻畫器,我們會看到大片粗大的灰色區域,這就是我們的不確定性,在 66、8 和 106 左右有一些小峰值。此時,我們的高斯過程模型不足以繼續前進,因此我們進入 MaxPro 空間填充模式,開始建立該模型。
一旦我們建立了一個充分的模型,並且模型基於預設的 R 平方 0.25(您可以根據需要進行修改),我們就會進入最佳化模型階段。這可以呼叫我之前展示的選單中的幾個不同部分。但在這個例子中,我們追求的是最大預期改進。現在我們可以看到,紅色滑桿位於不確定性最小、響應最大的位置,因為這是基於我們的期望值構建的。
一旦達到預期的最大改進目標,我們就會繼續完善模型,並進入最大化期望值的角色,努力獲得盡可能最好的模型。我們填滿了數據,探索了不確定的區域,現在我們認為我們正在磨練出盡可能最好的模型。一旦我們實現了這個模型,平台就會對其進行確認,然後進行挑戰。平台希望確保找到了最佳模型,因此我們進入了重複最佳訓練運行模式。
接下來,什麼時候會想使用貝葉斯優化平台?這才是關鍵。它並非是終結所有其他工具的工具。這裡僅舉幾個例子。這份清單並不完整,但我只想強調一些可能帶來益處的機會。假設我們設計了一個實驗,你的許多運行都因為設備故障而失敗。
嗯,你或許可以使用貝葉斯優化平台來保存那個DOE。然後我們談到了,正如Sarah所提到的,使用歷史資料。我們今天要展示的兩個範例用例將重點放在前兩個。但是,當你的時間或資源有限時,它還有很多其他好處,因為貝葉斯優化平台會在你達到目標時提醒你。
經典設計可能不理想。它包含的因素太多了。你不知道模型的形式是什麼或應該是什麼,或者需要表徵的運行次數太多了。在我將要展示的範例中,在 DOE 平台上建立一個響應面模型需要運行 70 多次。這對於創新來說效率太低了。
在某些情況下,一次運行一次可能更有意義,例如批次場景。此外,也可能存在標準最小平方法模型過於僵化的情況。在所有這些情況下,貝葉斯優化可能是在最短時間內實現目標的最佳方法。
謝謝,Peter。我接下來要講的第一個案例。在第一個案例中,我們將討論CMP(半導體產業的化學機械平坦化技術),以及一個失敗的CMP篩選實驗。這是一個相對簡單的例子,Peter的下一個案例將帶我們進入一個更複雜的例子。
在這個例子中,我們只有一個響應,即薄膜去除速率,我們希望匹配一個目標值來優化薄膜去除速率。這個實驗有三個因素:研磨液流量(以毫升/分鐘為單位)、施加在晶圓上的下壓力(以磅/平方英吋為單位)以及壓板每分鐘的轉速。
再次強調,我們的目標是挽救這個實驗設計 (DOE)。在本案例研究中,我們最初進行了九次實驗設計,其中五次失敗了。現在,我來開啟 JMP 軟體,因為我們將在 JMP 中即時進行操作。我將先進行一些設置,向大家展示演算法和平台的幾次迭代,然後展示完整的最終結果。
這裡的目的只是向您介紹這個平台,稍微介紹一下貝葉斯優化平台的自動模式是如何運作的,然後我會向您展示我們如何挽救這個實驗設計(DOE)的最終結果。同樣,我們一開始進行了九次運行,包括八個因子設計點和一次中心點運行。由於工具故障和測量問題,我們損失了其中五次運行。
為了讓你了解我們在這裡開始的漏洞,我們快速畫一個散佈圖,展示我們在這裡處理的因子空間,以及我們實際可用的四次運行資料。如果你看一下這個過程空間,你會發現我們只有這四個角點的數據,這就是我們剩下的全部數據。這就是我們開始工作所需的全部數據。
有大量未開發的製程空間,我們對此一無所知,我們希望能夠利用剩餘的少量數據,在盡可能少的運行次數內達到薄膜去除目標。讓我們從分析選單進入平台,進行專門的建模,它位於貝葉斯優化之下。
我要把我的因子,也就是三個 x 變量,放在 x 桶裡,把我想要優化的薄膜去除率放在 y 桶裡。現在,我每次只運行一個候選樣本。 Peter 在他的案例研究中會向你展示如何調整這個參數,並盡可能一次運行任意數量的樣本。此外,如果你打開高階批次選項,你可以看到在哪裡可以增加 Peter 提到的 R 平方值,這樣高斯過程模型的啟動速度可能會更快,也可能會更慢。
0.25 是目前的預設值。雖然這個數字看起來很低,但請記住,模型目前能夠做出最佳預測並不一定是目標。我們只需要模型能夠告訴我們溫度是變熱還是變冷。
我繼續,點選「確定」。首先,我們要查看高斯過程模型的 R 平方值。您可以看到,模型適配度一開始就不太好,只有 0.142。目前,我們低於 R 平方閾值。我們將進入「空間填充」模式,在該模式下,我們只是填充該過程空間中的空洞,因為我們有許多過程空間尚未探索。
如果我們轉到批次選擇選項卡,我們可以看到,我們將要新增為下一個潛在訓練運行的候選運行將處於「空間填充」模式。 「包含選項」下有幾項您可能需要考慮。我將取消選取“保存可取性值”,因為我目前不需要它們。
但您可能想要新增預測反應值,這樣您就可以看到高斯過程模型的預測結果。我繼續,點擊「製表」。它會添加下一個候選運行。在這裡,您可以看到,這個因子設定組合是它選擇的下一個可行運行,並且是空間填充。目前,高斯過程模型尚未充分利用,因為我們還沒有達到 R 平方閾值。
我想繼續。請注意,我已將其設定為自動輸入下一個回應值。在實際操作中,您應該實際運行流程,收集響應數據和薄膜去除率,然後在此輸入。現在我們進入下一個迭代。
很棒的是,我們實際上不必返回平台。平台會在這裡為我們創建這些腳本,我們只需運行該腳本即可快速進入自動模式進行下一次運行。現在我們可以看到,透過這次運行,情況有所好轉。我們幾乎達到了 R 平方閾值。我們可能很快就會退出空間填充模式。
你可以看到,我們的分析器開始有一些動作了。我們繼續進行下一次運行。我直接點擊「生成表格」。由於我們還沒有達到 R 平方閾值,所以仍然處於「空間填充」模式。我們繼續進行下一次運行。 「生成表格」。仍然處於“空間填充”模式,看看下次運行是否能退出“空間填充”模式。
我們終於要完成空間填充了。現在我們已經有了一個足夠好的高斯過程模型,可以將其直接推進到模型最佳化階段,或者,根據模型的優劣,我們甚至可能直接進入確認和挑戰階段。讓我們拭目以待。
看起來它要直接跳到確認和挑戰階段了。我們已經達到了「複製最佳訓練運行」的階段,這意味著它還沒有找到比資料表中已有結果更好的候選運行。理論上,你可以就此打住。預測的薄膜去除速率約為 2391。順便說一下,我們設定的薄膜去除速率目標是每分鐘 2400 埃。
我還想指出,由於貝葉斯優化是一種高度目標導向的方法,因此在實際開始執行最佳化演算法之前設定響應限制至關重要。我們在響應變數的列資訊中設定了響應限制。您可以看到這裡我設定了一個回應限制屬性,也許我可以快速將其刪除並從頭開始,這樣您就可以看到它是如何完成的。
在列屬性中,我想進入響應限值,在這裡我可以設定我的回應目標。您可以看到,我正在匹配一個目標,我實際上只需要設定我的回應下限和上限,然後平台會推斷出其餘部分。它會推斷我想要配對的目標是這個範圍的中點,也就是 2400 埃。
彼得將進一步討論如何在最小化或最大化時設定反應目標,因為他將進行多重反應場景。
現在我們已經看到了幾個迭代。這是演算法的一種可能的迭代。我實際上可以繼續,因為即使在重複了最佳訓練運行之後,它仍然可能進一步進入確認和挑戰階段,甚至可能在響應曲面的這個位置附近找到更好的解決方案,這取決於響應曲面的實際形狀。
但為了節省時間,我只想在這裡展示一次貝葉斯優化運行的最終結果。在本例中,我們進行了四次空間填充運行,然後進行細化模型,最後進行確認和挑戰。最後我們得到了最佳訓練結果:漿料流速約為每分鐘 70 毫升,下壓力約 7 PSI,壓盤轉速約 105 RPM。
這讓我們額外運行了六次流程。也許你會想,這感覺好多啊,但別忘了我們從哪裡開始。還記得我們在五次實驗設計 (DOE) 運行失敗後,剩下的四次運行的 3D 散點圖嗎?能夠在這幾次運行中優化響應,這確實非常有效率。現在我要把它交還給 Peter,讓他做個案研究。
我們將重點放在柵極堆疊特性。這個特性的獨特之處在於,我們將設定多個相互競爭的反應目標。我們將最大化一個 Y 值,最小化另一個 Y 值,然後嘗試達到最終目標。此外,我還截取了一些歷史資料以供參考。
對於第三個 Y,即電氣性能,我們不僅要努力達到目標,還要努力達到一個我們沒有任何歷史數據可以證明其達到目標的目標。我們將使用六個連續的 X 和兩個分類資料來建構它。我們的目標是全面改進此特定製程的製程控制,並最終實現這一獨特的目標。
我之前提到過,要建立一個涵蓋所有因子空間的響應面模型,需要運行 75 次。我們只用了 11 次就達到了預期結果……我重複了好幾次,總共進行了 10 到 13 次貝葉斯優化。讓我們先來看一下初始資料表。
關於這些數據,我先簡單介紹一下背景。這些數據全部匿名化了,所以數值對單位來說意義不大。希望您能理解。這些資料是從一個歷史資料集中提取的,裡面有超過一千行的資料。我的做法是,先建立一些相當精準的模型來預測我的回答,然後隨機選擇了五行。
我這樣做的原因是想強調一下,你只需要很少的數據就可以開始。基於候選因子空間,我會使用基於整個資料集建立的模型來預測可能的輸出,也就是可能的反應。
莎拉再次強調了這一點,但當我們考慮最大化或最小化時,我只輸入了較低的目標值。我輸入的是0.93,然後當你進入貝葉斯優化平台時,如果你保留預設選擇,它會填入你需要的所有其他值。
當你最大化時,你輸入的是可接受的最低值。當你最小化時,你輸入的是可接受的最大值。正如 Sarah 所強調的那樣,當你嘗試匹配目標值時,你只需要輸入最小值和最大值,然後系統就會推斷出目標值。
我們要直接進入平台了。讓我先把我想要的答案拉進去。接下來,我們要把我們的因素拉進去。正如莎拉所提到的,你可以一次跑一個,但也可以同時跑2、3、4、5個因素。在某些情況下,一次運行多個因素可能更有意義。
如果我們這樣做,使用高斯過程模型,我們就能立即得到一個用於測量缺陷密度的優秀模型。我們有一個足夠好的電氣性能模型,但對於良率來說,我們的模型卻很差。我接下來會深入討論批次選擇。
之前我曾提到自訂控制貝葉斯優化流程的功能。這個功能就在這裡的選單區。我只需展開它,就能看到所有選項。和莎拉一樣,我接下來會在這裡打開我的預測回應。
然後是這裡的複選框,Sarah 取消了勾選。如果勾選了它,其餘的回應目標就會填入列標題。這完全是可選的。當我們繼續一次運行兩個時,我們可以看到它們都處於 MaxPro 空間填充狀態。由於這些預設值現在完全封裝在該腳本中,所以每次執行時,它都會同時執行兩次。
完成一次之後,我們可以看到所有模型都超出了該範圍,或達到了 0.25 的閾值。現在,你會經常看到,當你運行兩次以上時,你會看到其他選單項目被拉進來。我們不僅要嘗試找到預期的最大改進,而且還要在一個最不為人知的領域再運行一次。
我們可以繼續執行這些程序,然後繼續進行,我可能會再重複一兩次,看看能達到什麼程度,然後跳到最終結果。同樣,我們可以看到我們在最大預期改進和最大可取性標準差之間波動,這個過程可以持續一段時間。但讓我們先跳過這個步驟。我之前運行過這個程序,這次我一次只進行了一次迭代。
您可以看到,我們在 MaxPro 空間填充中運行了大約三次,然後是最大預期改進四次,最大可取性三次,然後我們直接進入重複階段。出於好奇,我重複了幾次。我們最初運行了五次,再次嘗試將整個流程空間轉移到一個未知領域。
我想鼓勵大家思考的是,在日常工作中,你會如何處理這個問題?這需要投入多少精力、時間和資源?然後想想,只要運行11次就能達到目標。當它被部署到最合理的場景中時,它能夠顯著地節省時間、金錢和資源。
什麼才是最有意義的?嗯,有時候只需要嘗試看看。有時候需要和同事坐下來討論。有時候你只需要跳進泳池深處。好的,我們回到幻燈片上來。我把時間交給莎拉。
好的。謝謝,Peter。我總結貝葉斯優化對半導體製造的一些好處。同樣,你可以從較小的初始設計開始,並在達到目標後停止。你不需要固定的前期樣本量。你只需不斷迭代,直到最終達到回應目標,這樣就不會浪費訊息,也不會收集不必要的數據。因此,浪費更少,成本更低。
與我們用於流程最佳化的許多經典統計方法相比,它也更容易採用。從統計角度來看,它更簡單,因為無需評估p值,無需進行正態性檢驗,也無需查看殘差圖。雖然建構高斯過程模型的計算可能比較複雜,但從解釋的角度來看,它絕對不需要擔心統計機制。
此外,建構模型時無需擔心進行效應選擇。如果您習慣於建立標準最小得分回歸模型,那麼您就會知道如何決定是否需要對交互作用或可能存在的任何類型的多項式曲率進行建模。這裡無需這樣做,因為高斯過程模型會在迭代過程中自然學習響應曲面的形狀。
如果您不熟悉高斯過程模型,花 5 到 10 分鐘稍微了解絕對值得。它是一種非常靈活的模型擬合技術,是一種基於機器學習核的方法。如果您有複雜的響應曲面形狀,高斯過程模型可以非常靈活且有效率地學習這些形狀,這與標準的最小平方法迴歸模型截然不同。最後,它是一種引導式迭代方法,與半導體製程開發工程師的通常思維方式非常契合。
只比較一下目前半導體產業中一些常見的製程開發策略,我們顯然有一些臨時的方法,這些方法需要反覆試驗,並結合一些部落知識或直覺。問題在於,這不可避免地會讓你陷入一次只進行一個因素的實驗陷阱,這可能是收集工藝資訊效率最低的方法。此外,這種方法無法量化不確定性。
然後,我們也有經典的實驗設計方法,像是諮詢製程工程師,或是從篩選設計開始,篩選出一組初步的大量因子。然後,一旦你確定了哪些旋鈕是關鍵旋鈕,你就可以擴展該設計來解決任何交互效應,或許可以模擬一些曲率。最後,你將擬合最終的響應曲面模型,進行實際的最佳化。
我想強調的是,經典的實驗設計(DOE)作為一種製程開發方法已經應用了幾十年,並且非常成功,我們預計這種情況短期內不會改變。實驗設計(DOE)在工業領域數十年的應用顯然將繼續被沿用。
但是,貝葉斯最佳化可以幫助解決經典實驗設計(DOE)方法的一些挑戰,即通常需要大量的前期樣本量,因此可能需要大量的初始實驗設計(DOE)來建立模型。這種方法著重於統計問題,而不是實際問題的解決。
它由因子空間驅動,而非實際回應值和您的業務目標。它通常會將您的設計點置於範圍的極端或中心,而您的設計空間或製程空間的最優區域可能完全未被發現。
貝葉斯優化並非經典 DOE 方法的替代品。它只是工具箱中的另一個工具,可以幫助我們處理一些棘手的情況,例如 Peter 之前描述的關於何時使用貝葉斯優化的一些情況。
最後,我們想強調並重申貝葉斯優化的價值。我認為,首先,也是最重要的,它是一種高度迭代的方法,而且它非常適合半導體環境。你設定目標,取得一些初始數據,無論是來自基本的實驗設計或歷史數據,然後你就可以迭代地進行,讓過程引導整個過程。
讓結果指導下一次運行,然後它會告訴你何時停止。它不僅會考慮目標,還會利用分析器中的可取性函數快速確定最佳候選因子集,然後它會告訴你,你已經完成了。被告知「我完成了,可以繼續前進」是非常有價值的。它是節省時間、減少浪費和降低成本的絕佳工具。
我跟半導體產業的客戶溝通過無數次,他們總是說:「我只能拿到這麼多晶圓來運作這個系統,我的設計根本無法適應我現有的晶圓數量。」貝葉斯優化正是能真正解決這些產業普遍存在的挑戰的地方。它可以輕鬆地兼容當前常見的半導體工藝,並允許用戶以非常自然的方式創新他們的技術和工藝。
我最喜歡它的地方在於,雖然計算起來非常複雜,但由於它被嵌入到分析器中,所以很容易理解這些結果,並進行解讀,真正理解我為什麼要朝這個方向發展。基於這些結果,我們認為自己離目標有多近?我們正在填補空白,現在正在改進,現在我們正在確認和挑戰。這就像一股非常輕柔的微風,推動著你完成你的半導體工藝。
這是 JMP 19 中現在提供的非常強大的工具,而且我認為,正如 Sarah 所說,它真的會成為工具箱中一個非常出色的工具。
這很可能給您留下了更多疑問,而不是答案。我們其實只是粗略地介紹了這個平台的功能。我們想向您推薦一些資源。您可以拿出手機掃描這個二維碼,它會直接帶您到 Chris Gotwalt 和 Phil Kay 不久前就此主題舉辦的 ENBIS 研討會的錄音。此外,如果您正在觀看這些幻燈片,您可以點擊下面的圖片,它會直接帶您到一些 PDF 內容。
真的,我們要特別感謝 Chris Gotwalt 和他的團隊。他們孜孜不倦地開發、測試並不斷完善這個工具。我們希望您能充分利用這個工具,並了解您的成功之處、不足之處以及下一步的最佳改進方向。感謝您抽出時間。希望您能有所發現,也感謝您今天的到來。謝謝。