Promptimizer
用遗传算法让AI提示词自动进化,从70%准确率提升至84-85%
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用遗传算法让AI提示词自动进化,从70%准确率提升至84-85%
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一位AI应用开发者,花了三天时间精心雕琢了一套提示词,让AI模型能够准确回答"哪家半导体公司2020财年的净收入最高"这样的金融问题。结果一测试,发现准确率只有70%——模型对某些公司名称敏感、对某些财务指标理解偏差。
你会怎么办?大多数人可能会手动修改措辞、反复测试、凭感觉微调……这套"经验主义"的方法既耗时又无法规模化。这正是 Promptimizer 诞生的背景。
Promptimizer 是由独立开发者 Austin Starks 开源的一个自动化AI提示词优化框架,核心思路是将遗传算法引入提示词工程,让提示词像生物一样"进化"。
作者 Austin Starks 同时也是 AI 交易平台 NexusTrade.io 的创始人,Promptimizer 最初正是为了解决 NexusTrade 金融问答场景中提示词优化难题而开发的。2024年7月在 Medium 发表介绍文章后迅速获得关注,同年被收录进 Reddit ML 社区讨论。
核心成果:在 NexusTrade 的股票筛选场景中,经过40个样本数据训练,提示词准确率从70%提升至84-85%。

图1:NexusTrade AI交易平台 — Promptimizer 优化提示词的落地场景
Promptimizer 的优化流程模拟自然界中的遗传进化,包含以下五个阶段:
第一步:初始化 — 系统从用户提供的多个候选提示词(system prompts)出发,生成初始"种群"(population)。用户需要手动提供约5个不同方向的提示词变体,这是人工智慧的入口点。
第二步:选择 — 每个提示词在训练集上运行,系统通过评估器(Prompt Evaluator)给出"适合度"(fitness)评分。适合度高的个体有更大几率被选中进入繁殖池。
第三步:交叉(Crossover) — 两个"父代"提示词通过随机交换片段,生成新的"子代"提示词。这相当于将两种成功策略的优点结合起来。
第四步:突变(Mutation) — 随机修改子代提示词中的某些部分,引入意外变化。好的突变保留,坏的淘汰。
第五步:评估与迭代 — 经过多代(默认50代)进化后,在独立的验证集上测试最终提示词的性能,衡量其泛化能力。
整个过程中,提示词会经历输入→LLM推理→输出→评估→反馈的完整闭环,最终收敛到在该任务上表现最优的版本。

图2:NexusTrade 品牌视觉 — 项目落地于真实产品
Promptimizer 采用 TypeScript(主)+ Python(可视化)的技术栈,整体是一个 Node.js CLI 应用。
核心模块:
main.ts — 遗传优化引擎的入口,负责种群管理、交叉、突变、评估的主循环。内置 NUM_GENERATIONS(默认50代)、BATCH_SIZE(批次大小)等可配置参数。population.ts — 核心种群管理类 Individual,实现了个体的创建、适合度计算、交叉(Crossover)和突变(Mutation)操作。交叉操作借鉴生物遗传学的"父母"比喻,从两个父代中随机选取示例片段重组。populateGroundTruth.ts — 标注工具,通过 BigQuery 连接真实金融数据库(Google BigQuery),为训练集和测试集生成标准答案(ground truth)。additionalSystemPrompts.ts — 包含 Google BigQuery 的 schema 定义和股票行业分类数据,用于引导模型理解金融查询的上下文。inputs.ts — 用户自定义的测试输入列表,每个输入包含问题文本和对应的输出目录名。graph.py — Python 脚本,读取优化过程的 JSON 输出,生成性能变化曲线图。依赖生态:
@anthropic-ai/sdk ^0.20.8 — Anthropic Claude API 调用@google-cloud/bigquery ^7.8.0 — BigQuery 金融数据查询mongoose ^8.5.1 — MongoDB 持久化存储axios ^1.7.2、lodash ^4.17.21 — 通用工具库sharp ^0.33.4 — 图片处理评估机制:Promptimizer 使用 LLM 本身作为评估器("Prompt Evaluator"),通过设计评分提示词来量化输出质量,支持归一化(0-1)、评级(0-5)、双向(-1到1)等多种评分策略。评估器本身也是一个提示词(evaluatorPrompt),存储在 MongoDB 中。

图3:NexusTrade 品牌素材
最适合的场景:
需要正视的局限:
第一,成本高昂。每代进化都需要调用大量 LLM API(父代评估 + 子代评估 + 突变评估),即使在40个样本的小规模数据集上,优化过程的 API 费用也可能相当可观。作者在 README 中特别警告:"优化提示词可能非常昂贵!"
第二,需要人工前期投入。系统要求用户手动提供约5个不同方向的初始提示词,以及完整的输入-输出训练集。虽然 LLMs 可以辅助生成提示词,但作者指出"手动创建效果更好",这意味着需要领域专家的介入。
第三,仅优化已有提示词,而非从头生成。系统的能力上限受限于人类提供的初始提示词质量。
第四,部署依赖较多。无 Dockerfile 或 docker-compose,需要手动配置 Node.js、Python、MongoDB、以及至少一个 LLM API Key(OpenAI/Anthropic/Ollama)。
Promptimizer 的价值不仅在于具体效果,更在于思路的启发性——它展示了用进化算法替代人工调优的可能性。在 prompt engineering 领域,大多数工具专注于提示词的存储、管理和版本控制(如 LangChain、PromptLayer),而 Promptimizer 尝试解决"给定一个任务,最优提示词是什么"这个更根本的问题。
这一思路与 reinforcement learning from human feedback (RLHF) 方向互补:RLHF 通过人类反馈调整模型权重,而 Promptimizer 在固定模型的情况下调整提示词权重。两者可以在不同层面提升 AI 系统的表现。
本报告由 PIFS 系统自动生成。数据来源:GitHub API、Medium 文章、GitHub README。