大语言模型(LLM)是当前自然语言处理领域最核心的技术,以 GPT-4 为代表的大语言模型展现出了类人的学习能力。其中,情境学习(In-context Learning)是大语言模型最神秘的能力之一。如下图所示,在这种情境学习的范式下,大模型无需更新任何参数,仅依赖几个示例样本(demonstrations)就可以学习新任务,执行新样本的预测。
得益于这种范式的存在,使得大模型可以仅通过修改指令(prompt)和示例 (demonstrations)就在某个具体任务上达到不错的效果,然而当前的情境学习仅通过输入一次示例的方式来进行任务的归纳与推理,存在很大的局限。首先,这种单轮的策略与人类类比学习的决策过程并不一致。
在认知学中,人类通常通过迭代式的思维过程(例如,分析示例、反思示例和形成抽象概念)执行类比学习。可以考虑让大模型通过“思考更长时间”或者“多次思考”,来提升情境学习的能力。其次,一些相关工作指出,情境学习与传统神经网络训练的梯度下降有潜在的联系,一次大模型前向的过程完成了一次隐式的梯度下降,可以看作执行了一次训练。这进一步表明,可以通过多次(迭代)前向训练演示来提高情境学习的效果,让大模型和人类一样,拥有深度思考的过程。
阿里首创前向训练框架
为此,阿里研究团队在《Iterative Forward Tuning Boosts In-context Learning in Language Models》论文中率先提出了一个新的大模型情境学习框架——Deep-Thinking。
论文:https://arxiv.org/abs/2305.13016
代码: https://github.com/AlibabaResearch/DAMO-ConvAI/tree/main/deep-thinking
Demo: https://modelscope.cn/studios/huybery/deep-thinking/summary
Deep-Thinking 与传统情境学习不同,它分为两个阶段。第一个阶段为思考阶段,仅将示例作为大模型的输入,然后通过多次迭代来让大模型进行前向“训练/思考”,模拟人类不断地观察与学习示例样本。为了做到前向训练,研究团队借助 self-attention 中的 Key, Value 矩阵作为一种“元梯度”。
具体来说,需要执行多个步骤优化过程。在某一次具体的优化过程中,研究团队改造 self-attention 的前向机制,对 Key, Value 矩阵执行了更新 (update) 与 合并 (concat) 操作。更新操作通过当前步骤的元梯度与历史累积到的元梯度进行积累,产生新的元梯度。而合并操作将元梯度进行合并,让网络更深层地表示受到元梯度的增益。需要强调的是,这个过程不依赖反向传播,所以能够大大地降低大模型的训练的成本。第二个阶段为推理阶段,输入待预测的样本与训练阶段产生的最终元梯度,最终执行预测。
Deep-Thinking 拥有两个优势,一方面通过第一阶段的思考可以有效提升下游任务的效果,另一方面,在第二阶段预测时仅需要输入预测的样本与第一阶段学习的产物(K,V 矩阵),无需输入大量的自然语言示例,可以有效节约显存并提升推理速度。
效果
为了评估 Deep-Thinking 相比传统情景学习的优势,该团队评测四种 LLM 的不同尺寸,共 20 个模型在 10 个数据集上的效果,发现都有较好的提升,在某些情况下甚至能得到几十个点的相对提升。
除了定量的评估外,该团队还执行了一些有趣的分析,Deep-thinking 的优化过程和传统的梯度下降优化展现出了一系列有趣的现象:首先,Deep-thinking 也存在类似过拟合的现象,如果迭代过程过多,将会导致效果下降,可以通过引入小规模的验证集来选择合适的迭代次数,这与传统优化中的 Epoch 概念类似;其次,Deep-thinking 的梯度范式也呈现出了与梯度下降相同的趋势,比如更浅的层收敛更快,对学习率敏感等。
展望
传统的模型优化依赖于反向传播算法,但这种方法需要大量的计算资源和庞大的数据集,使得大模型的训练与微调成本非常高昂,成为大模型落地的阻碍之一。
而阿里研究团队提出的 Deep-thinking 是一种迭代式的前向训练框架,摒弃了反向传播的依赖,这将允许用户和企业在具体的任务上低成本的优化大模型效果。企业往往需要保护用户数据的安全性,但同时也需要让模型具备针对特定任务的学习能力。利用 Deep-thinking ,企业可以在不共享大量数据的前提下,根据自身需求快速训练和优化专属模型。这对于提高模型的个性化适应性和隐私保护具有重要意义,这项技术有潜力成为大模型落地的最佳实践。
评论