大模型"蒸馏"是什么?

大模型向量数据库机器学习

论文《A Survey on Knowledge Distillation of Large Language Models》

picture.image

https://arxiv.org/abs/2402.13116


这篇论文是干嘛的?

这篇论文是关于“知识蒸馏”(Knowledge Distillation,简称KD)在大型语言模型(Large Language Models,简称LLMs)中的应用。

picture.image

简单来说,知识蒸馏就像是让一个“聪明的大老师”(比如GPT-4)教一个“普通的小学生”(比如开源模型LLaMA),把大模型的聪明才智传给小模型,让小模型也能变聪明,而且更省资源、更容易用。

论文的作者们想给大家讲清楚三件事:

  1. 知识蒸馏怎么做 :有哪些方法能把大模型的知识“蒸馏”出来,教给小模型?
  2. 能教什么本领 :小模型通过学习能掌握哪些具体的技能,比如理解上下文、写代码、回答问题?
  3. 用在哪 :这些“蒸馏”出来的小模型能在哪些领域发挥作用,比如医疗、法律、金融?

他们还特别提到了一种“数据增强”(Data Augmentation,简称DA)的技术,说它在知识蒸馏里特别重要,能让小模型学得更好。论文结构很清晰,分成了算法、技能和应用三个大块(这叫“三大支柱”),后面我会详细讲。


为什么要研究这个?

想象一下,GPT-4这样的“大模型”超级聪明,能写文章、回答问题、甚至帮你解决问题,但它有个问题:太大了,太贵了,不是每个人都能用得上。就像一台超级豪华跑车,性能强但耗油多、一般人开不起。而开源模型(比如LLaMA、Mistral)呢,虽然免费、灵活,但本事没那么大,就像一辆普通小轿车。

知识蒸馏的目标就是:让小轿车也能跑得快一点,至少能干点跑车能干的事。这样,大家就能用更便宜、更小巧的模型,享受AI的好处。论文里还提到,这种技术还能让开源模型自己教自己变得更强(自改进),或者把大模型压缩得更高效。


核心内容拆解

  1. 知识蒸馏是什么?(§2 Overview)

知识蒸馏最早是用来把复杂的神经网络“压缩”成简单的小网络。比如原来一个大模型有几亿个参数,跑起来很费电脑,蒸馏后弄成一个小模型,参数少多了,但还能干差不多的事。

到了大型语言模型时代,知识蒸馏变得更高级了。现在不光是压缩模型,还要把大模型的“知识”和“能力”传给小模型。比如,GPT-4能写诗、推理、聊天,知识蒸馏就想让小模型也学会这些本事。

论文里提到,知识蒸馏有三个主要作用(见图1位置: Fig. 1: KD plays three key roles in LLMs ):

  • 提升能力 :把大模型的本事传给小模型。
  • 压缩模型 :让大模型变小变快,但不丢本事。
  • 自我改进 :让小模型自己当老师,自己学着变强。

picture.image

  1. 数据增强(DA)和知识蒸馏的关系(§2.2)

数据增强听起来很高大上,其实就是“造数据”。以前的DA可能是把一句话改改意思,或者翻译一下再翻回来,增加点训练数据。但在大型语言模型里,DA变得更聪明了。

论文说,现在的DA是用大模型生成一大堆高质量的“教学材料”。比如,你给GPT-4一点点“种子知识”(比如几个问题和答案),它就能生成成千上万类似的问答对。这些数据不是随便乱造,而是针对特定技能(比如数学推理)或领域(比如医学)量身定做的。

有了这些数据,小模型就能拿来练习,学到大模型的本事。这就像给小学生准备了一堆精选练习题,比随便找点题做效果好多了。

  1. 知识蒸馏的流程(§2.4)

论文给了个通用流程,告诉你怎么把大模型的知识传给小模型(见图4位置: Fig. 4: An illustration of a general pipeline to distill knowledge ):

  1. 挑目标 :先决定教小模型什么,比如“学会写代码”或“懂法律”。
  2. 给种子 :给大模型一点“种子知识”(比如几个例子),让它知道从哪开始。
  3. 生成教材 :大模型根据种子知识,生成一大堆教学材料(比如问答对)。
  4. 教学生 :拿这些材料训练小模型,让它模仿大模型的本事。

picture.image

这个流程简单来说就是:大模型先干活,产出“教材”,小模型再拿教材学。

  1. 知识蒸馏的三大支柱

论文把知识蒸馏分成三大块(见图3位置: Fig. 3: Taxonomy of Knowledge Distillation of Large Language Models ):

(1)算法(KD Algorithms,§3)

这是讲怎么“教”。论文分了两步:

  • 知识怎么挖出来 (Knowledge,§3.1):
  • 标注(Labeling) :给大模型一些问题,让它直接给出答案。比如,问“1+1=?”它回答“2”,这些问答对就是知识。
  • 扩展(Expansion) :给大模型几个例子,它自己生成更多类似的问答。比如,给几个数学题,它能造出几百个类似的题。
  • 整理(Data Curation) :大模型根据某个主题(比如医学)生成相关数据,再整理成教材。
  • 特征提取(Feature) :从大模型的“脑子”里挖出深层信息(比如它怎么思考的),教给小模型。
  • 反馈(Feedback) :小模型先试着回答,大模型看看对不对,给点建议。
  • 自学(Self-Knowledge) :小模型自己生成答案,自己挑好的学。
  • 怎么教小模型 (Distillation,§3.2):
  • 监督微调(Supervised Fine-Tuning) :直接拿大模型的答案当标准,让小模型模仿。
  • 差异最小化(Divergence and Similarity) :让小模型的答案和大模型尽量靠近。
  • 强化学习(Reinforcement Learning) :给小模型打分,答得好就奖励,慢慢变强。
  • 排序优化(Rank Optimization) :教小模型学会挑最好的答案。

(2)技能(Skill Distillation,§4)

这是讲教小模型“学会什么”。论文列了好多技能:

  • 上下文理解 :比如学会按指令办事(Instruction Following),或多轮对话(Multi-turn Dialogue)。
  • 对齐用户意图 :让小模型的回答更符合人的想法,比如推理方式(Thinking Pattern)或价值观(Value)。
  • 任务专精 :比如自然语言理解(NLU)、生成文本(NLG)、写代码(Code)、甚至处理图片和文字一起(Multi-Modality)。

(3)应用(Verticalization Distillation,§5)

这是讲小模型“用在哪”。论文举了几个例子:

  • 法律 :帮律师分析案例。
  • 医疗 :回答医学问题。
  • 金融 :预测股票或分析报告。
  • 科学 :解决数学或物理问题。

picture.image


这篇论文说了啥新鲜的?

  1. 数据增强很关键 :以前知识蒸馏主要是模仿大模型的输出,现在加上了DA,能生成更丰富的数据,让小模型学得更聪明。
  2. 不只是压缩 :现在的知识蒸馏不光是让模型变小,还能教它高级技能,比如推理、对齐人类价值观。
  3. 三大支柱 :算法、技能、应用,这个结构很清晰,帮你从“怎么做”到“做什么”再到“用在哪”全搞明白。

对应用的好处

  • 省钱省力 :不用买GPT-4那么贵的模型,小模型也能干活。
  • 自己能用 :开源模型蒸馏后,你可以随便改,随便用,不用担心隐私泄露。
  • 领域定制 :想让AI帮你干啥(比如看病、写合同),都能通过蒸馏搞定。

总结

这篇论文就像一份“AI教学指南”。它告诉你怎么用大模型(比如GPT-4)当老师,把知识传给小模型(比如LLaMA),让小模型变得聪明、好用还能省资源。核心是三大块:怎么教(算法)、教什么(技能)、用在哪(应用)。数据增强是个秘密武器,能造出好教材,让小模型学得更好。

论文还给了很多例子和方法(具体看图2位置: Fig. 2: An overview of this survey )。

picture.image

如果你感兴趣,可以去他们的GitHub(https://github.com/Tebmer/Awesome-Knowledge-Distillation-of-LLMs)找更多资料。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论