在 Azure Databricks 上使用 DSPy 构建生成式 AI 应用程序

本文介绍 DSPy 并提供示例笔记本,演示如何在 Azure Databricks 上使用 DSPy 生成和优化生成 AI 代理。

什么是 DSPy?

DSPy 是一个框架,用于以编程方式定义和优化生成式 AI 代理。 DSPy 可以自动执行提示工程并协调 LLM 微调以提高性能。

DSPy 由多个组件组成,用于简化代理开发和改进代理质量:

  • 模块:在 DSPy 中,这些组件处理特定文本转换,例如回答问题或汇总。 它们取代了传统的手写提示,可以从示例中学习,使它们更具适应性。
  • 签名:模块的输入和输出行为的自然语言说明。 例如,“question -> answer”指定模块应将问题作为输入并返回答案。
  • 编译器:这是 DSPy 的优化工具。 它通过调整模块来提高 LM 管道的性能,具体方法包括生成更好的提示或微调模型以满足性能指标。
  • 程序(DSPy):连接到管道的一组模块来执行复杂的任务。 DSPy 程序很灵活,允许你使用编译器优化和调整它们。

创建文本分类器 DSPy 程序

以下笔记本演示如何创建执行文本分类的 DSPy 程序。 此示例演示 DSPy 的工作原理及其使用组件。

创建用于文本分类的 DSPy 编程笔记

获取笔记本

为 RAG 创建 DSPy 程序

这些笔记本演示如何使用 DSPy 创建和优化基本 RAG 程序。 这些笔记本假设你使用的是无服务器计算,它们会在笔记本级别安装包,以确保它们独立于 Databricks Runtime 版本运行。

第 1 部分:为 RAG DSPy 程序笔记本准备数据和矢量搜索索引

获取笔记本

第 2 部分:为 RAG 笔记本创建和优化 DSPy 程序

获取笔记本

将 LangChain 迁移到 DSPy

这些笔记本演示如何将 LangChain 模型代码迁移到 DSPy 并对其进行优化,以提高性能。 这些笔记本假设你使用的是无服务器计算,它们会在笔记本级别安装包,以确保它们独立于 Databricks Runtime 版本运行。

将 LangChain 模型代码迁移到 DSPy 笔记本

获取笔记本

优化已迁移的 DSPy 模型笔记本

获取笔记本