ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Miles tau-bench实战:4步快速训练能调工具的客服Agent

Miles tau-bench实战:4步快速训练能调工具的客服Agent Miles tau-bench实战4步快速训练能调工具的客服Agent【免费下载链接】milesMiles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.项目地址: https://gitcode.com/GitHub_Trending/miles1/milesMiles 是一个企业级LLM 强化学习RL训练框架官方示例内置了可直接运行的tau-bench 工具调用客服 Agent 训练方案以 Qwen3-4B 为底座模型2 块 GPU 即可跑通完整的强化学习训练——Agent 在与模拟用户的多轮对话中自主学习调用查订单、改退货、改航班等客服工具完成任务。本文带你用 4 步走完 tau-bench 实战全流程。 什么是 tau-bench客服Agent的实战考场tau-bench 是一个多轮工具调用Tool-Calling评测与训练环境内置retail零售和airline航司两套客服场景。它的核心机制是用户模拟器User Simulator由一个 LLM 扮演顾客不断提出需求如帮我退货被测 Agent必须通过调用真实工具查询订单、修改状态等才能推进任务不能凭空口头承诺奖励Reward任务是否正确完成直接决定这一轮交互的好坏。在 Miles 中tau-bench 被接入了 RL 训练闭环每个 rollout 步里训练中的模型作为 Agent 完成一整段多轮对话任务完成的奖励再通过GRPO 算法反传更新模型参数。换句话说会调工具的能力就是被奖励信号一步步训出来的。整个示例位于 examples/experimental/tau-bench/官方说明见 README.md。1️⃣ 准备训练环境只需做 3 件事① 安装 Miles从仓库 clone 后执行pip install -e . --no-deps② 安装 tau-benchclone tau-bench 仓库到/root/tau-bench/并切到feature/litellm-retry分支后执行pip install -e . --no-deps。③ 生成训练数据用示例自带的 mock 脚本把 tau-bench 的任务集导出为 Miles 可消费的 jsonl 文件retail_train_tasks.jsonl等python examples/experimental/tau-bench/tau1_mock.py --local_dir /root/tau-bench/脚本逻辑很简单遍历 retail 的 train/dev 和 airline 的 test 任务按{index: i, metadata: task}逐行写出见 tau1_mock.py。最后准备底座模型下载 Qwen3-4B-Instruct-2507 的 HF 权重再用 tools/convert_hf_to_torch_dist.py 转换成 Megatron 可加载的分布式 checkpoint。2️⃣ 看懂训练原理工具调用能力从哪来这张架构图揭示了 tau-bench 训练在 Miles 中的运行方式数据缓冲data buffer取出一个任务如顾客要求退款交给自定义 rollout 生成示例通过--custom-generate-function-path generate_with_tau.generate接入这条链路入口在 generate_with_tau.py它创建 tau-bench 环境让 Agent 与用户模拟器完成整段多轮交互Agent 的每次输出都请求SGLang 推理引擎工具调用以 XML 标签形式解析sglang_tool_parser.py、openai_tool_adapter.py环境执行工具后返回结果循环直到对话结束任务完成与否转化为奖励连同完整 token 轨迹打包成训练样本SampleMegatron 训练器用 GRPO 更新权重再把新权重秒级推回 SGLang 引擎进入下一轮 rollout。其中 Agent 的可训练行为由 trainable_agents.py 中的TrainableAgentMixin实现——它还特意改写了工具指令要求 Agent 必须执行工具才能做任何修改绝不能没看到工具确认就向用户承诺。这正是客服 Agent 最关键的素质来源。3️⃣ 一键启动Qwen3-4B 跑通 tau-bench 训练用户模拟器通过 litellm 驱动无需改代码只需选择 provider 并设置对应 API Key默认 Gemini也支持 DeepSeekexport TAU_USER_MODEL_PROVIDERdeepseek export TAU_USER_MODELdeepseek-chat export DEEPSEEK_API_KEYsk-... bash examples/experimental/tau-bench/run_qwen3_4B.sh启动脚本 run_qwen3_4B.sh 通过ray job submit拉起整个训练入口 train.py2 块 GPU 即可运行。关键参数一览参数作用--num-rollout 500总共跑 500 个 rollout 步--n-samples-per-prompt 8每个任务采样 8 条轨迹供 GRPO 组内对比估优势--dynamic-sampling-filter-path ...check_reward_nonzero_std8 条奖励全相同的任务无学习信号动态采样自动跳过--advantage-estimator grpo使用 GRPO 作为优势估计器--rollout-max-response-len 1024单轮回复长度上限--eval-interval 5每 5 步在 retail dev 集上评测一次--tensor-model-parallel-size 2张量并行度本例 2 GPU 如果用户模拟器 API 报并发限制错误取消脚本里--sglang-server-concurrency 32的注释即可降并发。4️⃣ 观察训练效果奖励曲线与监控指标训练过程中重点关注两条线raw_reward 是否逐步爬升以及 dev 集评测任务成功率。多轮 agentic 训练中奖励曲线通常呈震荡上升形态下图是一个多轮 agentic 环境的真实示例tau-bench 的曲线形态类似从低分起步、随 rollout 步数上升同时配合六联监控面板观察响应长度、重复率、log 概率与优势值等指标确保训练过程健康✅ 常见问题FAQ启动即报 KeyError/API 错误示例做了快速失败设计缺少用户模拟器的 API Key 会立即报错而不是跑到一半才崩按提示export即可。如何换环境把 generate_with_tau.py 中TAU_CONFIGS的env从retail改为airline注意 airline 数据仅testsplit见tau1_mock.py的映射表。想理解通用多轮 Agent 接入机制阅读 docs/user-guide/agentic-rollout.md了解 Token-In-Token-Out 如何保证多轮轨迹的 token 与 logprob 精确对齐、不做 detokenize/retokenize 往返损失。想调 rollout 策略参数完整启动脚本语义参考 docs/user-guide/launch-script.md。 延伸阅读tau-bench 完整示例说明examples/experimental/tau-bench/README.mdMiles 自定义 rollout 扩展机制miles/rollout/动态采样过滤器奖励非零标准差miles/rollout/filter_hub/多轮会话与 TITO 设计docs/user-guide/agentic-rollout.md掌握这套流程后你可以把 tau-bench 换成任何自定义环境用 Miles 训练出自己的工具调用 Agent。【免费下载链接】milesMiles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.项目地址: https://gitcode.com/GitHub_Trending/miles1/miles创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表