StackLLaMA:用 RLHF 训练 LLaMA 的手把手教程
训练 StackLLaMA 的主要目标是提供一个教程和指南,介绍如何使用 RLHF 来训练模型,而不是主要关注模型的性能表现。
原文链接
“StackLLaMA”: 用 RLHF 训练 LLaMA 的手把手教程
内容总结:
本文介绍了使用人类反馈的强化学习 (RLHF) 训练 LLaMA 模型的方法,以回答 Stack Exchange 上的问题。具体包括有监督的微调、奖励 / 偏好建模和 RLHF。作者结合这些方法发布了 StackLLaMA 模型(已在 🤗 Hub 上开源),并在 Hugging Face TRL 库中集成了整个训练流程。为了训练大型模型,作者采用了参数高效的微调 (PEFT) 技术和数据并行化策略。同时,作者还介绍了使用 StackExchange 数据集 和 LoRA 技术进行低秩优化的方法。最后,作者提供了一些值得关注的演示 demo。
重点关注:
- 采用 LLAMA 7B 作为 PTM
- 使用 StackExchange 数据集 作为人类的反馈数据集
- 采用高效训练策略 LoRA + 多卡并行训练加速
- SFT:使用特定领域下 StackExchange 10M 指令数据集,面向语言任务的预训练模型微调
- 训练奖励模型模拟人类对文本的打分,做法是预测结果的排序,即对每个 prompt (输入文本) 对应的两个结果$(y_k, y_j)$,模型预测人类标注的比分哪个更高
- RLHF:有了微调的语言模型和奖励模型,开始执行 RL 循环
- 生成对 prompt (输入文本) 的反馈。
- 用奖励模型来对反馈评分。
- 对评分,进行一轮策略优化的强化学习。
- 在有监督训练 (SFT),奖励模型训练 (RM) 和 RLHF 的阶段都用下面的方式构造模版
1
2Question: <Query>
Answer: <Response>
StackLLaMA:用 RLHF 训练 LLaMA 的手把手教程
http://example.com/2023/05/09/2023-05-09-StackLLaMA:用 RLHF 训练 LLaMA 的手把手教程/