写点什么

阿里首提前向训练框架:让大模型深度思考,可快速定制专属模型

阿里巴巴

  • 2023-06-28
    北京
  • 本文字数:1720 字

    阅读完需:约 6 分钟

阿里首提前向训练框架:让大模型深度思考,可快速定制专属模型

大语言模型(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 ,企业可以在不共享大量数据的前提下,根据自身需求快速训练和优化专属模型。这对于提高模型的个性化适应性和隐私保护具有重要意义,这项技术有潜力成为大模型落地的最佳实践。

2023-06-28 17:334764
用户头像
赵钰莹 极客邦科技 总编辑

发布了 909 篇内容, 共 702.3 次阅读, 收获喜欢 2706 次。

关注

评论

发布
暂无评论
发现更多内容

智能时代的信任口诀:让计算远离算计

白洞计划

数据加密和BCrypt哈希算法应用 | StartDT Tech Lab 15

奇点云

架构实战营毕业总结

林子钧

架构实战营 毕业总结

悄悄学习Doris,偷偷惊艳所有人 | Apache Doris四万字小总结

王知无

你真的了解 fail-fast 和 fail-safe 吗

4ye

Java 后端 并发 map 8月日更

LeetCode题解:220. 存在重复元素 III,暴力法,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Spark RDD模型

丛培欣

spark

为什么区块链是互联网的100倍?

CECBC

导播上云,把 “虚拟演播厅” 搬到奥运村

阿里云CloudImagine

阿里云 视频处理 视频直播 视频云 云导播

传统企业数字化转型的三大技术误区

码猿外

数字化转型 敏捷精益

Fastdata for TSDB: SQL使时序数据可扩展

数据库 大数据 时序数据库 tsdb 数据智能

手撸二叉树之递增顺序搜索树

HelloWorld杰少

数据结构与算法 8月日更

Python入门:ChainMap 有效管理多个上下文

华为云开发者联盟

Python 字典 上下文 映射 ChainMap

FastApi-15-文件上传-3

Python研究所

FastApi 8月日更

讲透学烂二叉树(六):二叉树的笔试题:翻转|宽度|深度

zhoulujun

二叉树 二叉树遍历 二叉树翻转

【Flutter 专题】68 图解基本约束 Box (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Go语言:如何通过Go来更好的开发并发程序 ?

微客鸟窝

Go 语言

netty系列之:自定义编码解码器

程序那些事

Java Netty 程序那些事

趣说开源|学生如何参与开源社区?

SphereEx

数据库 开源

区块链技术:为什么说波卡能加速区块链行业的发展?

CECBC

Seata TCC模式原理与实战

码农参上

分布式事务 seata SpringCloud Alibaba 8月日更

OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题

阿里巴巴云原生

云计算 阿里云 开源 云原生 中间件

Compose 中的主题

Changing Lin

8月日更

高并发中,那些不得不说的线程池与ThreadPoolExecutor类

华为云开发者联盟

Java 线程 高并发 线程池 ThreadPoolExecutor类

Excelize 发布 2.4.1 版本,新增并发安全支持

xuri

Excel Go 语言 Excelize #Github

从0开始的TypeScriptの九:接口Interfaces · 中

空城机

typescript 大前端 8月日更

【Vue2.x 源码学习】第三十七篇 - 组件部分 - 组件的合并

Brave

源码 vue2 8月日更

docker的使用

Rubble

8月日更

架构实战营 - 模块五作业

思梦乐

用Java仿一个低配版的Everything软件

Regan Yue

Java 8月日更 Everything

百亿级分布式文件系统之元数据设计

焱融科技

云计算 技术 分布式 高性能 文件存储

阿里首提前向训练框架:让大模型深度思考,可快速定制专属模型_阿里巴巴_InfoQ精选文章