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。


核验过程

读过的官方来源

  1. 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 搜索才有效果。
  2. 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)。
  3. 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);复现步骤三步走。
  4. 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 具体模型(博客描述,官方论文未列为核心参数)。