标签: 自动优化

  • DSPy:用编程取代提示词工程,Stanford 出品 LLM 应用优化框架,27.5K+ Stars

    DSPy:用编程取代提示词工程,Stanford 出品 LLM 应用优化框架,27.5K+ Stars

    📌 项目简介

    DSPy(Declarative Self-improving Language Programs in Python)是斯坦福大学开发的 LLM 编程框架,让你用 编程取代提示词工程。不再手写 prompt,而是定义模块 + 数据,DSPy 自动优化提示词和权重,让 LLM 应用可靠、可测量、可迭代。

    🔧 安装要求与过程

    环境要求

    • Python ≥ 3.9
    • pip 包管理器
    • (可选)OpenAI / Anthropic / Google API Key,或本地 Ollama

    快速安装

    # 基础安装(仅 DSPy 核心)
    pip install dspy-ai
    
    # 安装常用扩展(推荐)
    pip install dspy-ai[vertexai,anthropic,cohere]
    
    # 从源码安装最新版
    pip install git+https://github.com/stanfordnlp/dspy.git
    

    Hello World

    import dspy
    
    # 配置 LLM(支持 OpenAI / Claude / Gemini / Ollama 等)
    lm = dspy.LM("openai/gpt-4o-mini")
    dspy.configure(lm=lm)
    
    # 定义签名(Signature):输入 → 输出
    class QnA(dspy.Signature):
        question = dspy.InputField()
        answer   = dspy.OutputField()
    
    # 创建预测器
    qa = dspy.Predict(QnA)
    
    # 直接调用!
    result = qa(question="DSPy 是什么?")
    print(result.answer)
    

    ⭐ 核心功能

    1
    签名(Signature)= 结构化 Prompt

    用类型安全的 Python 类定义输入输出,DSPy 自动生成高质量 prompt。告别手工调 prompt,代码即文档。
    2
    自动优化器(Optimizer)= 自动 Prompt 工程

    内置 BootstrapFewShotMIPROv2COPRO 等优化器,只需提供训练数据,DSPy 自动搜索最优 prompt / 示例 / 权重。质量可测量、可复现。
    3
    模块化编程模型 = 像 PyTorch 一样组合 LLM

    提供 PredictChainOfThoughtProgramOfThoughtRetriever 等模块,自由组合成复杂 pipeline,支持多跳推理、工具调用、RAG。
    4
    全模型兼容 = 一处编写,任意 LLM 运行

    统一接口支持 OpenAI、Anthropic、Google、Cohere、Ollama、Together AI、Azure 等 30+ LLM 提供商,切换模型只需改一行配置。
    5
    内置评估框架 = 量化 AI 应用质量

    提供 EvaluateMetric 工具,科学评估模型效果,支撑数据驱动的迭代优化。

    🚀 典型使用场景

    场景 1:RAG 问答系统(最经典用法)

    import dspy
    from dspy.datasets import HotPotQA
    
    # 配置检索器 + LM
    colbertv2 = dspy.ColBERTv2(url="http://20.102.90.50:2017/wiki17_abstracts")
    lm = dspy.LM("openai/gpt-4o-mini")
    dspy.configure(lm=lm, rm=colbertv2)
    
    # 定义 RAG 签名
    class GenerateAnswer(dspy.Signature):
        context = dspy.InputField(desc="相关维基百科段落")
        question = dspy.InputField()
        answer   = dspy.OutputField()
    
    # 构建 RAG 管道
    class RAG(dspy.Module):
        def __init__(self):
            super().__init__()
            self.retrieve = dspy.Retrieve(k=3)
            self.generate = dspy.ChainOfThought(GenerateAnswer)
    
        def forward(self, question):
            context = self.retrieve(question).passages
            return self.generate(context=context, question=question)
    
    # 编译优化(自动调参)
    from dspy.teleprompt import MIPROv2
    teleprompter = MIPROv2(metric=dspy.evaluate.answer_exact_match)
    optimized_rag = teleprompter.compile(
        RAG(), trainset=your_trainset, valset=your_valset
    )
    

    场景 2:多跳推理 Agent

    DSPy 原生支持构建多步推理 Agent,结合 ReAct 模块和工具调用,让 LLM 自主规划 + 执行复杂任务:

    class MultiHopQA(dspy.Module):
        def __init__(self):
            self.react = dspy.ReAct(GenerateAnswer)
            # ReAct 自动循环:Thought → Action → Observation → ...
        
        def forward(self, question):
            return self.react(question=question)
    

    场景 3:生产级 Prompt 优化(MLOps 集成)

    用 DSPy 的评估 + 优化管线,将 prompt 工程纳入 CI/CD:每次模型更新自动重新优化 prompt,保证质量不回退。


    💡 推荐理由

    如果你还在手写 prompt、手动调 few-shot 示例、靠感觉评估 LLM 应用质量——DSPy 会彻底改变你的工作方式

    它的核心洞察是:Prompt 是代码,应该像代码一样被编译、优化、测试。DSPy 把 prompt 工程从「手工艺」升级为「工程学科」,让 LLM 应用开发进入可测量、可迭代的正循环。

    最打动我的是 MIPROv2 优化器:给它一堆训练数据,它能自动搜索最优的指令指令 + few-shot 示例组合,效果往往超过手工调参。对于需要稳定质量的 production 场景,这是救命稻草。

    另外,DSPy 的学术背景(斯坦福 Ocelot 团队,NeurIPS/ICML 多篇论文)保证了它的方法论严谨性,不是又一个「AI 包装框架」。

    📊 项目数据

    GitHub Stars 27.5K+
    开源许可 MIT License
    主要语言 Python
    维护团队 Stanford Ocelot Lab(@stanfordnlp)
    最新版本 v2.6+(2026 持续更新)
    文档地址 dspy.ai

    📥 下载地址

    🌐
    官方网站

    dspy.ai

    💻
    GitHub 仓库

    github.com/stanfordnlp/dspy

    📚
    官方文档

    dspy.ai/docs

    💬
    Discord 社区

    discord.gg/XCGy2WOMnX

    🎯 立即用 DSPy 把你的 LLM 应用工程化
    告别手工调 prompt,拥抱可测量、可优化的 LLM 编程新范式