返回 FEED
AGENT2026-05-17

DSPy作者揭秘:AI工程的五个核心组件

DSPy作者揭秘:AI工程的五个核心组件

Maxime Rivest是DSPy的贡献者,也是AI工程领域的实践者。他曾用DSPy搭建了一个每周处理近1亿篇科学出版物的流水线,如果用ChatGPT做这件事每周需要40万美元,而用vLLM + Llama 8B + Qwen embeddings + DSPy,成本只要50美元。

他从DSPy的架构中提炼出了AI工程的五个核心组件,这五个组件在任何有效的AI编程中都存在——你可能只是在把它们外包给框架或环境。

五个核心组件

通用名称DSPy名称职责
EvalsOptimizers评估和改进性能
InterfaceSignatures定义任务的输入输出接口
InferenceLM连接模型提供商,生成token
Call GraphModules将多个LLM调用组合成计算图
RenderingAdapters将任务输入渲染成实际请求

Rivest认为**Rendering(渲染)**是最被低估的组件。

Rendering:最被低估的AI工程表面

Rendering关乎你如何向模型渲染指令和输入,以及如何指示模型渲染输出以便你解析。

结构化输出只是Rendering的一个维度。 其他维度包括:

  • 推理:用<thinking>标签、代码前的#REASONING:注释
  • 图片:提供SVG而非位图、先描述再处理、降低分辨率或拼接
  • PDF:OCR文本+图片、仅文本、仅图片
  • 工具调用:除了JSON,还可以用#!run标记的Markdown代码块、<toolcall>标签等

"三大AI提供商最近的进步——推理、结构化输出、工具调用——全都与Rendering相关。"

Call Graph:分解任务的艺术

将任务分解为多个LLM子调用,并委托给合适的模型,是改变AI流水线成本、性能和延迟的最有效方式。

你可以:

  • 多次调用同一模型
  • 使用专门模型(守卫模型)
  • 调用最佳模型并组合响应
  • 混合AI调用与传统编程

这就是复合AI系统(Compound AI Systems),而Module提供了端到端的调用方式,独立于你的分解策略。

Inference:提供商无关性

开源和商业模型几乎每天都在发布。你需要所有关于提示、渲染和调用图的工作都能轻松插拔到任何提供商和模型。

最有效的方式:针对一个通用格式编写,然后一次性映射到所有提供商,再把响应映射回通用格式。

Interface:稳定的外部契约

你的AI程序需要与世界交互——被应用调用、在数据流上每日运行。这个接口需要稳定,因为它就是你的真实任务

把它与底层的各种hack、优化、分解和渲染隔离开。定义一次系统的签名,然后在内部随意折腾。

Evals:没有评估就没有进步

但别太早构建大而美的评估集。很多时候一个明显的例子都跑不通。

渐进式评估路径:

  1. 手动评估:交互、查看数据和trace
  2. 小数据集:足够运行自动提示优化
  3. 生产数据:收集真实输入输出分布
  4. 微调:当数据量足够时

核心启示

AI工程的五个组件始终存在,你可能只是在把它们外包给别人和环境。

DSPy的价值在于让你可以在任何一个组件上深入钻研,而不必太担心其他组件,同时让所有人都能分享最佳实践和通用解决方案。

对于任何给定任务,其中某个子集会更重要——但它们始终都在那里。