WHALE:权重与 Harness 联合交替优化 · 干货攻略
- 链接: https://x.com/cwolferesearch/status/2095095344185848210
- 分类: x-tips
- 来源: X @cwolferesearch
- 作者: Jay
- 更新: 2026-09-18
- 仓库: krafton-ai/WHALE
这是什么
WHALE(Weight-Harness Alternating LEarning)是 KRAFTON AI 与斯坦福大学联合提出的一种联合优化配方,核心思路极为简洁:将 Agent 系统拆成两个独立模块——模型权重(weights)和Harness 代码,交替优化,每次只动一个、固定另一个,循环往复逼近联合最优解。
官方定义(arXiv 2609.00196): "WHALE consists of two alternating phases, each improving one component while holding the other fixed: each cycle trains the model weights under the current harness, then searches for a better harness under the updated model, and repeats."
两个阶段的具体实现(来自 GitHub README):
| 阶段 | 固定 | 优化 | 具体方法 |
|---|---|---|---|
| 权重更新(Weight-update) | Harness | 模型权重 | 在线 rejection-sampling fine-tuning(RSFT) |
| Harness 搜索(Harness-search) | 模型权重 | Harness 代码 | Meta-Harness(Hu et al., 2025; Lee et al., 2026) |
Harness 在此语境下指控制 Agent 行为的完整可执行代码:工具 schema 定义、observation 路由、错误处理逻辑、回合预算、停止条件等,而非仅指 system prompt。
为什么值得关注
来自谁的分享
@cwolferesearch 分享了 Krafton AI 博客介绍页;论文本身由 Haechan Kim(Krafton)、Yoonho Lee(Stanford)、Gisang Lee(Krafton)、Chelsea Finn(Stanford)、Kangwook Lee(Krafton)共同署名,2026年8月31日挂 arXiv(2609.00196)。
解决什么问题
孤立优化的困境:传统方法要么只调权重(weight-only),要么只改 prompt/harness(harness-only)。问题在于,任何一方被冻住就成了性能天花板——权重更新会改变哪些 harness 策略更有效,而 harness 更新也会改变哪些模型能力真正被释放。两者互相耦合,单独优化必然遇到瓶颈。
Fast-Slow Training 的局限:Fast-Slow Training(Tiwari et al., 2026)将联合优化限制在「文本 prompt」范围,但实际的 Agent Harness 远比 prompt 丰富——还包含工具定义、解析逻辑、回合限制、重试策略等。
WHALE 的核心洞察:交替更新(Alternation)可以将联合优化问题分解为条件更新,每次优化 A 时 B 固定,消解信用分配难题;同时,Harness 搜索与权重训练的时间尺度天然不匹配(前者是长周期 proposal-accept 循环,后者是 rollout + 梯度更新交替),交替方案避免了并发执行所需的同步 barrier。
核验过程
读过的官方来源
- arXiv abstract(https://arxiv.org/abs/2609.00196)——摘要确认:WHALE 在 Qwen3.5-2B/4B 上三个领域(SearchQA、Math、Chess Puzzles),mean@8 精度超出 weight-only/harness-only/Fast-Slow Training 共 4.15–24.38 个百分点;harness search 在 SearchQA 中用 5.79% 的 rollout 匹配 weight-only 峰值;数学领域需先做权重更新再做 harness 搜索才有效果。
- Krafton AI 官方博客(https://krafton.ai/blog/whale/)——完整方法描述、交替机制动画说明、三领域具体数字(SearchQA: 检索准确率 26.88%→60.61% by harness-only;Math: weight-only 15.42% vs harness-only 0.42%;回合截断率 95.83%→30.83% by weight-only);Schedule (E,I)=(0.6,6);阶段化 vs 交替的差距(SearchQA: +5.32pts, Math: +9.16pts)。
- GitHub README(https://github.com/krafton-ai/WHALE)——确认仓库结构(domains/{search_qa,math_reasoning,chess_puzzles}/);四个 launcher(rsft_only.sh, mh_only.sh, whale.sh, adaptive_whale.sh);VERL 框架(Apache-2.0);复现步骤三步走。
- arXiv HTML 全文(https://arxiv.org/html/2609.00196v1)——确认作者 affiliations、完整 abstract、introduction 对现有工作的定位(Soylu et al. 2024; Zhang et al. 2026; Tiwari et al. 2026 为 prompt 限制对比组);确认权重更新用 RSFT(Rejection-Sampling Fine-Tuning),参考 Dong et al. 2023; Gulcehre et al. 2023; Shao et al. 2024。
交叉验证
- Tavily 搜索返回 8 条结果,与官方数据高度吻合(OpenTrain.ai、Alphaxiv、HuggingFace Papers、YouTube Shorts 均引用相同数字)。
- Yoonho Lee(斯坦福联署)在 X 上的帖子与博客描述一致。
与原帖说法的一致性
原帖(@cwolferesearch)描述「Harness 优化样本效率高但会平台化,WHALE 提出权重+harness 联合优化配方」——官方来源完全确认这一判断:实验结果表明确实存在两种「主导 regimes」,单独任何一方都会遇到瓶颈,交替才是正确答案。
存疑处
- 自适应 patience rule 的具体阈值:博客提到「每个阶段跑一个 minimum length 后,若训练信号(weight 阶段看 rollout reward,harness 阶段看 archive score)patience 次数无改善则停止」,但具体 patience 数值(N)在论文正文中(未完整读取),原帖也未提及,攻略正文不写具体数字。
- Meta-Harness 的 proposer 模型:博客提到用「Claude Opus 4.7」作为 harness proposer,但这是博客页描述,非 arXiv 原文声明;原帖也未提;攻略正文不写死此数字,保留「LLM-based proposer」表述。
上手步骤
环境准备
# 1. 克隆仓库
git clone https://github.com/krafton-ai/WHALE.git
cd WHALE
# 2. 安装依赖(以 SearchQA 域为例)
cd domains/search_qa
pip install -e ../verl # VERL 训练框架
cd ../..
# 3. 下载数据集(见 docs/data.md)
# 以 SearchQA 为例:seven-benchmark 搜索问答数据
运行四种实验条件
仓库提供四个 launcher,均位于 domains/<domain>/run/ 下:
# 假设已在 WHALE 根目录
cd domains/search_qa/run
# 条件 1: 仅权重更新(weight-only baseline)
bash rsft_only.sh
# 条件 2: 仅 Harness 搜索(harness-only baseline)
bash mh_only.sh
# 条件 3: 固定 schedule WHALE,交替 (E,I)=(0.6,6)
bash whale.sh
# 条件 4: 自适应 WHALE,patience 规则决定何时切换
bash adaptive_whale.sh
完整复现说明见 docs/reproducing.md。三轮实验(search_qa / math_reasoning / chess_puzzles)各自有独立目录和 launcher。
核心交替循环(lib/alternate.sh)
# run/lib/alternate.sh 是所有条件共享的交替循环核心
# 逻辑伪代码:
for cycle in 1..N:
# 阶段 1: weight update(RSFT)
train_weights --epochs=E --harness=current
# 阶段 2: harness search(Meta-Harness)
search_harness --iterations=I --model=updated
# 保存 best-so-far (θ*, h*)
关键超参数
| 参数 | 含义 | 固定 WHALE 默认值 |
|---|---|---|
| E | 每轮 weight update epoch 数 | 0.6 |
| I | 每轮 harness search 迭代数 | 6 |
| (E,I)=(0.6,6) | 跨三领域共享的固定 schedule | — |
坑与适用边界
⚠️ 这不是通用的 prompt 优化工具
WHALE 优化的是可执行的 Harness 代码,不是单纯写更好的 system prompt。如果你的 Agent 框架不允许动态生成和评分 harness 代码(即工具定义、控制流),此方法不适用。
⚠️ 依赖 LLM-based Harness Proposer
Harness 搜索使用 Meta-Harness,需要一个足够强的 LLM 作为 proposer(博客用 Claude Opus 4.7)。没有 LLM API 或无法运行大模型做代码搜索的场景,目前门槛较高。
⚠️ 计算成本不低
虽然交替策略比 stagewise 减少 29%–51% rollout 总量,但完整三轮实验仍需运行 weight training + harness search 多轮迭代。论文中 SearchQA 用 530,412 rollouts(weight-only),Harness-only 用 30,720 rollouts 达到同等效果。中小团队需评估 GPU 和 API 成本。
✅ 适用场景
- 已有基础 Agent 框架,想系统性提升端到端性能的团队
- Harness 与模型互相掣肘,单独调参已到瓶颈的情况
- 研究 Agent 训练+Harness 协同的学术界/工业界 benchmark
✅ 小模型也能用
论文在 Qwen3.5-2B(SearchQA、Math)和 Qwen3.5-4B(Chess Puzzles)上验证,非超大规模模型专属——这说明方法对模型尺寸的依赖相对宽容。
一句话结论
WHALE 证明了 Agent 性能由权重和 Harness 共同决定,交替优化(交替训练权重↔搜索 Harness)比任何一方单独优化或阶段化组合都更高效,是目前联合优化 Agent 系统的最简有效配方。
核验来源:arXiv 2609.00196(摘要+全文 HTML)| Krafton AI 官方博客 | GitHub krafton-ai/WHALE README | Tavily 搜索交叉验证(8 条)
不确定处:自适应 WHALE 的 patience 阈值 N(论文正文未完整核验);Meta-Harness proposer 具体模型(博客描述,官方论文未列为核心参数)。