SuperAPI AI 工具集

dspy-optimize-anything

智能体与模型

查看项目

更新于 10-16 02:38

技能介绍

用途:optimize_anything 是 GEPA 提供的声明式 API,用于优化任何可表示为文本的产物,包括代码、提示词、智能体架构、矢量图形(如 SVG)和配置等,不限于 DSPy 程序。适用于单一难题(如圆填充、内核生成、算法发现)、批量相关问题(如 CUDA 内核、代码生成任务)、需要泛化到未见输入的技能或策略,以及能把质量表达为分数并提供诊断反馈的场景。

主要能力:核心输入包括 seed_candidate(起始文本或 None 表示无种子模式)、evaluator(返回分数,可选附带 ASI 字典)、dataset、valset、objective、background 和 GEPAConfig。输出为 result.best_candidate。评估器可返回纯分数,或返回 (score, dict) 元组,其中字典作为 Actionable Side Information(ASI)为 LLM 提议者提供诊断反馈;ASI 可包含开放式文本、结构化数据、多目标分数,或通过 gepa.Image 传入图像供视觉模型使用。

使用方式:先安装 gepa:pip install -U "gepa>=0.1.1,<0.2"。定义评估器后选择模式:单任务搜索(不传 dataset)、多任务搜索(传 dataset)、泛化模式(同时传 dataset 与 valset),或无种子模式(用 objective 描述需求)。调用 oa.optimize_anything(...) 后读取 result.best_candidate。可用 oa.log() 将打印内容作为 ASI 传给提议者。建议用 GEPAConfig(engine=EngineConfig(max_metric_calls=...)) 限制每次运行。

与 DSPy 集成:DSPy 程序仍使用 dspy.GEPA、MIPROv2 等内置优化器;optimize_anything 用于 DSPy 之外的任意文本产物。

限制:依赖 gepa 包;评估器需确定性或低方差以保证稳定优化;计算成本随候选数量增长;单任务模式不具备泛化能力,需泛化时应使用带 valset 的模式 3;当前由 GEPA 后端驱动,API 设计为后端无关。官方文档见 https://gepa-ai.github.io/gepa/blog/introducing-optimize-anything/ 与 https://github.com/gepa-ai/gepa。