Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

DSPy

DSPy 是一个开源框架,它通过带类型的签名和模块构建 LLM 流水线,然后针对某个指标优化提示词。

DSPy 是一个开源 Python 框架,用于通过代码而非手写提示构建基于大型语言模型(LLM)的应用。开发者声明每个步骤的输入和输出,将这些步骤组合成程序,再让 DSPy 优化器编写并调整提示,或者调整模型的权重,以最大化一组示例上的某项指标。这个名称是 Declarative Self-improving Python(声明式自改进 Python)的缩写;该项目将自身描述为用于编程而非提示语言模型的框架。斯坦福大学的 Omar Khattab 及其同事在 2023 年 10 月的论文 DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines 中介绍了该框架。编译只需几分钟,几行 DSPy 代码就能让 GPT-3.5 和 Llama-2-13B-chat 构建的流水线分别比标准 few-shot 提示高出 25% 以上和 65% 以上;与使用专家编写示例的流水线相比,性能最高分别提升 46% 和 40%。

签名、模块与优化器#

  • 签名:以类型化方式声明某个步骤的输入和输出,可以像 "question -> answer" 一样内联编写,也可以声明为在文档字符串中说明任务的类。签名说明步骤的作用,并将提示的措辞留给 DSPy 处理。
  • 模块:运行签名的策略。dspy.Predict 会调用模型一次;dspy.ChainOfThought 会像思维链提示那样在答案前添加推理字段;dspy.ReAct 则会以ReAct 提示的方式运行工具调用循环。模块可以像 PyTorch 层一样组合成多步骤程序,例如检索增强生成(RAG)流水线:先编写搜索查询、检索段落,再根据这些段落作答。
  • 适配器:将签名转换为发送给模型的聊天消息,再将模型回复解析回类型化字段。
  • 优化器:根据某项指标改进程序的算法。BootstrapFewShot 会在训练示例上运行程序,并将通过指标检查的执行轨迹保留为示例;MIPROv2 会搜索候选指令和示例集合;BootstrapFinetune 则通过微调将程序蒸馏到模型权重中。

优化循环与模型训练过程类似,只不过参数是提示:

2025 年的 GEPA 优化器可通过 dspy.GEPA 使用,它会读取程序的执行轨迹和文本反馈,让 LLM 反思问题所在,再据此不断改进指令。在六项任务中,它的表现平均比强化学习方法 GRPO 高 6%,最高高出 20%,同时使用的 rollout 最多减少 35 倍;它的表现也比 MIPROv2 高出 10% 以上。

从签名到提示#

DSPy 会根据签名生成提示,因此同一个程序可以针对新模型重新优化,而不必重写。这里的输入是来自 Ultralytics YOLO26 的检测摘要:Results.verbose() 会将预测模式的结果以简短字符串形式返回各类别的计数,签名可以将其作为文本接收,让优化器根据真实目标检测输出调整推理步骤。格式化消息无需模型或 API 密钥:

import dspy
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")


class SceneQA(dspy.Signature):
    """Answer a question about a photo from the objects a detector found in it."""

    detections: str = dspy.InputField()
    question: str = dspy.InputField()
    answer: str = dspy.OutputField()


# The adapter turns the signature and inputs into the chat messages the model will receive
inputs = {"detections": results[0].verbose(), "question": "How many people are in the photo?"}
messages = dspy.ChatAdapter().format(SceneQA, demos=[], inputs=inputs)
for message in messages:
    print(f"--- {message['role']} ---\n{message['content']}")

系统消息列出了输入和输出字段、DSPy 用于解析回复的 [[ ## field ## ]] 标记,以及作为优化目标的文档字符串;用户消息则包含检测器的计数。优化器会通过改写优化目标并向消息中添加示例来改进程序,同时保持 Python 代码不变。

  • 提示工程:手动编写和修改提示。DSPy 会将这项工作转化为基于指标和示例的优化问题。
  • LangChain:一个提供集成、工具和智能体循环的框架,用于组合 LLM 应用;提示由开发者维护。
  • 超参数调优:根据验证指标搜索训练设置,是与 DSPy 搜索提示最相近的类比。
  • 复合 AI 系统:由多个模型调用、检索器和工具组成的应用。DSPy 专为端到端优化这类流水线而设计,会根据最终指标调整每个步骤的提示。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来