conversational generation qlora dpo rlhf

开源QLoRA版本的低成本DPO实现

Github: <a href="https://github.com/lyogavin/Anima/stargazers">GitHub Repo stars</a>

我们开源了基于QLoRA的DPO训练方法的实现。

LICENSE

请注意:本model的LICENSE比较特殊,请确认你的使用场景符合此LICENSE。

如何使用Anima QLoRA DPO训练?

**准备数据:**我们采用类似于hh-rlhf数据集的格式:训练数据的格式为每一条数据有两个key:chosen和rejected。用于对比针对同一个prompt,什么是标注认为好的输出和不好的输出。可以修改--dataset参数指向本地数据集或者huggingface数据集。

训练模型:

# 1. install dependencies
pip install -r requirements.txt
# 2. run DPO training
cd rlhf
./run_dpo_training.sh

开源Anima 33B的DPO alignment版本模型

我们针对我们开源的Anima 33B训练了DPO alignment的版本。我们使用了Belle开源的1k评测集。(感谢Belle的开源贡献!)这个评测集针对每一个问题都给出了标准答案,可以用来作为高质量的正向样本,而原来模型的输出就作为负向样本。这样训练会鼓励模型尽量输出接近于Belle评测集中的正确答案的回答方式。

训练采用了一台80G的H100,一共100个step,用时5小时,训练过程丝滑稳定:

training wandb chart

以下是经过DPO训练的模型前后输出变化的举例:

(完整数据在这里。)可见,DPO训练会非常有效的调校模型输出更接近于GPT4喜好的方式。输出更为详尽的信息和回答的思维过程。输出更为详细的思维过程也有助于帮助模型提升正确率。

我们认为提升模型的基础推理能力和编码基础的knowledge储备更适合通过大规模与训练进行。而DPO和RLHF更适合进行模型的输出控制,或者领域知识的训练。

参与贡献

欢迎大家参与贡献本项目 🙏

如果你喜欢我们的项目,请帮忙点个⭐吧!

"Buy Me A Coffee"