大模型技术发展到现在,企业想要真正利用大模型做些事情,一定需要懂得大模型微调的过程。
LLaMA-Factory
是一个在GitHub
上开源的,专为大模型训练设计的平台。官方文档:https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md
模型训练阶段
Pre-Training
(预训练阶段):
这个阶段是用来训练基础模型的,是最消耗算力的阶段,也是大模型诞生的起始阶段。
Supervised Finetuning(SFT)
(指令微调/监督微调阶段):
和预训练阶段相比,这个阶段最大的变化就是训练数据由 量多质低 变为 量少质高,训练数据主要由人工进行筛选或生成。
这个阶段完成后其实已经能获得一个可以上线的大模型了
基于人类反馈的强化学习(Rainforcement Learning from Human Feedback,RLHF)
可以分成两个环节:
奖励建模阶段(Reward Modeling):
在这一阶段,模型学习和输出的内容发生了根本性的改变。
前面的两个阶段,预训练和微调,模型的输出是符合预期的文本内容。
奖励建模阶段的输出不仅包含预测内容,还包含奖励值或者说评分值,数值越高,意味着模型的预测结果越好。
这个阶段输出的评分,并不是给最终的用户,而是在强化学习阶段发挥重大作用。
强化学习阶段(Reinforcement Learning):
这个阶段非常 聪明 的整合了前面的成果:
- 针对特定的输入文本,通过
SFT
模型获得多个输出文本。- 基于
RM
模型对多个输出文本的质量进行打分,这个打分实际上已经符合人类的期望了。- 基于这个打分,为多个输出文本结果加入权重,这个权重其实会体现在每个输出
Token
中。- 将加权结果反向传播,对
SFT
模型参数进行调整,就是所谓的强化学习。常见的强化学习策略包括PPO与DPO。
DPO
主要用于分布式训练,适合大规模并行处理的场景,PPO
通常指的是单机上的算法就可以了。