本文介绍 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 版本运行。