训练一个用于模型无关和任务环境无关的能力改进的harness,基于类似PyTorch的框架 [P]

Reddit r/MachineLearning 工具

摘要

介绍了一个训练框架,以模型无关和任务环境无关的方式提升任务型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

Hacker News Top

Self-Harness 提出了一种新范式,其中基于LLM的智能体通过挖掘模型特定的弱点、提出框架修改,并通过回归测试验证这些修改,从而迭代地改进自身的运行框架,在Terminal-Bench-2.0上跨多个基础模型取得了显著的性能提升。

同一模型,不同运行框架:编码智能体的差异化表现

arXiv cs.AI

本研究探讨了在模型固定不变的情况下,改变编码智能体中的运行框架配置如何影响其在代码基准测试上的表现。研究结果表明,一种能自动缩短早期工具输出以管理上下文的“优化框架”,可提升任务完成率,尤其在上下文长度受限的场景下效果显著。