给 Prompt 跑一场积分赛:ELO 排名 + gpt-prompt-engineer,把提示调优从盲猜变成打分

发布时间:2026/9/18 16:21:11
给 Prompt 跑一场积分赛:ELO 排名 + gpt-prompt-engineer,把提示调优从盲猜变成打分 给 Prompt 跑一场积分赛ELO 排名 gpt-prompt-engineer把提示调优从盲猜变成打分【免费下载链接】gpt-prompt-engineergpt-prompt-engineer - 一个工具用于自动化生成、测试和排名多种提示以找到最适合特定任务的提示。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-prompt-engineer改一个词、加一句约束、换个开头重跑一遍测试用例结果到底比上一版好还是坏很多做提示调优的人都卡在同一个地方评估全靠感觉来回试了十几版也说不清哪版更稳。gpt-prompt-engineer 的思路是把这段手工活自动化喂给它任务描述和测试用例它批量生成候选提示、自动两两对比打分最后输出一张按 ELO 积分排序的表让「哪版更好」变成一个数字。提示调优为什么一直在盲猜自由生成类任务没有标准答案写死一个固定分很难客观多数人只能靠读输出凭手感判断。gpt-prompt-engineer 的做法是不给提示定绝对分而是把它们放进一个锦标赛每条提示初始 1200 分两两对决裁判模型看谁的同题输出更好按 ELO 规则增减积分。跑完一整轮排名表直接告诉你现在该用哪条提示。ELO 评分机制为什么两两对比有效ELO 来自国际象棋排名核心逻辑是「预期分」加「实际分」的差值乘以步长系数。放到提示评估里这个机制解决两个实际问题。第一比较比打分稳。让裁判模型给单条输出打 1 到 10 分不同上下文里尺度会漂移改成「A 和 B 哪个更好」的二选一判断更聚焦。代码里裁判被要求当苛刻的批评家——必须明显更优才算赢否则判平。第二位置偏差被显式消掉了。每场对决裁判会跑两次一次 Generation A 在前一次换到后两次结果取平均映射成 1、0 或 0.5 再更新积分。双方当前分越接近单场胜负带来的分差越大分差拉开后波动自然收窄排名趋于稳定这个 K 系数默认 32。还有一个细节容易被忽略生成候选提示的系统提示里明确写了「不许把测试用例的细节写进提示带例子的提示直接取消资格」。这是在防止候选去「背题」——能背下用例的提示刷分好看换个输入就翻车线上没价值。分类任务是另一条路不走两两对比而是拿提示的输出和标注答案做精确匹配得分就是正确率量化更直接省掉整个裁判环节。怎么跑通 gpt-prompt-engineer从测试用例到 ELO 排名表打开仓库根目录的gpt_prompt_engineer.ipynb基础版在开头单元格填入 OpenAI API key剩下就是最后两个单元格填任务描述和测试用例再发起一次调用。以生成落地页标题为例描述要写清「输入什么、输出什么」description Given a prompt, generate a landing page headline. test_cases [ {prompt: Promoting an innovative new fitness app, Smartly}, {prompt: Why a vegan diet is beneficial for your health}, {prompt: Launching a new line of eco-friendly clothing}, # ...继续列到 10 条左右 ]测试用例尽量贴近线上真实输入覆盖产品、科普、课程等不同题材候选提示必须在这批输入上都稳才有竞争力。然后发起整轮流程generate_optimal_prompt(description, test_cases, NUMBER_OF_PROMPTS, use_wandb)它内部先让 GPT-4 一次性生成NUMBER_OF_PROMPTS条候选系统提示默认 10温度 0.9 保证多样性再进入test_candidate_prompts的两两对决循环。10 个候选、10 条用例意味着 C(10,2) × 10 450 场对决每场两次生成加两次裁判调用API 开销随候选数的平方放大——所以先跑 10 个候选看到排名拉开后再决定要不要加量。跑完终端会打印一张 ELO 降序表表头那条就是当前测试集上的最优提示可以直接拷进你的生产代码。gpt-prompt-engineer 版本怎么选仓库根目录有多个 notebook按任务形态选即可场景选择评估方式自由生成文案、标题、总结、改写gpt_prompt_engineer.ipynb基础版ELO 两两对比二分类情感、意图、是否合规gpt_prompt_engineer_Classification_Version.ipynb与answer精确匹配输入变量多、不想手写测试用例claude_prompt_engineer.ipynbClaude 3 版支持多变量定义自动产出测试用例想保留旗舰模型质量、降低推理成本opus_to_haiku_conversion.ipynb用 Opus 示例指导 Haiku 生成Claude 3 版适合结构化输入描述任务后声明input_variables比如发件人、收件人、主题各一项测试用例由模型基于描述和变量自动填充省掉手动造数据这一步。Opus→Haiku 转换版则是降本思路——先用 Opus 产出高质量示例再让 Haiku 按示例生成用轻量模型逼近旗舰模型的输出质量。同思路的还有Llama_3_1_405B__8B_Conversion.ipynb、XL_to_XS_conversion.ipynb等几个降配迁移 notebook。ELO 参数与实验集成怎么调值得动的旋钮没几个。K默认 32调大分数变化更剧烈、收敛更快调小则更平缓一般不必动。模型配置分成三个角色CANDIDATE_MODEL生成候选提示基础版用 gpt-4、GENERATION_MODEL跑测试用例gpt-3.5-turbo、RANKING_MODEL当裁判gpt-3.5-turbo温度 0.5。没有 gpt-4 权限时把CANDIDATE_MODEL改成 gpt-3.5-turbo 就能跑。调裁判温度比换模型见效快温度高平局变少、分数更容易拉开。所有 API 调用都用 tenacity 包了重试失败指数退避最多N_RETRIES次。实验多了之后需要留痕use_wandb设为True会把全部配置、测试用例和最终 ELO 表记录到 Weights Biasesuse_portkey设为True则通过 Portkey 代理追踪所有提示链。长期迭代多个任务时前者比较实用。资源许可与可扩展方向仓库采用 MIT 协议见LICENSE可自由用于商用项目。README.md 里列了三个社区扩展方向按风格拆分候选提示生成器、自动生成测试用例、把分类版从二分类扩到多类别。这套 ELO 流程的价值集中在「有相对优劣、无唯一标准答案」的生成型任务上如果你的任务本身就是事实核验类两两对比未必比直接对答案更靠谱那种情况用分类版或直接评估更实际。【免费下载链接】gpt-prompt-engineergpt-prompt-engineer - 一个工具用于自动化生成、测试和排名多种提示以找到最适合特定任务的提示。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-prompt-engineer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考