跳转到主要内容

对齐手册

项目描述

🤗 模型与数据集 | 📃 技术报告

对齐手册

健壮的食谱,用于继续预训练并使语言模型与人类和AI偏好保持一致。

这是什么?

就在一年前,聊天机器人已经过时,大多数人还没有听说过像从人类反馈中进行强化学习(RLHF)这样的技术,以使语言模型与人类偏好保持一致。然后,OpenAI通过ChatGPT打破了互联网,Meta随后发布了Llama系列语言模型,这使得ML社区能够构建他们自己的强大聊天机器人。这导致了丰富的数据集和模型生态系统,这些数据集和模型主要专注于通过监督微调(SFT)教授语言模型遵循指令。

然而,从InstructGPTLlama2论文中我们知道,通过将人类(或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)等方法的工作原理,以及从实践中收集人类偏好的经验教训。要开始,我们建议以下操作

  1. 按照安装说明设置您的环境等。
  2. 按照秘籍说明复现Zephyr-7b-β。

如果您想在自己的数据集上训练聊天模型,我们建议您遵循此处的数据集格式说明。

内容

手册的初始发布将重点关注以下技术

  • 持续预训练:将语言模型适应新的语言或领域,或者通过在新的数据集上持续预训练(因果语言建模)来简单地提高其性能。
  • 监督微调:教授语言模型如何遵循指令和提示,以及如何收集和整理您的训练数据集。
  • 奖励建模:教授语言模型根据人类或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

现在,您可以检查scriptsrecipes目录以获取训练一些模型的说明 🪁!

项目结构

├── 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 (23.5 kB 查看哈希值)

上传时间

构建分布

alignment_handbook-0.3.0-py3-none-any.whl (21.8 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面