大家好!欢迎参加我们题为“贝叶斯优化:一种面向目标的工艺开发方法”的探索讲座。感谢您抽出时间参与。今天,我们将介绍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 和他的团队。他们孜孜不倦地开发、测试并不断完善这个工具。我们希望您能充分利用这个工具,并了解您的成功之处、不足之处以及下一步的最佳改进方向。感谢您抽出时间。希望您能有所发现,也感谢您今天的到来。谢谢。