第 10 章
大语言模型作为优化器
在本章中,我们介绍并讨论将大语言模型概念化为优化器的现有工作。首先,我们注意到大多数现有研究侧重于方程 (9.1) 中定义的提示优化问题,因为优化智能体工作流的其他组件仍然是一个新兴的研究领域。接下来,我们将其与经典的迭代算法进行类比,并探讨它们如何融入现代优化工作流。
10.1 优化范式
传统优化方法在目标函数可访问性的假设上有所不同。我们将它们分为三大类,每一类的输入空间范围逐渐扩大:基于梯度的优化,依赖于显式的函数梯度;零阶优化,无需梯度信息即可运行;以及基于大语言模型的优化,它超越了数值函数,可在结构化和高维输入空间上进行优化。
• 基于梯度的优化。这些方法假设可以访问梯度信息,并迭代地优化参数。诸如随机梯度下降(SGD)和牛顿法 [801] 等技术被广泛使用,但它们要求可微性,这限制了它们在离散问题上的应用,例如提示调优和结构化决策工作流(通常具有图结构)。
• 零阶优化。这些方法通过从函数评估中估计搜索方向来绕过对显式梯度的需求 [802]。例子包括贝叶斯优化 [803]、进化策略 [804] 和有限差分法 [805],当梯度不可用或计算成本高昂时,这些方法很有效。然而,它们仍然依赖于明确定义的数值目标和结构化搜索空间,这限制了它们在基于语言的任务中的适用性。
• 基于大语言模型的优化。大语言模型通过利用自然语言作为优化领域和反馈机制来优化更广泛的解决方案空间。通过结合结构化推理和类似人类的迭代,大语言模型擅长优化提示、生成自适应工作流,并根据用户反馈迭代地改进任务性能。
虽然基于梯度和零阶的方法通常应用于数值目标,但它们的核心原则,如迭代优化、搜索启发式和自适应学习,也构成了基于大语言模型的优化策略的基础。基于这些见解,我们重点介绍一类快速兴起的、由强化学习驱动的基于大语言模型的优化方法,这些方法已成为慢思考推理模型的支柱 [90, 806, 89]。随着这些模型的不断发展,我们预计它们将推动下一波智能体应用的浪潮,使大语言模型能够以更强的适应性和战略远见在复杂环境中导航。
10.2 基于大语言模型优化的迭代方法
一些基于大语言模型的优化方法通过调整关键组件以应对离散和结构化挑战,直接从经典优化理论中汲取灵感。这些方法的一个核心特征是迭代更新步骤,其中从一系列可能的改进中选择模型生成的修改,以优化目标。以方程 (9.1) 中的提示优化目标作为一个贯穿示例,一个通用的迭代算法可以表示如下:
图 10.1:基于大语言模型的优化方法分类,分为随机搜索、梯度近似和代理建模。我们还重点介绍了一些关于上下文学习的理论解释,包括假设学习、隐式贝叶斯推断和机制可解释性,这些解释支撑了大语言模型的优化能力。
算法可以表示为:
采样:
T
∼
D
T\sim\mathcal{D}
T∼D
评估:
L
(
T
;
T
p
)
←
ϕ
e
v
a
l
(
ϕ
e
x
e
(
Q
,
T
p
)
,
T
)
\mathcal{L}(T;T_{p})\gets\phi_{\mathrm{eval}}(\phi_{\mathrm{exe}}(Q,T_{p}),T)
L(T;Tp)←ϕeval(ϕexe(Q,Tp),T)
更新:
T
p
′
←
ϕ
o
p
t
(
L
(
T
;
T
p
)
)
T_{p}^{\prime}\gets\phi_{\mathrm{opt}}\left(\mathcal{L}(T;T_{p})\right)
Tp′←ϕopt(L(T;Tp))
这里,采样和更新步骤是根据智能体的任务定义的。在最简单的情况下,例如优化用于电影评论二元分类的指令,目标 L \mathcal{L} L 是通过分类准确率来衡量的。在更复杂的智能体工作流中,决策变量可能包括不同工作流阶段的提示、工具选择、智能体拓扑结构或它们的组合。正如第 9 章所讨论的,这些决策变量的一个共同特征是它们的组合性质——例如,来自大语言模型词汇表 ν \nu ν 的所有字符串集合,或工作流中智能体的所有可能角色分配。由于枚举所有可能的解决方案通常是不可行的,这需要设计近似的更新步骤 ϕ o p t \phi_{\mathrm{opt}} ϕopt,我们将在接下来讨论。
• 随机搜索。早期的基于大语言模型的优化方法利用随机搜索变体来优化离散自然语言空间中的提示 [774, 807, 651, 732, 808, 809, 810]。这些方法通常类似于进化算法,迭代地采样候选决策变量,并从每次迭代中选择表现最佳的变量。通用公式如下:
采样:
T
∼
D
T\sim\mathcal{D}
T∼D
评估:
L
(
i
)
←
ϕ
e
v
a
l
(
ϕ
e
x
e
(
Q
,
T
p
(
i
)
)
,
T
)
,
i
=
1
,
…
,
M
\mathcal{L}^{(i)}\gets\phi_{\mathrm{eval}}(\phi_{\mathrm{exe}}(Q,T_{p}^{(i)}),T),\quad i=1,\ldots,M
L(i)←ϕeval(ϕexe(Q,Tp(i)),T),i=1,…,M
更新:
{
T
p
(
k
)
′
}
k
=
1
K
←
A
r
g
T
o
p
K
i
∈
[
M
]
L
(
i
)
,
\{T_{p}^{(k)\prime}\}_{k=1}^{K}\leftarrow\mathrm{ArgTopK}_{i\in[M]}\mathcal{L}^{(i)},
{Tp(k)′}k=1K←ArgTopKi∈[M]L(i),
补充(可选):
{
T
p
(
j
)
}
j
=
K
+
1
M
∼
M
u
t
a
t
e
(
{
T
p
(
k
)
}
k
=
1
K
)
.
\{T_{p}^{(j)}\}_{j=K+1}^{M}\sim\mathrm{Mutate}(\{T_{p}^{(k)}\}_{k=1}^{K}).
{Tp(j)}j=K+1M∼Mutate({Tp(k)}k=1K).
我们暂时覆盖之前的符号,让 M M M 表示每次迭代采样的候选提示总数, K K K ( K < M K<M K<M)控制保留到下一步的最佳表现候选者的数量——在我们的算法中通过 ArgTopK 选择。该算法可以选择性地包含一个补充步骤,以保持迭代间候选池的多样性。随机搜索方法实现简单,高度可并行化,并且对于单提示工作流特别有效。除了提示优化,它们在选择上下文演示方面也表现出强大的性能 [811, 812]。然而,它们的效率是有代价的——每次迭代需要 O ( M ) O(M) O(M) 次并行 API 查询,对于涉及多次查询的复杂工作流来说,这可能会变得成本过高。
• 梯度近似。有几种方法通过迭代优化解决方案来近似基于梯度的更新。例如,[779, 730, 728] 在不同的工作流阶段生成优化。StraGO [722] 使用中心差分启发式方法估计下降方向,而 Trace [813] 通过将组合程序建模为计算图来优化它们,类似于反向传播。连续优化中的梯度更新与提示空间优化之间的关键类比是“下降方向”的概念——对决策变量进行系统性修改以改进目标。相比之下,随机搜索方法在每一步独立地提出新的决策变量,而不访问过去的更新轨迹。基于梯度的方法则利用这种历史信息,通常能导致更快的收敛。梯度近似方法的一般迭代过程如下:
采样:
T
(
i
)
∼
D
,
i
=
1
,
…
,
M
T^{(i)}\sim\mathcal{D},\quad i=1,\dots,M
T(i)∼D,i=1,…,M
评估:
L
(
i
)
←
ϕ
e
v
a
l
(
ϕ
e
x
e
(
Q
,
T
p
)
,
T
(
i
)
)
,
i
=
1
,
…
,
M
\mathcal{L}^{(i)}\leftarrow\phi_{\mathrm{eval}}(\phi_{\mathrm{exe}}(Q,T_{p}),T^{(i)}),\quad i=1,\dots,M
L(i)←ϕeval(ϕexe(Q,Tp),T(i)),i=1,…,M
梯度近似:
g
←
∇
L
L
M
A
g
g
(
L
(
1
)
,
…
,
L
(
M
)
)
g\leftarrow\nabla_{\mathrm{LLM}}\mathbf{Agg}\left(\mathcal{L}^{(1)},\dots,\mathcal{L}^{(M)}\right)
g←∇LLMAgg(L(1),…,L(M))
更新:
T
p
′
←
ϕ
o
p
t
(
T
p
,
g
)
T_{p}^{\prime}\leftarrow\phi_{\mathrm{opt}}(T_{p},g)
Tp′←ϕopt(Tp,g)
其中 M M M 是小批量大小, Agg ( ⋅ ) \operatorname{Agg}({\mathord{\cdot}}) Agg(⋅) 是一个聚合函数,用于组合反馈信号(例如,在数值优化中,Agg 通常是平均算子), ∇ L L M \nabla_{\mathrm{LLM}} ∇LLM 表示一个抽象的“大语言模型梯度算子”[728],它根据反馈信号和当前小批量生成文本优化方向(例如,“智能体应考虑……的边界情况”)。此外, ϕ o p t \phi_{\mathrm{opt}} ϕopt 可以实例化为一个大语言模型查询,允许智能体根据 g g g 更新其提示。
与随机搜索方法相比,基于梯度的方法有两个主要优势:它们能够将过去的优化方向纳入 ϕ o p t \phi_{\mathrm{opt}} ϕopt,类似于一阶优化算法中的动量技术 [814, 815];它们有助于使用类似反向传播的技术来优化计算图 [651, 813, 780],这使得它们对于具有相互依赖的可优化模块的多阶段工作流特别有效。然而,这种灵活性是以增加设计开销为代价的,例如需要元提示来聚合反馈和应用优化方向。我们将在下文进一步讨论使用大语言模型优化这些超参数的可行性。一些方法也探索了对软提示进行直接的基于梯度的优化 [816, 817, 818]。虽然这些方法对于简单的输入-输出序列学习有效,但它们在处理多步工作流和顺序决策方面存在困难 [630, 300]。
最后,虽然这些方法利用了一阶优化的见解,但将二阶技术(例如,拟牛顿法)扩展到基于大语言模型的优化在很大程度上仍未被探索。幸运的是,最近的工作如 Revolve [780] 通过引入一种结构化的二阶优化方法,对此迈出了一步,该方法对多次迭代中响应模式的演变进行建模。通过结合更高阶的优化,Revolve 能够实现更稳定和更明智的优化,有效缓解复杂任务中的停滞问题。我们也对利用推理时计算 [90, 89] 来纳入历史优化方向并研究动量好处的新兴趋势感到兴奋。
• 贝叶斯优化和代理建模。虽然上述方法在基于大语言模型的优化方面取得了显著进展,但由于需要大量的 大语言模型交互,它们通常带来巨大的财务和环境成本。此外,这些方法可能对噪声敏感,并且离散提示以及其他决策变量的优化格局仍然知之甚少 [819, 820]。在这些约束条件下,贝叶斯优化 (BO) 成为一个引人注目的替代方案,因为它构建了一个抗噪声的优化目标代理模型:
采样:
T
∼
D
T\sim\mathcal{D}
T∼D
提议:
{
T
p
(
i
)
}
i
=
1
M
∼
S
.
P
r
o
p
o
s
e
\{T_{p}^{(i)}\}_{i=1}^{M}\sim S.Propose
{Tp(i)}i=1M∼S.Propose 。
评估:
L
(
i
)
←
ϕ
e
v
a
l
(
ϕ
e
x
e
(
Q
,
T
p
(
i
)
)
,
T
)
,
i
=
1
,
…
,
M
\mathcal{L}^{(i)}\gets\phi_{\mathrm{eval}}(\phi_{\mathrm{exe}}(Q,T_{p}^{(i)}),T),\quad i=1,\dots,M
L(i)←ϕeval(ϕexe(Q,Tp(i)),T),i=1,…,M
更新:
:
S
←
S
.
U
p
d
a
t
e
P
r
i
o
r
(
{
L
(
i
)
}
i
=
1
M
,
{
T
p
(
i
)
}
i
=
1
M
)
,
:S\gets S.\mathrm{UpdatePrior}(\{\mathcal{L}^{(i)}\}_{i=1}^{M},\{T_{p}^{(i)}\}_{i=1}^{M}),
:S←S.UpdatePrior({L(i)}i=1M,{Tp(i)}i=1M),
其中 S S S 表示优化目标的概率代理模型,配备了提议算子(例如,来自高斯过程 BO 程序的后验采样 [803])和基于提示评估观测证据的更新机制。例如,MIPRO [821] 使用树状结构 Parzen 估计器作为其代理 [822],而 PROMST [823] 训练一个分数预测模型来指导提示调优。利用代理模型进行基于大语言模型的优化符合非可微目标摊销优化(amortized optimization)的新兴趋势 [824]。例如,[825] 训练了一个提示生成器大语言模型,以摊销实例化束搜索(beam search)问题的计算成本,用于发现越狱攻击前缀。
最后,其他一些工作从大语言模型输出中拟合额外的轻量级模块——例如贝叶斯信念后验或效用函数——以辅助特定领域工作流的优化,例如决策制定和多智能体谈判 [826, 827]。这种类型的摊销方法——即拟合一个可重用于未见输入的参数化模型——在基于大语言模型的优化中得到了越来越广泛的应用,例如越狱 [828, 825]。
10.3 优化超参数
与传统优化类似,基于大语言模型的方法对影响搜索效率和泛化能力的超参数高度敏感。基于梯度的大语言模型优化器的一个关键考虑因素是聚合函数 Agg ( ⋅ ) \operatorname{Agg}({\mathord{\cdot}}) Agg(⋅) 的选择,它决定了如何综合文本反馈来指导提示更新。不当的选择可能导致关键信息的丢失或迭代优化中的错位。此外,[813] 引入了一种“白板”方法,将大语言模型程序分解为人类可解释的模块。然而,构建此类模块化工作流的设计选择在很大程度上仍未被探索,这为优化大语言模型驱动的决策流水线带来了开放性挑战。
大语言模型优化中的超参数通常与数值优化中的超参数类似。例如,批量大小起着至关重要的作用:正如小批量更新在经典优化中提高了稳定性和效率一样,像 TextGrad [728] 这样的基于大语言模型的方法在进行更新之前会聚合多个生成样本的反馈。另一个关键因素是动量——虽然它通过结合过去的梯度来稳定基于梯度的方法中的更新,但基于大语言模型的优化器类似地利用历史优化来随时间提高性能 [728, 813]。尽管在数值优化方面取得了进展,但基于大语言模型优化器的超参数选择在很大程度上仍然是启发式的,通常依赖于临时的、试错性的调整。
在智能体系统设计中,超参数遍布各个组件,包括智能体的角色分配、上下文演示的选择以及工具调用的调度。这些选择中的每一个都对下游性能产生深远影响,然而优化它们的原则性方法仍不完善。虽然传统的超参数调优技术,如网格搜索和贝叶斯优化,可以应用于离散的大语言模型驱动的工作流,但由于语言模型输出的高方差,它们的计算成本扩展性很差。此外,这些超参数的组合性质,即智能体配置、提示策略和推理结构以复杂方式相互作用,使得详尽搜索变得不可行。最近的工作试图通过将智能体工作流嵌入结构化框架(如有限状态机 [729]、最优决策理论 [826] 和博弈论 [827])来解决这一挑战。然而,这些方法通常难以在多样化的环境中泛化。解决这些挑战的一个有前景的方向是元优化(meta-optimization),即使用大语言模型来优化它们自己的超参数和决策策略。例如,一个基于大语言模型的优化器可以通过将过去的决策视为经验来迭代地优化其自身的提示策略,类似于深度学习中的学习优化器 [829]。此外,摊销方法训练辅助模型来预测有效的超参数,这可以减少详尽搜索的计算成本 [821, 823]。虽然这些技术提供了令人兴奋的可能性,但它们也带来了新的挑战,例如在自适应调优中平衡探索与利用,以及确保在不同优化任务中的泛化能力。研究针对大语言模型驱动的工作流量身定制的原则性元优化策略仍然是未来研究的一个关键领域。
10.4 跨深度和时间的优化
与在静态设置中更新参数的传统优化器不同,大语言模型动态地优化工作流,同时考虑深度(单遍工作流)和时间(循环更新)。在深度方面,大语言模型的功能类似于前馈网络,在工作流通过不同模块时顺序优化它们——大多数现有的基于大语言模型的优化器都遵循这种范式。除了单遍执行,大语言模型还可以随时间进行优化,类似于循环架构(如 RNN 或通用 Transformer [830]),通过迭代地优化决策过程。例如,StateFlow [729] 通过在多次迭代中整合反馈来增强工作流,从而实现随时间的动态优化和适应。虽然这些类比引人注目,但许多成熟的工程优化技术——例如检查点(checkpointing)[831] 和截断反向传播(truncated backpropagation)[832]——在基于大语言模型的优化中仍未得到充分探索。我们认为这是一个有希望的未来研究方向,呼应了先前进行更深入调查的呼吁 [813]。
10.5 理论视角
最近的研究表明,Transformer 固有地执行类似优化的计算,这支持了它们作为计算工作流通用优化器的潜力。然而,它们的经验成功与理论理解之间仍然存在显著差距。在这里,我们简要概述了弥合这一差距的最新进展。
• 上下文学习。将 Transformer 视为优化器的一个基本视角源于上下文学习,特别是在少样本(few-shot)设置中 [2]。[733] 证明了 Transformer 可以在上下文中学习各种回归假设,包括正则化线性模型、决策树和浅层神经网络。在此基础上,后续工作 [734, 833, 735] 提供了构造性证明,表明 Transformer 可以实现迭代优化算法,例如梯度下降和二阶更新。然而,虽然这些理论模型描述了 Transformer 的优化能力,但它们并未完全解释大规模大语言模型中的上下文学习,这些模型在离散的输入输出空间中运行。实证分析 [819, 834, 820] 转而试图理解预训练大语言模型如何在上下文中泛化。[834] 提出上下文学习类似于隐马尔可夫模型 (HMM) 执行隐式贝叶斯推断,而 [819, 820] 则挑战了传统观点,即上下文演示作为假设形成的新测试时样本。上下文学习仍然是从上下文中实现自我改进和优化的核心涌现能力 [835],但它仍然缺乏全面的理论分析。
• 机制可解释性。与理论分析并行,机制可解释性旨在通过识别负责特定行为的子图(也称为电路)来揭示 Transformer 的内部计算。早期的研究绘制了预训练 GPT-2 模型中用于风格化语言任务的电路 [836, 837, 838],而最近的努力则通过使用稀疏自动编码器识别语义上有意义的特征来扩大规模 [839, 736, 840, 841]。这些方法在从前沿级别的大语言模型中引出因果和可控行为方面取得了很大成功,但它们也揭示了一个意想不到的后果:当以多样本(many-shot)演示为条件时,上下文学习能力常常将有益的泛化与有害的行为纠缠在一起 [842]。这给安全可靠地优化大语言模型工作流带来了挑战。
• 不确定性下的局限性。虽然大语言模型在提供上下文信息时在顺序决策方面表现出中等能力,但它们在不确定性下做出最优选择时遇到困难 [843, 844, 845, 846]。特别是,[826] 发现基于大语言模型的优化器在适应随机环境方面表现出困难,常常未能进行最优探索。这些发现提醒我们,在需要探索和鲁棒决策的动态或不确定环境中部署基于大语言模型的优化器时应保持谨慎。
大语言模型通过整合结构化推理、自然语言处理和上下文学习重新定义了优化,扩展了传统数值方法的范围。尽管在结构化搜索空间中具有强大的经验性能,但关于基于大语言模型优化的理论基础,特别是上下文学习如何从标准的基于梯度的训练中涌现出来,仍然存在悬而未决的问题。