DSPy

程序化 Prompt 优化

把 Prompt 当代码来"编译"——用数据自动优化提示词。

详解

DSPy 是 Stanford NLP 发起的 Python 框架,口号是「program, don't prompt」:不要手写一大段脆弱 Prompt,而是用 Signature 声明输入输出,用 Module 组合推理步骤,再用 metric 和 optimizer 自动搜索更好的指令、示例或参数。它的价值不是替你编排一群 Agent,而是把单个 LLM 模块做成可测试、可复用、可优化的程序。比如分类、抽取、RAG 答案生成这类任务,可以先定义接口和评分函数,再让 DSPy 在少量样本上编译出表现更好的版本。局限是需要准备验证数据和指标,优化过程会消耗模型调用,初学者也需要接受「写程序而不是写提示词」的新心智模型。

一个类比
手写 Prompt 像手动调音——你凭感觉拧旋钮,觉得好听就停。DSPy 像自动调音器:你告诉它「目标是准确」,给它几个样例,它自动把每个参数调到最佳位置,而且换了一把吉他(换模型)也能重新自动调好。
举个例子
一个法律条文分类任务:需要把合同条款自动归类为「违约责任」「保密条款」等 12 个类别。手写 Prompt 试了几版准确率卡在 72%。用 DSPy 定义好「输入条款 → 输出类别」的格式,再写一个「答对了给 1 分、答错给 0 分」的评分函数,在 200 条人工标注样本上让优化器自动跑实验,数小时后生成的 Prompt 把准确率提升到 89%。后来换到一个更便宜的模型,只需重新跑一次优化,不用重写任何提示词。
PYTHON 示例
相关概念