声明式提示工程与自动优化可视化实验室
从手写 Prompt 到编译优化——把 DSPy/TextGrad 如何将提示工程自动化的核心机制以可交互 SVG 呈现。
01
提示工程演进
提示工程经历了从手写、Few-shot、思维链(CoT)、声明式到自动优化的五代范式演进。切换视角观察时间线与技术特征。
第一代 手写
人工编写指令模板
经验驱动,难以复现与迁移
第二代 Few-shot
示例注入上下文
示例选择依赖人工,效果波动大
第三代 CoT
思维链引导推理
显式推理步骤提升复杂任务表现
第四代 声明式
DSPy Signature 描述意图
声明输入输出,编译器自动填充
第五代 自动优化
Teleprompter 编译优化
基于评估指标自动搜索最优 Prompt
02
DSPy 架构
DSPy 通过 Module、Signature、Teleprompter 三层抽象将提示工程声明式化。切换阶段观察声明定义到编译优化的完整流程。
Signature 签名
声明输入输出契约
question -> answer 的类型化描述
Module 模块
可组合的声明式单元
Predict/ChainOfThought/ReAct 等原语
Teleprompter 优化器
自动编译与优化
BootstrapFewShot/MIPRO 等策略
编译产物
优化后的 Prompt 程序
含指令与示例的完整提示
03
自动示例选择
BootstrapFewShot 通过教师模型生成示例、质量评分与自动筛选构建示例池。点击执行观察示例筛选的动态过程。
教师生成
零样本引导产生候选
LLM 在无示例下产生演示轨迹
质量评分
正确性与一致性评估
基于评估函数打分
示例池
高分散度示例集合
避免冗余,提升覆盖
自动筛选
贪心/最大边际选择
迭代选取最优示例子集
04
MIPRO 优化器
MIPRO 同时搜索指令 Proposal 与示例 Proposal,采用贝叶斯优化在 Proposal 空间中高效寻优。切换步骤观察搜索空间构建过程。
指令 Proposal
候选指令生成
基于任务描述与数据生成多条指令
示例 Proposal
候选示例组合
从示例池采样不同子集
贝叶斯优化
TPE 代理模型寻优
少量评估高效探索高维空间
搜索空间
指令 × 示例 笛卡尔积
组合爆炸下的智能剪枝
05
TextGrad 梯度回传
TextGrad 把反向传播思想推广到文本空间:文本损失产生文本梯度,反向更新 Prompt。切换阶段观察前向计算与反向传播。
文本损失
LLM 评估输出缺陷
用自然语言描述错误
文本梯度
可执行改写建议
指出如何修改以降低损失
反向传播
梯度沿计算图回传
更新 Prompt 各组件
优化器
文本梯度下降
迭代改写直至收敛
06
声明式 vs 命令式
DSPy 声明式提示工程与原始手写 Prompt 工程在代码量、可维护性与性能上差异显著。切换维度对比两者。
代码量
声明式更简洁
用 Signature 取代冗长模板
可维护性
声明式可组合
模块化复用,版本可追踪
性能
自动优化更优
编译后 Prompt 性能稳定提升
可移植性
声明式跨模型
同一程序适配不同 LLM
07
编译-验证闭环
自动优化以编译-评估-迭代-收敛为闭环,在验证集上监控性能曲线直至收敛。点击执行观察优化曲线动态演进。
编译
Teleprompter 生成候选
搜索指令与示例组合
评估
验证集指标计算
准确率/EM/F1 等指标
迭代
基于反馈再编译
贝叶斯优化引导下一轮
收敛
性能趋于稳定
提前停止避免过拟合
08
自动优化生态
DSPy、TextGrad、APE、PromptFoo 各有定位:编译框架、梯度优化、示例搜索、回归测试。切换视角对比下载量与基准。
DSPy
声明式编译框架
Signature + Teleprompter 全栈
TextGrad
文本梯度优化
反向传播思想泛化到文本
APE
自动 Prompt 搜索
蒙特卡洛生成指令候选
PromptFoo
Prompt 回归测试
批量评估与版本对比
定位差异
编译/优化/搜索/测试
覆盖 Prompt 工程全生命周期