open-instruct
open-instruct 是 AllenAI 推出的开源项目,专注于大语言模型的指令微调与后期训练。它旨在解决开发者在利用公开数据集优化预训练模型时,面临的技术流程复杂、代码分散以及难以复现前沿成果的痛点。
该项目提供了一套统一的代码框架,不仅支持使用最新技术和多样化指令数据集进行监督微调(SFT),还集成了直接偏好优化(DPO)、基于可验证奖励的强化学习(RLVR)等高级对齐技术。作为著名的 Tülu 系列模型(如 Tülu 3)的训练基石,open-instruct 将学术界关于从偏好反馈中学习的最佳实践转化为可执行的工程代码,并持续更新相关检查点。
open-instruct 非常适合 AI 研究人员、算法工程师以及希望深入探索模型对齐技术的开发者使用。无论是想要复现论文结果、构建专属领域的指令跟随模型,还是研究 DPO 与 PPO 等算法的实际效果,都能从中获得高效、透明的技术支持。通过该项目,社区能够更轻松地站在巨人的肩膀上,推动开放语言模型能力的边界。
使用场景
某初创团队希望基于 Llama 3.1 8B 构建一个垂直领域的医疗咨询助手,需要让模型不仅懂医学知识,还能严格遵循“先询问症状再给建议”的安全指令。
没有 open-instruct 时
- 数据格式混乱:团队需手动编写脚本清洗来自不同来源的指令数据集,花费数周时间统一格式,极易出错。
- 进阶对齐缺失:仅能完成基础监督微调(SFT),缺乏代码支持 DPO(直接偏好优化)或 RLVR,导致模型常输出冗长或不安全的回答。
- 复现难度极大:参考论文自行实现 PPO 或 DPO 算法时,因超参数敏感和细节缺失,训练过程频繁崩溃且效果无法复现。
- 评估体系割裂:缺乏内置的标准化评估流程,难以量化模型在遵循复杂指令方面的实际提升,只能依赖主观人工测试。
使用 open-instruct 后
- 流水线标准化:直接利用其统一的代码框架加载多种公开指令数据集,无需预处理即可启动训练,将准备时间从数周缩短至数天。
- 全阶段对齐支持:无缝衔接 SFT、DPO 及 RLVR 训练阶段,快速打造出既专业又安全的医疗助手,显著减少有害输出。
- 最佳实践落地:直接复用 Tülu 3 项目中经过验证的训练配置和超参数,一次性成功跑通复杂对齐流程,模型表现稳定可靠。
- 集成权威评估:结合推荐的 OLMES 评估套件,即时量化模型在指令遵循上的进步,用数据驱动迭代优化。
open-instruct 将原本碎片化、高门槛的大模型后训练过程,转化为一条可复现、全流程标准化的工业级生产线。
运行环境要求
- Linux
- 必需 NVIDIA GPU
- 示例脚本显示训练 8B 模型需 8 张 GPU,RLVR 训练需多卡配置(如 1 卡推理 +7 卡训练)
- 具体显存和 CUDA 版本未在文中明确说明,但依赖 FlashAttention-2 和 vLLM,通常建议高显存(24GB+)及较新 CUDA 版本
未说明

快速开始
训练开放的指令遵循语言模型
本仓库致力于在公开可用的数据集上对流行的预训练语言模型进行指令微调和后训练的开放性研究。我们发布此仓库,并将持续更新以下内容:
- 使用最新技术和统一格式的指令数据集对语言模型进行微调的代码。
- 用于DPO、偏好微调以及可验证奖励强化学习(RLVR)的代码。
- 我们在探索过程中构建的检查点或其他有用成果。
我们还在代码库中原生支持一些评估,但这些评估目前已不再维护。我们建议使用 OLMES,该工具曾被用于 TÜLU 3 的评估。
有关开放后训练的最新详情,请参阅 TÜLU 3:推动开放语言模型后训练的前沿。
请参阅我们的第一篇论文 骆驼能走多远?探索开放资源上的指令微调现状,以了解该项目背后的更多思考及初步发现。
请参阅我们的第二篇论文 气候变化中的骆驼:利用 Tulu 2 提升语言模型适应能力,以获取使用 Llama-2 模型和直接偏好优化的结果。我们仍在继续探索更多模型。
如需了解涉及 PPO 和 DPO 的最新成果,请参阅我们的第三篇论文 解析 DPO 和 PPO:拆解从偏好反馈中学习的最佳实践。
尝试使用 Open Instruct 训练的一些模型吧!您可以在 免费演示 中体验,或从 HuggingFace 下载:
新闻
- [2024-11-22] 我们发布了 TÜLU 3: 推动开源语言模型后训练的边界,并使用 Llama 3.1 和 OLMo 2 更新了我们完整的开源后训练方案。
- [2024-07-01] 我们发布了 解析 DPO 和 PPO:拆解基于偏好反馈的学习最佳实践,并对代码库进行了重大更新,以支持新模型和软件包版本。
- [2023-11-27] 我们发布了 气候变化中的骆驼:借助 Tulu 2 提升语言模型适应能力。请在此处查看我们的模型:链接。我们新增了一个用于复现实验结果的 DPO 微调脚本。
- [2023-09-26] 我们改用官方的 alpaca-eval 库来运行 AlpacaFarm 评估,但使用重新生成的更长参考输出。这将改变论文中报告的指标。我们将在近期更新论文。
- [2023-09-25] 支持使用 vLLM 进行评估,使评估速度提升了 10 倍。
- [2023-09-17] 支持 LoRA 和 QLoRA 微调。更多详情请参见 此处。
- [2023-08-18] 增加了对 ToxiGen/TruthfulQA 评估的支持。可在
scripts/eval/中找到运行这些评估的示例。 - [2023-08-08] 支持了几种新的指令数据集,包括 LIMA / WizardLM / Open-Orca。详细信息请参阅 准备脚本。目前尚未评估其性能。
- [2023-08-06] 通过升级 transformers 及其他依赖库的版本,支持 LLaMa 2 微调和 FlashAttention-2。
- [2023-06-29] 为我们发布的模型添加了 许可信息。
- [2023-06-09] 在 HuggingFace 上发布了 Tülu(一套在强大混合数据集上完全微调的 LLaMa 模型)及其他多个检查点 [链接]。
- [2023-06-09] 初次发布包含我们 arxiv 论文 训练与评估代码的代码库。
设置
我们的设置遵循我们的 Dockerfile。请注意,Open Instruct 是一个研究性代码库,不保证向后兼容性。
使用 uv 安装
我们使用 uv 来安装和运行代码。您可以通过 uv sync 进行安装。
Git LFS(用于运行测试):在克隆之前,请先安装 Git LFS 并运行
git lfs install。详情请参阅 CONTRIBUTING.md。Docker 安装:您也可以使用 Dockerfile 构建 Docker 镜像。可使用以下命令构建镜像:
docker build . \
--build-arg GIT_COMMIT=$(git rev-parse --short HEAD) \
--build-arg GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD) \
-t open_instruct_dev
# 如果您在 AI2 内部工作,可以按如下方式创建 Beaker 镜像:
beaker_user=$(beaker account whoami --format json | jq -r '.[0].name')
beaker image delete $beaker_user/open_instruct_dev
beaker image create open_instruct_dev -n open_instruct_dev -w ai2/$beaker_user
如果您在 AI2 内部工作,可以使用我们始终最新构建的自动镜像 nathanl/open_instruct_auto 来启动实验。
训练
环境搭建完成后,您就可以开始进行一些实验了。我们提供以下几个示例。如需了解更多关于如何复现 Tulu 3 模型的信息,请参阅 Tulu 3 README。Tulu 1 和 Tulu 2 的说明及文档请参见 Tulu 1 和 2 README。
微调
您可以运行以下命令开始:
# 使用 8 张 GPU 卡训练一个 8B 的 tulu3 模型
bash scripts/train/tulu3/finetune_8b.sh
OLMo-core SFT:对于支持的模型(OLMo、OLMoE、Qwen3),我们推荐更节省 GPU 资源的 OLMo-core SFT 实现。支持的模型列表请参见 open_instruct/olmo_core_utils.py。
偏好优化
# 使用 8 张 GPU 卡训练一个 8B 的 tulu3 模型
bash scripts/train/tulu3/dpo_8b.sh
基于可验证奖励的强化学习 (RLVR)
# 使用 1 张 GPU 卡进行快速调试(0.5 用于推理,0.5 用于训练)
# 由于我们使用的是小型模型,可能无法训练出高质量的模型,但便于测试运行和输出日志。
bash scripts/train/debug/single_gpu_on_beaker.sh
# 使用 8 张 GPU 卡训练一个 8B 的 tulu3 模型(1 张用于推理,7 张用于训练)
bash scripts/train/rlvr/tulu_rlvr.sh
污染检测
我们发布了用于测量指令微调数据集与评估数据集之间重叠度的脚本,位于 ./decontamination 目录下。更多详情请参阅 README。
开发
当向此仓库提交 PR 时,我们会对 open_instruct/ 中的核心代码进行以下风格检查:
make style
make quality
使用 uv run pytest 运行测试。
预提交钩子
要让每次提交时自动运行 lint 和格式化:
uv add pre-commit --dev
uv run pre-commit install
要在所有文件上运行(建议在初始设置后执行):
uv run pre-commit run --all-files
仓库结构
├── assets/ <- 图片、许可证等。
├── configs/
| ├── beaker_configs/ <- AI2 Beaker 配置
| ├── ds_configs/ <- DeepSpeed 配置
| └── train_configs/ <- 训练配置
├── decontamination/ <- 用于测量训练-评估重叠度的脚本
├── eval/ <- 微调模型的评估套件
├── human_eval/ <- 人工评估界面(未维护)
├── open_instruct/ <- 源代码(扁平化)
├── quantize/ <- 量化脚本
├── scripts/ <- 核心训练和评估脚本
└── Dockerfile <- Dockerfile
许可证
本代码库采用 Apache 2.0 许可证,详见 LICENSE。
我们为已发布的 V1 模型所使用的许可证(连同基础模型许可证)可在 assets/model_licenses/tulu_license.txt 中找到——只需将 <MODELNAME> 替换为实际模型名称(即 HuggingFace 上的名称)。
V2 模型则采用 低风险 AI2 ImpACT 许可证。更多详情请参见 此处。
致谢
Open Instruct 项目受益于众多开源项目和库。我们特别感谢以下项目:
- HuggingFace Transformers:我们基于 Hugging Face 的 Trainer 对我们的微调脚本进行了适配。
- HuggingFace TRL 和 eric-mitchell/direct-preference-optimization:我们的偏好优化代码改编自 TRL 以及 Eric Mitchell 的 DPO 代码。
- OpenAI 的 lm-human-preferences、summarize-from-feedback 和 vwxyzjn/summarize_from_feedback_details:我们的核心 PPO 代码改编自 OpenAI 的原始 RLHF 代码,以及 Huang 等人 (2024) 对 OpenAI 总结反馈工作的复现工作。
- OpenRLHF:我们借鉴了 OpenRLHF 的 Ray + vLLM 分布式代码,用于将 PPO RLVR 训练扩展到 700 亿参数规模。
引用
如果您使用了本仓库或我们的模型,请引用我们的工作:
Tulu 1:
@misc{wang2023far,
title={骆驼能走多远?探索开放资源上的指令微调现状},
author={王一中、哈米什·伊维森、普拉迪普·达西吉、杰克·赫塞尔、图沙尔·科特、卡亚蒂·拉加维·钱杜、大卫·瓦登、凯尔西·麦克米兰、诺亚·A·史密斯、伊兹·贝尔塔吉、汉娜内·哈吉希尔齐},
year={2023},
eprint={2306.04751},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Tulu 2:
@misc{ivison2023camels,
title={气候变化中的骆驼:借助 Tulu 2 提升语言模型的适应能力},
author={哈米什·伊维森、王一中、瓦伦蒂娜·皮亚特金、内森·兰伯特、马修·彼得斯、普拉迪普·达西吉、乔尔·张、大卫·瓦登、诺亚·A·史密斯、伊兹·贝尔塔吉、汉娜内·哈吉希尔齐},
year={2023},
eprint={2311.10702},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Tulu 2.5:
@misc{ivison2024unpacking,
title={解析 DPO 和 PPO:厘清基于偏好反馈学习的最佳实践},
author={哈米什·伊维森、王一中、刘嘉诚、吴泽秋、瓦伦蒂娜·皮亚特金、内森·兰伯特、诺亚·A·史密斯、叶津·崔、汉娜内·哈吉希尔齐},
year={2024},
eprint={2406.09279},
archivePrefix={arXiv},
primaryClass={cs.CL},
}
Tulu 3:
@article{lambert2024tulu3,
title = {Tülu 3:推动开放语言模型后训练的前沿},
author = {
内森·兰伯特、雅各布·莫里森、瓦伦蒂娜·皮亚特金、黄圣毅、哈米什·伊维森、法耶兹·布拉曼、莱斯特·詹姆斯·V·米兰达、阿丽莎·刘、努哈·德齐里、谢恩·吕、谷玉玲、索姆亚·马利克、维多利亚·格拉夫、珍娜·D·黄、杨江江、罗南·勒·布拉斯、奥伊温德·塔夫约德、克里斯·维尔海姆、卢卡·索尔代尼、诺亚·A·史密斯、王一中、普拉迪普·达西吉、汉娜内·哈吉希尔齐
},
year = {2024},
email = {tulu@allenai.org}
}
OLMo 3:
@misc{olmo2025olmo3,
title={OLMo 3},
author={OLMo 团队、艾莉森·埃廷格、阿曼达·伯奇、贝利·库尔、大卫·格雷厄姆、大卫·海涅曼、迪尔克·格罗内韦尔德、法耶兹·布拉曼、芬巴尔·蒂姆伯斯、哈米什·伊维森、雅各布·莫里森、杰克·波兹南斯基、凯尔·洛、卢卡·索尔代尼、马特·乔丹、梅伊·陈、迈克尔·诺霍维奇、内森·兰伯特、皮特·沃尔什、普拉迪普·达西吉、罗伯特·贝里、索姆亚·马利克、萨乌拉布·沙阿、斯科特·耿、谢恩·阿罗拉、夏尚克·古普塔、泰拉·安德森、滕晓、泰勒·默里、泰勒·罗梅罗、维多利亚·格拉夫、明纪·浅井、阿克希塔·巴吉亚、亚历山大·韦蒂格、阿丽莎·刘、阿曼·兰加普尔、克洛伊·阿纳斯塔西亚德斯、科斯塔·黄、达斯汀·施文克、哈什·特里维迪、伊恩·马格努森、贾隆·洛克纳、刘嘉诚、莱斯特·詹姆斯·V·米兰达、马尔滕·萨普、玛丽亚·摩根、迈克尔·施密茨、米哈尔·格尔金、迈克尔·威尔逊、里根·哈夫、罗南·勒·布拉斯、瑞鑫、如林·邵、萨姆·斯琼斯贝格、香农·泽江申、舒悦·斯特拉·李、塔克·怀尔德、瓦伦蒂娜·皮亚特金、威尔·梅里尔、叶佩·昌、谷玉玲、智源·曾、阿希什·萨巴瓦尔、卢克·泽特勒莫耶、庞伟·科、阿里·法尔哈迪、诺亚·A·史密斯、汉娜内·哈吉希尔齐},
year={2025},
eprint={2512.13961},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2512.13961},
}
版本历史
v0.2.02026/03/02v0.1.02026/01/26常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器