<SOURCE_TEXT>
对齐手册
继续预训练并使语言模型与人类和AI偏好对齐的稳健方案。
这是什么?
就在一年前,聊天机器人还不流行,大多数人还没有听说过通过人类反馈强化学习(RLHF)等技术来使语言模型与人类偏好对齐。随后,OpenAI通过ChatGPT打破了互联网,Meta紧随其后发布了Llama系列语言模型,使得机器学习社区能够构建自己的强大聊天机器人。这导致了一个丰富的数据集和模型生态系统,主要集中在通过监督微调(SFT)来教语言模型遵循指令。
然而,我们从InstructGPT和Llama2论文中了解到,通过结合人类(或AI)偏好增强SFT,可以在有用性和安全性上获得显著提升。与此同时,使语言模型与一组偏好对齐是一个相当新颖的想法,目前关于如何训练这些模型、收集哪些数据以及为获得最佳下游性能应该测量哪些指标的公共资源很少。
《对齐手册》旨在通过提供涵盖整个流程的系列稳健训练方案来填补这一空白。
新闻 🗞️
- 2024年4月12日: 我们发布了Zephyr 141B(A35B),并与Argilla和Kaist AI合作提供了微调Mixtral 8x22B的ORPO方案 🪁
- 2024年3月12日: 我们发布了StarChat2 15B,并提供了训练能力强大的编码助手的方案 🌟
- 2024年3月1日: 我们发布了Zephyr 7B Gemma,这是一种使用RLAIF对Gemma 7B进行对齐的新方案 🔥
- 2024年2月1日: 我们发布了一种使用宪法AI对齐开放LLMs的方案 📜!请参阅方案和博客文章了解详情。
- 2024年1月18日: 我们发布了一套DPO vs KTO vs IPO的评估,请参阅方案和博客文章了解详情。
- 2023年11月10日: 我们发布了所有的训练代码,以复制Zephyr-7b-β 🪁!我们还发布了No Robots,这是一套由经验丰富的人类注释员撰写的10,000个指令和示范的新数据集。
链接 🔗
如何浏览此项目 🧭
该项目设计简单,主要包括:
scripts
用于训练和评估模型。包含四个步骤:继续预训练、聊天的监督微调(SFT)、使用DPO进行偏好对齐,以及与ORPO结合的监督微调。每个脚本都支持使用DeepSpeed ZeRO-3进行全模型权重的分布式训练,或使用LoRA/QLoRA进行参数高效的微调。recipes
用于复制如Zephyr 7B等模型。每个方案以YAML文件的形式提供,其中包含与单次训练运行相关的所有参数。还提供了一个gpt2-nl
方案,以说明如何使用本手册进行语言或领域适应,例如通过继续在不同的语言上进行预训练,然后对结果进行SFT和DPO调优。
我们还在编写一系列指南,解释如何使用直接偏好优化(DPO)等方法,以及从实际收集人类偏好的过程中总结的经验教训。建议您按照以下步骤开始:
如果您希望在自己的数据集上训练聊天模型,我们建议您遵循此处的数据集格式说明。
内容
手册的初始版本将重点关注以下技术:
- 继续预训练:将语言模型适应到新的语言或领域,或者通过在新数据集上继续预训练(因果语言建模)来简单地改进它。
- 监督微调:教语言模型遵循指令,并提供有关如何收集和整理训练数据集的提示。
- 奖励建模:教语言模型根据人类或AI的偏好区分模型响应。
- 拒绝采样:一种简单但强大的技术,可以提高SFT模型的性能。
- 直接偏好优化(DPO):一种强大且有前途的替代PPO的方法。
- 赔率比偏好优化(ORPO):一种结合SFT和DPO在单个阶段内进行人类偏好微调的技术。
安装说明
要运行此项目中的代码,首先使用Conda创建一个Python虚拟环境,例如:
conda create -n handbook python=3.10 && conda activate handbook
接下来,安装PyTorch v2.1.2
- 该版本对可重复性非常重要!由于这依赖于硬件,我们
将您引导至PyTorch安装页面。
然后,您可以通过以下方式安装剩余的软件包依赖项:
git clone https://github.com/huggingface/alignment-handbook.git
cd ./alignment-handbook/
python -m pip install .
您还需要安装Flash Attention 2,可以通过以下命令安装:
python -m pip install flash-attn --no-build-isolation
注意 如果您的机器内存少于96GB且拥有许多CPU核心,请减少
MAX_JOBS
参数,例如MAX_JOBS=4 pip install flash-attn --no-build-isolation
接下来,按如下方式登录您的Hugging Face账户:
huggingface-cli login
最后,安装Git LFS,以便将模型推送到Hugging Face Hub:
sudo apt-get install git-lfs
您现在可以查看scripts
和recipes
目录,了解如何训练一些模型 🪁!
项目结构
├── LICENSE
├── Makefile <- 包含 `make style` 等命令的Makefile
├── README.md <- 开发人员使用本项目的顶层README
├── chapters <- 要在hf.co/learn上呈现的教育内容
├── recipes <- 配方配置、加速配置、slurm脚本
├── scripts <- 用于训练和评估聊天模型的脚本
├── setup.cfg <- 安装配置(主要用于配置代码质量和测试)
├── setup.py <- 使项目可通过pip安装 (pip install -e .),以便可以导入`alignment`
├── src <- 本项目使用的源代码
└── tests <- 单元测试
引用
如果您发现本仓库的内容对您的工作有用,请按如下方式引用它,通过\usepackage{biblatex}
:
@software{Tunstall_The_Alignment_Handbook,
author = {Tunstall, Lewis and Beeching, Edward and Lambert, Nathan and Rajani, Nazneen and Huang, Shengyi and Rasul, Kashif and Bartolome, Alvaro and M. Rush, Alexander and Wolf, Thomas},
license = {Apache-2.0},
title = {{The Alignment Handbook}},
url = {https://github.com/huggingface/alignment-handbook},
version = {0.3.0.dev0}
}
</SOURCE_TEXT>