【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

谷歌开源 AI 微调方法: Distilling Step-by-Step

  • 2023-11-08
    北京
  • 本文字数:1379 字

    阅读完需:约 5 分钟

大小:681.48K时长:03:52
谷歌开源 AI 微调方法: Distilling Step-by-Step

华盛顿大学和谷歌研究中心的一个团队最近开源了 Distilling Step-by-Step(逐步蒸馏),一种用于微调规模较小的语言模型的技术。与标准微调相比,逐步蒸馏需要的训练数据更少,并且生成的模型更小,但模型性能却优于参数规模是它 700 倍的小样本提示大型语言模型 (LLM)。

 

虽然 LLM 一般可以在提示较少的情况下在多种任务上有良好的表现,但由于其内存和算力要求过高,模型的托管是比较有挑战的。规模较小的模型在微调后也可以有良好的表现,但这需要工程师手动创建针对具体任务优化的数据集。逐步蒸馏的关键思想是使用 LLM 自动生成一个小型微调数据集,其中的数据有一个输入和一个输出标签,以及选择这个输出标签的“理由”。微调过程会训练这个小模型来预测输出标签并生成对应的理由。在 NLP 基准上评估时,小型微调模型的性能优于 540B PaLM 模型,同时仅需要这个基准测试的全部微调数据的 80%。据谷歌称:


我们展示了,逐步蒸馏既减少了构建针对特定任务的较小模型所需的训练数据集规模,也减少了实现甚至超越小样本提示 LLM 的性能水平所需的模型大小。总的来说,逐步蒸馏提出了一种可以高效利用资源的范例,可以解决模型大小和所需训练数据之间的权衡问题。


研究表明,增加 LLM 中的参数规模可以提高其性能,目前最先进的模型(例如 PaLM)拥有数百亿个参数。然而,这些大型模型价格昂贵,且难以用于推理,因为它们需要多个并行连接的 GPU 才能把这么多参数保存在内存里。最近的研究开发出了规模稍小的模型(例如 Meta 的 Llama 2),其性能表现差不多,但参数少了一个数量级;然而,这些小一些的模型还是很庞大,需求的算力也很高。

 

要做出在特定任务上表现良好的小模型的一种方法,是使用针对具体任务收集的数据集来微调小规模语言模型。虽然这个数据集可能相对较小(大约有数千个示例),但其数据收集起来可能还是费时费钱。另一种选择是知识蒸馏,也就是使用大型模型作为较小模型的老师。 InfoQ 最近报道了谷歌开发的一项技术,使用 PaLM LLM 来创建训练数据集,最后生成的微调模型的性能可与规模大 10 倍的 LLM 相媲美。

 

逐步蒸馏确实需要微调数据集,但它减少了创建高性能模型所需的数据量。源数据集通过思维链提示输入 PaLM LLM,要求模型给出其答案的理由。输出结果是修正后的微调数据集,其中包含原始输入和答案以及理由。这个较小的目标模型经过微调来执行两项任务:回答原始问题并生成理由。

 

谷歌使用四个 NLP 基准测试评估了他们的技术,每个基准都包含一个微调数据集。他们使用逐步蒸馏来修正这些数据集,并使用了参数不到 1B 的微调 T5 模型。他们发现,这些模型在仅使用数据集的一小部分数据的情况下,性能就比基线微调模型要好;在某些情况下只要 12.5% 的数据就有这样的表现。他们还发现,他们的 770M 参数模型在 ANLI 基准测试中的性能优于大它 700 倍的 540B 参数 PaLM,同时只需要 80% 的微调数据集数据。

 

在 X(以前的 Twitter)上关于这项工作的讨论中,人工智能企业家 Otto von Zastrow 写道:


这些结果非常厉害。我会把这种办法叫做合成数据生成,而不是蒸馏,我真的很好奇,如果你根据每个示例问题的合成理由来训练原始的 LLM 会发生什么事情。


逐步蒸馏的源代码和训练数据集可在 GitHub 上获取。 Google Cloud 的 Vertex AI 平台还提供该算法的非公开预览。

 

原文链接

https://www.infoq.com/news/2023/10/google-distillation/

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-11-08 08:003256

评论

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

Python程序性能分析和火焰图

ElvinYang

Java 为什么需要包装类

Rayjun

Java

ITerm2 + Oh my ZSH + Powerlevel10k

JDoe

配置

目光聚集之处,金钱必将追随

Tom

学习 个人成长 思考 读书

每个人都应该知道的性能参数

ElvinYang

良好的工作习惯——及时存档、备份

小匚

工作效率

Try-Catch包裹的代码异常后,竟然导致了产线事务回滚!

牧码哥

Java spring 事务

工具集系列|值得收藏的几个免费在线学习国外网站

一尘观世界

学习 工具 网站 提升

Git clone过慢问题

JDoe

git

医院陪护5天的四点感受

赵新龙

身心健康 医院

追光逐影:读《我们这一代》

北风

Linux学习-2020.05.11

Flychen

你真的懂"看板文化"么?

Yanel 说敏捷产品

敏捷 敏捷开发 敏捷精髓

如何高效阅读

ElvinYang

从技术层面理解对于区块链技术的10.24集体学习讲话

Tux Hu

区块链 智能合约 以太坊 加密货币 去中心化网络

功不唐捐

Janenesome

读书笔记 思考 坚持

也谈程序员的核心竞争力

我心依然

学习 程序员 竞争力 独立思考 清晰表达

如何让团队产生“多米诺骨牌”效应?

Yanel 说敏捷产品

项目管理 敏捷 敏捷开发 敏捷精髓

回"疫"录(12):一“罩”难求

小天同学

疫情 回忆录 现实纪录 纪实

带你吃透原型设计

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

接口限流算法有哪些,看完这篇又能和面试官互扯了~

不才陈某

Java 分布式 后端

危机过后,「表格文档协同」需要具备什么能力?

葡萄城技术团队

大前端 开发者工具 Excel

ShedLock:一个轻量级的定时任务协调组件

kk

定时任务 shedlock

游戏夜读 | 如何制作互动剧?

game1night

用Go替代Python在生产环境中进行数据分析

良少

人工智能 大数据 数据分析 pandas Go 语言

你的团队属于部落的哪个阶段?

Yanel 说敏捷产品

敏捷 敏捷开发 敏捷精髓

DDD 实践手册(6. Bounded Context - 限界上下文)

Joshua

企业架构 设计模式 领域驱动设计 DDD 架构模式

NIO 看破也说破(三)—— 不同的IO模型

小眼睛聊技术

Java 学习 深度思考 程序员 架构

错过了初恋,别错过WebFlux

稻草鸟人

stream Spring5 WebFlux Reactive

认识数据产品经理(二 数据产品经理的稀缺性)

马踏飞机747

大数据 互联网 数据分析 产品经理

【解析+示例】2种方法,通过SpreadJS在前端实现甘特图

葡萄城技术团队

大前端 甘特图 SpreadJS 表格控件

谷歌开源 AI 微调方法: Distilling Step-by-Step_生成式 AI_Anthony Alford_InfoQ精选文章