训练一个用于模型无关和任务环境无关的能力改进的harness,基于类似PyTorch的框架 [P]
摘要
介绍了一个训练框架,以模型无关和任务环境无关的方式提升任务型LLM的能力,并在Terminal Bench和SWE-Bench上展示了结果。
在过去的几个月里,我参与了该项目(https://github.com/workofart/harness-training),将“基于Agent的自改进训练框架”重新定义为“训练框架(Harness Training)”。其核心理念是:首先,利用固定的任务LLM在特定任务环境中一次性训练出训练框架;随后,你可以在任意新任务环境中,用其他任务LLM替换原来的任务LLM,并借助该“固定训练框架”进行评估。鉴于这是一个通用问题,我借此机会创建了一个类似PyTorch的通用训练框架。目前,你可以通过任何兼容OpenAI的API来与任务LLM进行交互,并能针对Terminal-Bench或SWE-Bench任务进行训练,同时你可以轻松扩展它来支持任意任务环境。
```
criterion = StrictPareto()
optimizer = GreedyMonotonic()
trainer = Trainer(
config_path="config/train_harness.yaml",
estimator=AgenticEstimator(
backend=CodexAgentBackend(...)
),
criterion=criterion,
optimizer=optimizer,
)
for loss in trainer.epochs(30):
# 记录基线vs候选的判断结果
loss.backward()
# 优化器要么将候选变更(git commit)快速推进为新基线,要么拒绝它(保留为git引用)
optimizer.step()
```
我写了一篇关于此过程的博客文章(https://www.henrypan.com/blog/2026-07-18-harness-training),内容包括(但不限于):
- 使用此训练框架提升多个任务LLM的通用能力,从而击败Terminal Bench 2.0(Terminus训练框架)的结果,以及将在未见任务环境中的学习迁移到更好的任务解决能力(例如,在SWE-Bench任务上训练的训练框架能够解决Terminal Bench任务)。
- 该框架的构建方式。
- 关于项目初始版本中缺失的部分(提示:确定性)的经验总结。
欢迎任何反馈。谢谢!
相似文章
Self-Harness: 自我改进的Harness
Self-Harness 提出了一种新范式,其中基于LLM的智能体通过挖掘模型特定的弱点、提出框架修改,并通过回归测试验证这些修改,从而迭代地改进自身的运行框架,在Terminal-Bench-2.0上跨多个基础模型取得了显著的性能提升。
@omarsar0: // 自我束具:能自我改进的束具 // (收藏这个)我们今天依赖的大多数智能体框架…
本文介绍了自我束具(Self-Harness),一种新的范式,其中基于LLM的智能体能够迭代地改进自身的操作束具——包括提示、工具和控制流程——无需人类工程师或更强大的外部智能体,在多个模型上取得了显著的性能提升。
@lateinteraction: “训练框架”开始与神经架构模糊,在谁承载实现泛化的归纳偏差方面…
研究人员提出,训练框架(训练装置)应承载用于泛化的归纳偏差,并证明训练RLMs在扩展性和泛化到更困难任务方面远优于普通Transformer。
面向执行轨迹的推理时对齐框架
本文研究LLM智能体的框架设计,将其分解为任务拆解和引导执行,并展示了更精细的框架并非一致更好;它揭示了失败模式,并提出了部分框架的有效性。
不是能力问题:LLM智能体层级间的控制敏感度是非单调的
本文通过实证测试了“更结构化的控制(harness)能普遍提高LLM智能体可靠性”这一常见假设,发现不同模型层级间存在非单调关系。它引入了HEAT-24基准,并揭示了严格的控制可能会损害前沿聊天模型,但有利于推理模型。