DSPy 使用介绍:功能、价格与上手指南

DSPy 是斯坦福 NLP 团队推出的 LLM 编程框架,通过声明式模块和自动优化器替代手工提示词工程。本文介绍 DSPy 的核心功能、免费开源定价、安装与快速上手示例,并总结适用场景与局限性,帮助你判断是否值得引入。

DSPy 正在改变开发者与大型语言模型(LLM)的交互方式。传统提示词工程依赖反复试错,而 DSPy 让你用代码声明任务逻辑,由框架自动优化提示词与模型参数。本文将从功能、价格和上手实践三个维度,帮你快速判断 DSPy 是否适合你的项目。

DSPy 是什么?

DSPy(Declarative Self-improving Language Programs)是斯坦福 NLP 团队开源的 LLM 编程框架。它的核心思想是:不要手动写提示词,而是定义输入输出签名和模块,让优化器自动搜索最佳提示和少样本示例。

与 LangChain 等编排工具不同,DSPy 更关注“如何让 LLM 程序自动变得更好”,而不是“如何把 LLM 串联起来”。它把提示词工程从手工活变成了可编译、可优化的编程任务。

DSPy 核心功能

1. 声明式签名(Signatures)

用简洁的 Python 类或字符串定义输入输出字段,例如 "question -> answer"。签名描述任务目标,不涉及具体提示词措辞。

2. 可组合模块(Modules)

DSPy 提供 PredictChainOfThoughtReAct 等模块,像搭积木一样组合推理链。每个模块内部会自动生成合适的提示模板。

3. 自动优化器(Optimizers / Teleprompters)

这是 DSPy 最大亮点。优化器根据你提供的少量示例和评估指标,自动调整提示词、选择少样本示例,甚至微调模型权重。常见优化器包括 BootstrapFewShotMIPROv2 等。

4. 评估与指标

内置评估流程,支持自定义指标函数。你可以定义准确率、F1、通过率等,优化器会以最大化该指标为目标。

5. 多模型兼容

支持 OpenAI、Anthropic、Cohere、本地模型(通过 HuggingFace、vLLM 等)。切换模型只需改动一行配置。

DSPy 价格:免费开源,成本在 LLM 调用

DSPy 本身是 MIT 许可证的开源库,完全免费。你不需要为框架支付任何费用。

真正产生成本的是调用 LLM API 的费用。优化过程会多次调用模型,因此可能比手动提示词消耗更多 token。建议:

  • 开发阶段用便宜模型(如 GPT-4o-mini)做优化
  • 生产环境再切换到更强模型
  • 使用本地模型可完全避免 API 费用
项目费用
DSPy 框架免费(开源 MIT)
LLM API 调用按各提供商计费
本地模型仅硬件成本
官方托管服务无,社区自行部署

DSPy 上手指南

第一步:安装

pip install dspy-ai

如需最新版,可从 GitHub 安装:

pip install git+https://github.com/stanfordnlp/dspy.git

第二步:配置语言模型

import dspy

lm = dspy.LM('openai/gpt-4o-mini', api_key='你的API_KEY')
dspy.configure(lm=lm)

第三步:定义签名与模块

class QA(dspy.Signature):
    """回答用户问题。"""
    question = dspy.InputField()
    answer = dspy.OutputField()

qa = dspy.ChainOfThought(QA)
result = qa(question="DSPy 的核心优势是什么?")
print(result.answer)

第四步:准备数据与指标

def validate_answer(example, pred, trace=None):
    return example.answer.lower() in pred.answer.lower()

trainset = [
    dspy.Example(question="...", answer="...").with_inputs("question"),
    # 更多示例
]

第五步:运行优化器

from dspy.teleprompt import BootstrapFewShot

optimizer = BootstrapFewShot(metric=validate_answer)
optimized_qa = optimizer.compile(qa, trainset=trainset)
optimized_qa.save("optimized_qa.json")

优化完成后,optimized_qa 可直接用于推理,效果通常优于手动提示词。

适用场景与局限性

推荐使用 DSPy 的场景:

  • 任务有明确评估指标,可自动衡量效果
  • 需要频繁更换底层模型
  • 构建复杂多步推理管道
  • 希望减少提示词维护成本

暂不推荐的情况:

  • 一次性简单任务,手动提示词更快
  • 没有标注数据或评估指标
  • 对 token 成本极度敏感

总结

DSPy 把提示词工程从“艺术”推向“工程”。它免费开源,核心价值在于用优化器自动替代手工调参,尤其适合需要可复现、可迭代的 LLM 应用。上手门槛不高,建议从一个小任务开始,跑通“签名 → 模块 → 优化器”流程,再逐步扩大使用范围。

返回 AI 教程列表