对齐手册
项目描述
对齐手册
健壮的食谱,用于继续预训练并使语言模型与人类和AI偏好保持一致。
这是什么?
就在一年前,聊天机器人已经过时,大多数人还没有听说过像从人类反馈中进行强化学习(RLHF)这样的技术,以使语言模型与人类偏好保持一致。然后,OpenAI通过ChatGPT打破了互联网,Meta随后发布了Llama系列语言模型,这使得ML社区能够构建他们自己的强大聊天机器人。这导致了丰富的数据集和模型生态系统,这些数据集和模型主要专注于通过监督微调(SFT)教授语言模型遵循指令。
然而,从InstructGPT和Llama2论文中我们知道,通过将人类(或AI)偏好与SFT相结合,可以获得显著的可用性和安全性提升。同时,将语言模型与一组偏好对齐是一个相当新颖的想法,而且关于如何训练这些模型、收集哪些数据以及如何衡量最佳下游性能的公共资源很少。
《对齐手册》旨在通过为社区提供一系列全面的训练秘籍来填补这一空白。
新闻 🗞️
- 2024年8月18日:我们发布了SmolLM-Instruct v0.2,以及微调小型LLM的秘籍 💻
- 2024年4月12日:我们发布了与Argilla和Kaist AI合作推出的141B(A35B)Zephyr,以及微调Mixtral 8x22B的ORPO秘籍 🪁
- 2024年3月12日:我们发布了StarChat2 15B,以及训练有能力的编码助手秘籍 🌟
- 2024年3月1日:我们发布了新的秘籍,用于将Gemma 7B与RLAIF对齐 🔥
- 2024年2月1日:我们发布了一个秘籍,用于将开源LLM与宪法AI对齐 📜!有关详细信息,请参阅秘籍和博客文章。
- 2024年1月18日:我们发布了一套DPO vs KTO vs IPO评估套件,有关详细信息请参阅秘籍和博客文章。
- 2023年11月10日:我们发布了复现Zephyr-7b-β的所有训练代码 🪁!我们还发布了由熟练的人工标注员编写的10,000条指令和演示的全新数据集No Robots。
链接 🔗
如何导航此项目 🧭
本项目的目的是简单明了,主要包含
脚本
用于训练和评估模型。包括四个步骤:持续预训练、聊天SFT、DPO偏好对齐以及ORPO与偏好对齐的SFT。每个脚本都支持使用DeepSpeed ZeRO-3进行分布式训练或LoRA/QLoRA进行参数高效的微调。秘籍
用于复现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
注意 如果您的机器RAM少于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 <- Makefile with commands like `make style`
├── README.md <- The top-level README for developers using this project
├── chapters <- Educational content to render on hf.co/learn
├── recipes <- Recipe configs, accelerate configs, slurm scripts
├── scripts <- Scripts to train and evaluate chat models
├── setup.cfg <- Installation config (mostly used for configuring code quality & tests)
├── setup.py <- Makes project pip installable (pip install -e .) so `alignment` can be imported
├── src <- Source code for use in this project
└── tests <- Unit 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}
}
项目详情
alignment-handbook-0.3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 09ea302514019d98721b5fa84bb71ce596bf8c599b8be4b98e178adc77a9271b |
|
MD5 | 74417e93f69e715e4014250cbd80319a |
|
BLAKE2b-256 | 91b0a88e7e1bb3be3aaa4868d4924b56f4405e5aa592a86555367ac6bf108295 |
alignment_handbook-0.3.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a6b0596e32f4302535bed6e29c0c3d8aa29609f625cf4cb549b4007a42712669 |
|
MD5 | 15bfd58a5390af7826b8316aed263ff0 |
|
BLAKE2b-256 | 2ac131c3d362f82609d17d4f8f21fa97ae66b75845af66edd7f3e1ac081cd137 |