2026 年如何微调 LLM
2026 年如何微调 LLM
2026 年如何微调 LLM 2026 年如何微调 LLM Modified June 29 ART:Agent Reinforcement Trainer GRPO 很强,但你要怎样把它真正用到现实世界的智能体上? ART(Agent Reinforcement Trainer)是 OpenPipe 推出的 100% 开源框架,可以把 GRPO 带到任何 Python 应用里。 大多数 RL 框架都是为简单聊天机器人交互设计的:一个输入,一个输出,任务结束。真实智能体完全不同。它们会搜索文档、调用 API,并在给出答案前进行多步推理。 ART 正是为这类场景构建的。它提供: • 原生支持工具调用和多轮对话 • 集成 LangGraph、CrewAI 和 ADK • 训练期间高效利用 GPU 架构 ART 分成两部分:Client(客户端)和 Backend(后端)。 客户端 是你的智能体代码所在的位置。它向后端发送推理请求,并把每个动作记录进一个 Trajectory。Trajectory 是一次智能体运行的完整历史。 后端 负责重活。它使用 vLLM 做快速推理,并使用 Unsloth 驱动的 GRPO 做训练。每完成一个训练步骤,新的 LoRA checkpoint 会自动加载到推理服务器中。 完整训练循环如下: 1. 客户端发送推理请求 2. 后端生成模型输出 3. 智能体在环境中采取行动(工具调用、搜索等) 4. 环境返回奖励 5. 训练器通过 GRPO 更新模型 6. 新的 LoRA checkpoint 加载进推理服务器 7. 重复这个过程,每个循环都会让模型比之前更好一点 RULER:不再手写奖励函数 这是大多数人最头疼的部分。 定义一个好的奖励函数,一直都是 RL 里最难的部分。训练邮件智能体,需要带标签的正确答案。训练代码智能体,需要测试套件。每一个都是独立的工程项目。 RULER(Relative Universal LLM Elicited Rewards)彻底消除了这个瓶颈。它使用 LLM as judge 来比较多个智能体轨迹并给出排序,不需要任何带标签数据。 它成立,是因为两个关键洞察: • 让 LLM “给这个结果打 0 10 分”,会产生不稳定结果 • 让它回答“这 4 次尝试里,哪一次最成功地完成了目标?”,可靠得多 而且,由于 GRPO 只需要相对分数,绝对数值本来也不重要。 流程分三步: 1. 为一个场景生成 N 条轨迹 2. 把它们交给 LLM 评审器,由它给每条轨迹打 0 到 1 分 3. 直接把这些分数作为 GRPO 的奖励 不用写奖励函数。不用收集带标签数据。 串起来看:一个实践例子 我整理了一个完整可运行的 notebook,用 ART 通过强化学习训练一个 3B 模型,让它掌握如何使用任意 MCP 服务器。 你只需要提供一个 MCP 服务器 URL,这个 notebook 就会: 1. 查询该服务器的工具 2. 生成一组使用这些工具的输入任务 3. 使用自动 RULER 评测,在这些任务上训练模型 你可以在 ART 的 GitHub 仓库里找到更多可以改造和上手的示例。 仓库链接🔗 (别忘了点 star 🌟) 感谢阅读! ART:Agent Reinforcement Trainer 仓库链接🔗 ART:Agent Reinforcement Trainer ART:Agent Reinforcement Trainer GRPO 很强,但你要怎样把它真正用到现实世界的智能体上? ART(Agent Reinforcement Trainer)是 OpenPipe 推出的 100% 开源框架,可以把 GRPO 带到任何 Python 应用里。 大多数 RL 框架都是为简单聊天机器人交互设计的:一个输入,一个输出,任务结束。真实智能体完全不同。它们会搜索文档、调用 API,并在给出答案前进行多步推理。 ART 正是为这类场景构建的。它提供: • 原生支持工具调用和多轮对话 • 集成 LangGraph、CrewAI 和 ADK • 训练期间高效利用 GPU 架构 ART 分成两部分:Client(客户端)和 Backend(后端)。 客户端 是你的智能体代码所在的位置。它向后端发送推理请求,并把每个动作记录进一个 Trajectory。Trajectory 是一次智能体运行的完整历史。 后端 负责重活。它使用 vLLM 做快速推理,并使用 Unsloth 驱动的 GRPO 做训练。每完成一个训练步骤,新的 LoRA checkpoint 会自动加载到推理服务器中。 完整训练循环如下: 1. 客户端发送推理请求 2. 后端生成模型输出 3. 智能体在环境中采取行动(工具调用、搜索等) 4. 环境返回奖励 5. 训练器通过 GRPO 更新模型 6. 新的 LoRA checkpoint 加载进推理服务器 7. 重复这个过程,每个循环都会让模型比之前更好一点 RULER:不再手写奖励函数 这是大多数人最头疼的部分。 定义一个好的奖励函数,一直都是 RL 里最难的部分。训练邮件智能体,需要带标签的正确答案。训练代码智能体,需要测试套件。每一个都是独立的工程项目。 RULER(Relative Universal LLM Elicited Rewards)彻底消除了这个瓶颈。它使用 LLM as judge 来比较多个智能体轨迹并给出排序,不需要任何带标签数据。 它成立,是因为两个关键洞察: • 让 LLM “给这个结果打 0 10 分”,会产生不稳定结果 • 让它回答“这 4 次尝试里,哪一次最成功地完成了目标?”,可靠得多 而且,由于 GRPO 只需要相对分数,绝对数值本来也不重要。 流程分三步: 1. 为一个场景生成 N 条轨迹 2. 把它们交给 LLM 评审器,由它给每条轨迹打 0 到 1 分 3. 直接把这些分数作为 GRPO 的奖励 不用写奖励函数。不用收集带标签数据。 串起来看:一个实践例子 我整理了一个完整可运行的 notebook,用 ART 通过强化学习训练一个 3B 模型,让它掌握如何使用任意 MCP 服务器。 你只需要提供一个 MCP 服务器 URL,这个 notebook 就会: 1. 查询该服务器的工具 2. 生成一组使用这些工具的输入任务 3. 使用自动 RULER 评测,在这些任务上训练模型 你可以在 ART 的 GitHub 仓库里找到更多可以改造和上手的示例。 仓库链接🔗 仓库链接🔗 (别忘了点 star 🌟) 感谢阅读! 原帖链接:https://x.com/akshay pachaar/status/2029212227438518406 原帖链接:https://x.com/akshay pachaar/status/2029212227438518406 每个用 LLM 构建产品的团队,迟早都会撞上同一堵墙。 你写了很详细的系统提示词,加入 few shot 示例,调了 temperature,但你的智能体仍然有 30 40% 的时候会做错。 最糟糕的是,它从来不会从这些错误中学习。 微调,就是突破这堵墙的方法。 如果你在用 GPT 或 Claude,你使用的是和其他人一样的模型,能力相同,成本相同,也没有竞争优势。 但如果你拿一个小型开源模型,在自己的特定任务上微调呢?它可以胜过体量大 100 倍的模型,同时成本和延迟都低得多。 大多数开发者一想到微调,就会想到一套痛苦流程:整理数据集、标注输出、手写奖励函数。 到 2026 年,情况已经不是这样了。 使用 GRPO 和 RULER 的现代微调,已经改变了可行边界。现在,你可以训练真正能从经验中变好的智能体,而且不需要写任何奖励函数,也不需要收集任何带标签样本。 下面会一步步讲清楚。 SFT 与强化微调 大多数开发者都知道监督微调(SFT)。你收集输入 输出样本对,模型学习模仿这些样本。 问题在于:SFT 教会模型的是“该说什么”,而不是“如何成功”。 对于会搜索、调用 API、并进行多步推理的智能体来说,单纯模仿并不够。你想要的是通过试错来改进。 可以这样理解: • SFT = 读教材(记住已知问题的答案) • RL = 在岗训练(从尝试、错误和反馈中学习) 这就是强化微调(RFT)。你给模型一个奖励信号,让它自己发现最佳策略。 GRPO 如何工作 那么,这背后的算法是什么? GRPO(Group Relative Policy Optimization,群体相对策略优化)是目前最流行的 RFT 算法。DeepSeek R1 的推理能力,就是由同一类算法驱动的。 核心思想很简单。GRPO 不训练一个单独模型来给回答打分,而是生成多个补全结果,并在它们之间做相对评分。 对每个提示词来说,流程如下: 1. 采样一组结果: 从当前模型生成 N 个补全 2. 给每个结果打分: 奖励函数评估每一次尝试 3. 在组内归一化: 计算相对组平均值的优势 4. 更新模型: 强化高于平均水平的行为,抑制低于平均水平的行为 GRPO 只需要相对排序,不需要绝对分数。补全结果得分是 0.3、0.5、0.7,还是 30、50、70,都不重要。真正驱动学习的是排序。