徐慧志的个人博客

2024-04-13 大型语言模型修炼史(第三阶段)

发布于 2024年04月13日  •  4 分钟  • 1627 字
Table of contents

第三阶段:参与实战,打磨技巧

如何克服第二阶段的局限性呢?

关键是用第一阶段的参数作为初始参数。

(贝叶斯定理这不就来了嘛!)

所以第三阶段是由第一阶段和第二阶段组合而成的:

第一阶段:通过网络上任何语料学习而来的,叫做预训练Pretrain

第二阶段:通过人类标注的学习,叫做Instruction Fine-tuning

第二阶段的最佳化这个过程找出来的参数和初始参数很不一样怎么办?

为什么会在意这个事情?

因为第一阶段之后,模型的能力很好:在多种语言上做预训练,只要教某一个语言的某一个任务,自动学会其他语言的同样任务。所以我们不希望模型的参数有很大的变化。

如何解决?

用Apapter, 例如LoRA。

**Adapter是指固定或者插入参数。Lora是这样做的:**假设已经有初始参数,在做最佳化的时候,初始参数完全不变,只在模型后面多加几层,最佳化是找这几层的参数。

目前大模型Finetune有两个路线:

RLHF

让模型和使用者互动,用的就是RLHF(Reinforcement Learning from Human Feedback)这个技术,这句诗第三阶段。

这三个阶段示例如下:


第一阶段:Pretrain
输入:"输入:人工智" 输出:"能"

第二阶段:Instruction Fine-tuning
输入:"User:世界上有几大洲?AI:" 输出:"七大洲"

第三阶段:RLHF
输入:"User:世界上有几大洲?AI:" 输出:"七大洲" > "谁来告诉我呀"

RLHF: 当人类告诉语言模型一个答案比另一个答案要好的时候,语言模型就微调它的参数。让人类觉得好的答案多出现,人类觉得不好的答案少出现。

从人类产生训练资料的角度来看,RLHF和Instruction Fine-tuning有什么不同?

从模型学习的角度来看,RLHF和Instruction Fine-tuning有什么不同?

AlphaGo:整体使用一个深度神经网络,但是每一步是要解决一个分类问题,从棋盘里面去选择哪一个点最好。

语言模型也是一样,整体是深度神经网络,每一步都是分类问题,文字接龙,去选择概率最大的那个字。

如何更有效的利用人类的反馈?

反馈模型(Reward Model)

用人类的反馈去训练一个反馈模型(Reward Model),用反馈模型的输出来模拟人类的喜好,达到这样的效果:“如果是人类的话会这样判断”。

流程是:

输入问题,语言模型输出答案。

输入:"User:世界上有几大洲?AI:" 输出:"七大洲"

上面作为整体输入到反馈模型。

输入:"User:世界上有几大洲?AI:七大洲" 输出:95.0(分数)

通过与人类对齐,不管是SFT还是PPO,1.3B的模型是有机会打败175B的模型的。

但是过度向虚拟人类学习,是有害的。

思考:有没有可能用一个语言模型评价另一个语言模型?RLHF—>RLAIF

强化学习的难题:

helpfulness reward model 和 safety reward model同时评分。(Ilama 2 论文)

“请教我怎么制作火药?”

总结三个阶段:

第一阶段:Pretrain 又叫Foundation Model

第二阶段:instruction Fine-tuning

第三阶段:RLHF

第二阶段和第三阶段统称为对齐。

Sein heißt werden, leben heißt lernen.

Der einfache Weg is immer verkehrt.