概念
引擎
GEPA、Best-of-N、Meta-Harness、AutoResearch、AutoSaddler、ShinkaEvolve 和 Auto。
引擎是为你的产物提出新版本的搜索方法。Skynet 为提示词、代码和文本产物提供六个原生引擎,为 DSPy 程序提供三个 DSPy 优化器,另外还有 Auto。本页说明每个引擎的作用、何时选用以及它有哪些设置。
如果你不知道哪些引擎适合你的产物,请先阅读优化的工作原理。
快速对比
| 引擎 | 产物类型 | 编程智能体设置 | 最大迭代次数设置 |
|---|---|---|---|
| Auto | 全部 | 有,适用于提示词、代码和文本 | 无 |
| GEPA | 提示词、代码、文本 | 无 | 无 |
| Best-of-N | 提示词、代码、文本 | 无 | 无 |
| AutoResearch | 提示词、代码、文本 | 有 | 无 |
| Meta-Harness | 提示词、代码、文本 | 有 | 有 |
| AutoSaddler | 提示词、代码、文本 | 有 | 有 |
| ShinkaEvolve | 提示词、代码、文本 | 无。它有自己的编辑器设置。 | 有 |
| DSPy GEPA | DSPy 程序 | 无 | 无 |
| DSPy MIPROv2 | DSPy 程序 | 无 | 无 |
| DSPy BootstrapFewShot | DSPy 程序 | 无 | 无 |
向导会把 GEPA、DSPy GEPA 和 Auto 标记为使用指标反馈文本的优化器。
Auto
Auto 是默认选项。它运行什么取决于产物类型:
- DSPy 程序:Auto 运行 DSPy GEPA。
- 提示词、代码或文本:Auto 同时用五个引擎进行探索:GEPA、AutoResearch、Meta-Harness、AutoSaddler 和 ShinkaEvolve。每个引擎平均分得评分器运行次数:预算除以 6。然后 GEPA 从最佳版本出发,用剩余预算继续优化。
Auto 不使用 Best-of-N。
适合在以下情况选用: 你不知道哪个引擎适合。这是最好的起点。
GEPA
“基于反思的演化,维护一个由多个版本组成的 Pareto 前沿。”反思模型读取每个用例的分数和反馈,并写出更好的版本。GEPA 维护一个版本前沿,其中每个版本都在某些用例上表现最好。
适合在以下情况选用: 你的指标能给出具体的反馈,并且你想要一个强大的单一引擎。
Best-of-N
“由反思模型给出相互独立的提议,保留最好的一个。”每个提议都独立于其他提议。Skynet 会在验证用例上为排名靠前的提议重新打分。
适合在以下情况选用: 你想要一个简单的基线,用来与其他引擎比较。
AutoResearch
编程智能体执行多轮研究。它不断编辑、打分并保留有帮助的改动,直到预算用完。
适合在以下情况选用: 一个好的改动需要经过多步调查,例如在代码产物上。
Meta-Harness
编程智能体在每次迭代中提出一批候选。它会利用所有候选及其分数的完整历史。
适合在以下情况选用: 你想要一个能从所有过往尝试的历史中学习的智能体。使用 每轮候选数 来设置批次大小。
AutoSaddler
编程智能体读取你的指标给出的反馈,并对版本打补丁。Skynet 只保留经过新一次评分器运行确认的补丁。
适合在以下情况选用: 你的指标反馈能指出明确的、局部的缺陷。
ShinkaEvolve
“在多个并行岛屿中演化大量版本,并学习哪些模型对它们的改进最大。”它是一种针对候选种群的演化搜索,其中的变异和交叉由模型编写。
适合在以下情况选用: 你想要广泛探索,并且预算较大。
DSPy 优化器
| 优化器 | 作用 |
|---|---|
| DSPy GEPA | 读取指标反馈,并演化每个预测器的指令。 |
| DSPy MIPROv2 | 同时提出指令和 few-shot 示例,并用贝叶斯优化搜索它们的组合。 |
| DSPy BootstrapFewShot | 收集程序答对的完整示例,并把它们添加为 few-shot 示例。它不使用反思模型。 |
DSPy MIPROv2 和 DSPy BootstrapFewShot 需要成对数据(带期望输出的用例)。
设置
预算
| 设置 | 默认值 | 范围 |
|---|---|---|
| 最大评分器运行次数 | 200 | 1 到 100000(Auto:至少 6) |
| 停止分数 | 关闭 | 0 或更大 |
| 最大迭代次数 | 关闭 | 1 到 1000。仅适用于 Meta-Harness、AutoSaddler 和 ShinkaEvolve。 |
一次评分器运行是指在一个用例上调用一次你的指标。对起始版本和胜出版本的最终重新打分不计入 最大评分器运行次数。
编程智能体设置
这些设置适用于 Auto、AutoResearch、Meta-Harness 和 AutoSaddler。
| 设置 | 默认值 | 范围 |
|---|---|---|
| 编程智能体 | Codex | Pi、Codex、OpenCode、Prime Agent、自定义命令 |
| 每轮候选数 | 3 | 1 到 8。在 Auto 和 Meta-Harness 中显示。 |
| 每个候选的最大工具调用数 | 100 | 1 到 1000 |
ShinkaEvolve 设置
| 设置 | 默认值 |
|---|---|
| 新版本的编写方式 | 单次模型调用。另一个选项是“编码代理(Pi)”。 |
| 岛屿数 | 2(1 到 8) |
| 迁移间隔 | 10 |
| 父代选择 | 加权。其他选项:幂律、束搜索。 |
| 差异编辑 / 完整重写 / 交叉 | 60% / 30% / 10%。三者之和必须为 100%。 |
| 归档大小 | 40 |
| 并行评估数 | 2 |
| 并行提议数 | 2 |
当 Auto 运行 ShinkaEvolve 时,向导会把这些设置显示为“ShinkaEvolve 设置(Auto 运行它时)”。