optimize_anything:一个用于优化任意文本参数的通用API optimize_anything: A Universal API for Optimizing any Text Parameter
基于LLM的通用文本优化框架,在六个领域达到SOTA效果
前置知识
Pareto前沿
Pareto前沿是多目标优化中的核心概念,指在多个目标之间无法通过改进一个目标而不损害其他目标的解集合。在本文中,系统跟踪每个候选者在不同任务或指标上的得分,保留那些在某个维度上表现最优的候选者。例如,当优化CUDA内核时,系统会保留在正确性、速度、内存使用等不同指标上表现突出的内核。这种机制确保了搜索空间中多样化的解被保留,避免过早收敛到单一策略。
本文的核心创新之一就是使用Pareto前沿选择策略,这是理解多任务搜索和跨任务转移机制的关键。没有这个概念,难以理解系统如何在保留不同策略的同时实现跨任务知识转移。
Side Information (SI)
Side Information是本文引入的一等API概念,指评估器除了返回一个标量分数外,还返回的结构化诊断信息。这些信息可以包括文本(编译器错误、运行时异常)、结构化数据(每个测试用例的结果、多个目标的子分数)、图像(渲染的SVG、3D模型截图)。SI类比于数值优化中的梯度,告诉优化器'为什么'失败而不仅仅是'是否'失败。例如,在CUDA内核优化中,SI会包含NVCC编译器错误行号、正确性测试失败的具体输出与期望、相关CUDA文档片段等。
这是本文的核心技术贡献之一,理解SI机制对于理解为什么optimize_anything能够在不同领域取得比仅使用分数反馈更好的结果至关重要。
多任务搜索 (Multi-Task Search)
多任务搜索是本文引入的三种优化模式之一,指同时优化一批相关任务,通过共享Pareto前沿实现跨任务知识转移。与单任务搜索独立优化每个问题不同,多任务搜索在解决任务e_i时发现的优化模式可以作为父代用于提出任务e_j的解决方案。例如,在CUDA内核生成中,为一个内核发现的内存合并模式可以转移到其他内核。最终输出仍然是N个专业化工件,但每个都从共享的优化上下文中受益。
这是本文区别于所有现有LLM进化框架的关键特性,理解这个概念对于理解系统如何在不同任务间实现知识复用和加速收敛至关重要。
研究动机
现有的LLM优化框架都有严重的局限性:AlphaEvolve、OpenEvolve和ShinkaEvolve只支持代码工件的单任务搜索模式;GEPA和MIPROv2专注于提示词优化;没有任何一个框架能够应用于智能体架构、数值优化或图像生成。更根本的问题是,每个框架都暴露了框架特定的抽象(如岛屿拓扑、提示采样器、进化块标记),用户必须配置后端、调整算法超参数和设计提示策略。这导致不同领域需要完全不同的工具和专业知识,无法复用已发现的优化模式。
本文的目标是本文的目标是创建一个单一、声明式的API,能够优化任何可以序列化为文本的工件(CUDA内核、云调度策略、智能体架构、SVG、系统提示词等),并通过统一的接口支持三种优化模式:单任务搜索、带跨问题转移的多任务搜索、以及泛化到未见输入的泛化模式。
与已有工作不同的是,本文的独特切入角度是观察到所有这些优化问题都可以形式化为改进一个由评分函数评估的文本工件。无论工件是CUDA内核、云调度策略还是智能体架构,结构都相同:将工件序列化为字符串,评估它,并让LLM基于诊断反馈提出改进。这个观察表明,可能存在一个更简单的接口和统一的算法。
核心方法
optimize_anything是一个声明式API,要求用户提供种子工件(或在无种子模式下仅提供自然语言目标)、一个返回分数和可选Side Information的评估器,以及可选的数据集。系统处理提示构造、反思、候选选择和搜索策略。核心循环是:文本工件x被传递给评估器f(x),评估器返回分数加诊断反馈(SI),SI被LLM提出者消费以产生改进的工件。系统默认优化后端扩展并管理GEPA的信息,将原本主要用于提示优化的算法推广到任意文本工件。
核心创新点有三个:第一,将Side Information提升为一等API契约,统一了诊断反馈接口;第二,三种优化模式(单任务、多任务、泛化)在一个接口下统一,这是首次支持多任务搜索;第三,基于Pareto的搜索选择策略,保留在不同任务或指标上表现最优的候选者,通过保留多样化的策略防止过早收敛并实现跨任务转移。与现有方法相比,optimize_anything不要求突变提示、任务特定模板、岛屿配置或进化块标记,用户只需声明优化什么(工件、评估器、领域知识),系统通过优化后端处理执行。
方法步骤详情
方法步骤的完整描述:首先初始化候选池P=[Φ₀],评估初始工件在数据集D上的得分并记录每个样本的得分。然后在预算B未耗尽时循环执行:从Pareto前沿选择候选k,从数据集D中采样小批量M,在M上执行Φ_k并收集得分和SI,使用LLM基于得分和SI进行反思产生改进的工件Φ'。如果Φ'在小批量M上有改进,则在完整数据集D上评估Φ',将Φ'添加到P,更新得分并修剪被支配的候选者。最终返回P中平均得分最高的候选Φ*。对于多任务搜索,Pareto前沿在任务间共享;对于泛化模式,使用训练集Dtrain指导搜索而验证集Dval测量泛化能力。
技术新颖性
技术新颖性体现在四个方面:第一,首次统一了代码、提示词、智能体架构、数值配置和图像的优化,单个系统在六个根本不同的领域达到SOTA;第二,首次支持多任务搜索模式,通过共享Pareto前沿实现跨任务知识转移,CUDA内核实验显示多任务模式在等效单问题预算下优于独立单任务优化;第三,将Side Information从临时机制提升为统一的API契约,支持文本、结构化数据和图像(通过oa.Image)多种反馈类型;第四,添加了优化前端的refiner步骤,捕获常见LLM生成问题(格式错误的代码块、导入错误、语法问题),这对代码和智能体工件至关重要,因为轻微的格式错误会导致完全评估失败。
实验结果
核心发现包括:在智能体技能优化中,优化的技能将Haiku 4.5的通过率从79.3%提升到98.3%,Sonnet 4.5从94.8%提升到100%,同时将解决时间减少47%,关键是为一个模型发现的技能可以有效地转移到另一个模型而无需重新优化;在云调度算法中,CloudCast实现40.2%的成本节省,Can't Be Late实现7.8%的成本节省,两者都在ADRS排行榜上名列前茅(optimize_anything:96.6聚合分数 vs. OpenEvolve的92.9和ShinkaEvolve的72.0);在ARC-AGI智能体架构中,测试准确率从32.5%提升到89.5%,提升了57个百分点,优化的架构实现了4阶段管道:通过模式分析的规则归纳、带exec()验证的代码生成、最多2次修复尝试的迭代调试、从代码优先到直接LLM预测的结构化回退;在AIME提示词优化中,GPT-4.1-mini的准确率从46.67%提升到60.00%,在AIME 2025上提升13.3个百分点,仅通过改变系统提示词就超越MIPROv2的51.33%;在CUDA内核生成中,87%生成的内核匹配或超过PyTorch基线,48%实现10%+加速,25%实现20%+加速,多任务模式在所有加速阈值上持续优于单任务模式;在圆包装问题中,得分为2.63598+,超过AlphaEvolve、OpenEvolve和ShinkaEvolve报告的解决方案。消融研究显示,actionable side information比仅分数反馈实现4-6×更快收敛和显著更高的最终性能,多任务搜索在相关任务间的收益随任务数量扩展。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| ARC-AGI Agent Architecture | Test Accuracy | 89.5% | 32.5% (Gemini 3 Flash baseline) | +57pp |
| CloudCast Scheduling | Cost Savings | 40.2% | Dijkstra routing | 40.2% savings |
| AIME Math (GPT-4.1-mini) | Test Accuracy | 60.00% | 46.67% (seed prompt) | +13.3pp |
| CUDA Kernel Generation | Kernels ≥ 1.1× baseline | 48% (multi-task) | PyTorch baseline | 48% achieve 10%+ speedup |
| Circle Packing (n=26) | Sum of Radii | 2.63598 | AlphaEvolve: 2.6307 (200 evals) | Superior in 63 evals vs 200 |
| Coding Agent Skills (Bleve) | Pass Rate (Sonnet 4.5) | 100% | 94.8% | +5.2pp |
局限与改进
作者承认的局限性包括:提出者LLM的能力决定了候选者的质量,较弱的模型产生较弱的候选者,如GPT-5-nano相比GPT-5.1在圆包装上成本降低90%+但最终质量始终较弱;评估成本可能很高,当评估器涉及昂贵操作时(如ARC-AGI的$144),但必须注意基于LLM的优化高度样本高效因此调用评估器的次数较少;系统假设工件可以表示为文本,连续参数或二进制工件的优化需要基于文本的代理;虽然多任务搜索在相关问题间提供跨转移收益,但收益程度取决于问题的相关性,如圆包装问题在多任务模式下性能下降,因为不同N值的圆包装问题根本独立;设计有效的SI仍然需要领域专业知识,虽然只返回分数的评估器可以工作,但展示的收益来自专家设计的SI(编译器错误、分析器跟踪、VLM评分标准)。
独立分析的弱点
独立分析的弱点包括:评估器设计仍然需要领域专业知识来定义有效的Side Information,对于没有现成评估指标的新领域(如生成式AI系统的质量评估),用户需要发明评估指标和诊断反馈,这本身就是一个挑战;多任务搜索的性能提升依赖于任务间的共享结构,当任务根本独立时会引入噪声并降低性能(如圆包装的MT7和MT11比单任务2.6360差);优化成本可能很高,特别是在评估涉及运行实际系统时(如ARC-AGI的$144),虽然样本高效,但对于预算受限的项目可能不可行;系统假设工件可以文本表示,对于优化连续参数(如神经网络权重)或二进制格式,需要设计文本代理表示,这可能引入额外的复杂性和信息损失;提出者LLM的质量直接影响最终结果, weaker proposer LLM可能无法发现高质量的改进,这在资源受限的环境中可能是个问题。
未来方向
作者提出的未来研究方向包括:扩展到更多优化后端,当前默认后端基于GEPA,未来可以集成新的进化策略、贝叶斯优化或混合方法;研究自动SI发现,当前SI需要专家设计,未来可以探索如何让系统自动学习什么诊断信息最有用;扩展到更多工件类型,虽然当前支持文本、代码、图像,但未来可以探索音频、视频或混合模态工件的优化;改进多任务搜索的任务相似性度量,当前多任务搜索在根本独立的任务上会降低性能,未来可以研究如何自动检测任务相关性并动态调整搜索策略;降低优化成本,探索更高效的评估缓存、并行化和早停策略;研究更复杂的优化目标,如多目标权衡、鲁棒性优化或约束优化。
复现评估
复现评估:optimize_anything作为GEPA项目的一部分开源,代码可在https://github.com/gepa-ai/gepa获取,完整的复现artifact可在https://github.com/gepa-ai/optimize-anything-artifact获取。每个评估域在domains/下有自己的子目录,包含可运行的optimize_anything代码、将文件夹映射到论文相关部分的README.md以及论文运行的保存GEPAState检查点。大多数域在单个CPU主机上运行并访问提出者和refiner LLM的API(论文使用GPT-5/5.1、Gemini 3 Flash和Claude Opus 4.6,具体标识符在每个域中记录)。KernelBench域需要NVIDIA V100 32GB GPU和CUDA 12.1+。总优化成本从$1(数值黑盒)到$144.70(ARC-AGI),反思成本最小,总支出主要由评估器主导。复现难度中等,主要要求是访问使用的LLM API和相应的硬件(特别是GPU域),但所有代码、检查点和详细文档都公开提供。
论文图表