步骤 2. 部署 POC 以收集利益干系人的反馈
在此步骤结束时,你将完成代理评估评审应用的部署,该应用程序允许利益干系人测试 POC 并提供反馈。 利益干系人的使用情况及其反馈的详细日志将流向 Lakehouse 中的 Delta 表。
要求
- 完成“步骤 1:克隆代码存储库并创建计算”中的步骤
- 先决条件:收集要求中的数据位于 Lakehouse 的 Unity Catalog 卷内。
有关本部分中的示例代码,请参阅 GitHub 存储库。
RAG 应用程序的概念证明
在由评估推动的开发工作中,第一步是构建概念证明 (POC)。 POC 具备以下优势:
- 对于使用 RAG 的用例的可行性,给出大致的评估观点
- 允许收集利益干系人的初步反馈,从而让你能够创建评估集的第一个版本
- 建立质量基准度量,以便开始迭代
Databricks 建议使用最简单的 RAG 体系结构和 Databricks 为每个参数推荐的默认值来生成 POC。
我们之所以给出这条建议,是因为你可以在 RAG 应用程序中调整数百种可能的参数组合。 你可以轻松地花费数周时间来优化这些设置,但如果这样做,在系统地评估 RAG 之前,最终会陷入所谓的 POC 厄运循环,即迭代设置,但无法客观地知道是否做出了改进——而利益干系人则不耐烦地坐在那里等待审阅。
本教程中的 POC 模板设计为考虑到质量迭代。 我们根据 Databricks 研究团队所表明的对提高 RAG 质量至关重要的调整内容对这些模板展开了参数化操作。 这些模板不是“神奇地生成 RAG 的 3 行代码”,而是一个结构良好的 RAG 应用程序,对于由评估推动的开发工作流程,可以在后续步骤中进行质量调整。
这使你能够快速部署 POC,并在无需重写代码的情况下快速过渡到质量迭代。
下面是 POC 应用程序的技术体系结构:
注意
默认情况下,POC 使用 Mosaic AI Foundation Model Serving 上提供的开源模型。 但是,由于 POC 使用支持任何基础模型的 Mosaic AI Model Serving,因此使用不同的模型很容易 - 只需在 Model Serving 中配置该模型,然后在 00_config
笔记本中替换 embedding_endpoint_name
和 llm_endpoint_name
即可。
- 参阅“预配置吞吐量基础模型 API”,了解 Databricks 市场中提供的其他开源模型。
- 参阅 Create_OpenAI_External_Model 笔记本或 Mosaic AI 模型服务中的外部模型来了解支持的第三方托管模型,例如 Azure OpenAI、OpenAI、Cohere、Anthropic 和 Google Gemini。
部署 POC 以收集反馈的步骤
以下步骤演示如何运行和部署 POC 生成式 AI 应用程序。 部署后,你将获得评审应用的 URL,可以与利益干系人共享以收集反馈。
根据数据类型,打开 A_POC_app 内的 POC 代码文件夹:
- 对于 PDF 文件,请使用 pdf_uc_volume。
- 对于 Powerpoint 文件,请使用 pptx_uc_volume。
- 对于 DOCX 文件,请使用 docx_uc_volume。
- 对于包含文本、markdown、HTML 内容和元数据的 JSON 文件,使用 json_uc_volume
如果你的数据不满足上述任一要求,则可以在上述 POC 目录的
02_poc_data_pipeline
中自定义解析函数 (parser_udf
) 以处理你的文件类型。在 POC 文件夹中,可以看到以下笔记本:
注意
这些笔记本与所选的特定 POC 相关。 例如,如果你看到对
00_config
的引用并且选择了pdf_uc_volume
,则可以在 A_POC_app/pdf_uc_volume/00_config 找到相关的00_config
笔记本。(可选)查看默认参数。
打开上面选择的 POC 目录中的
00_config
笔记本,以查看 POC 应用程序的数据管道和 RAG 链的默认参数。重要
Databricks 建议的默认参数并不完美,你可以在此基础上进行优化。 此工作流的后续步骤将指导你迭代这些参数。
验证配置。
运行
01_validate_config
,检查配置是否有效并且所有资源是否可用。rag_chain_config.yaml
文件将显示在目录中,用于部署应用程序。运行数据管道。
POC 数据管道是基于 Apache Spark 的 Databricks 笔记本。 打开
02_poc_data_pipeline
笔记本,然后按“全部运行”以运行管道。 管道会执行以下操作:- 从 UC 卷加载原始文档
- 分析每个文档,将结果保存到 Delta 表
- 将每个文档分块,将结果保存到 Delta 表
- 嵌入文档并使用 Mosaic AI 矢量搜索创建矢量索引
系统会将有关数据管道的元数据(例如输出表和配置)记录到 MLflow:
可以通过查找笔记本底部附近的 Delta 表或向量索引输出的链接来检查输出:
Vector index: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>_poc_chunked_docs_gold_index Output tables: Bronze Delta Table w/ raw files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_raw_files_bronze Silver Delta Table w/ parsed files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_parsed_docs_silver Gold Delta Table w/ chunked files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_chunked_docs_gold
将 POC 链部署到审阅应用。
默认 POC 链是使用 LangChain 构建的多轮对话 RAG 链。
注意
POC 链使用基于 MLflow 代码的日志记录。 若要详细了解基于代码的日志记录,请参阅日志和注册 AI 代理。
打开
03_deploy_poc_to_review_app
笔记本运行笔记本的每个单元。
MLflow 跟踪显示 POC 应用程序的工作原理。 将输入问题调整为与用例相关的问题,然后重新运行该单元以“检查”应用程序。
修改与用例相关的默认说明。 这些内容会显示在“审阅应用”中。
instructions_to_reviewer = f"""## Instructions for Testing the {RAG_APP_NAME}'s Initial Proof of Concept (PoC) Your inputs are invaluable for the development team. By providing detailed feedback and corrections, you help us fix issues and improve the overall quality of the application. We rely on your expertise to identify any gaps or areas needing enhancement. 1. **Variety of Questions**: - Please try a wide range of questions that you anticipate the end users of the application will ask. This helps us ensure the application can handle the expected queries effectively. 2. **Feedback on Answers**: - After asking each question, use the feedback widgets provided to review the answer given by the application. - If you think the answer is incorrect or could be improved, please use "Edit Answer" to correct it. Your corrections will enable our team to refine the application's accuracy. 3. **Review of Returned Documents**: - Carefully review each document that the system returns in response to your question. - Use the thumbs up/down feature to indicate whether the document was relevant to the question asked. A thumbs up signifies relevance, while a thumbs down indicates the document was not useful. Thank you for your time and effort in testing {RAG_APP_NAME}. Your contributions are essential to delivering a high-quality product to our end users.""" print(instructions_to_reviewer)
运行部署单元以获取审阅应用的链接。
Review App URL: https://<your-workspace-url>.databricks.com/ml/review/<uc-catalog>.<uc-schema>.<uc-model-name>/<uc-model-version>
向单个用户授予访问审阅应用的权限。
可以按照“设置权限”中的 步骤来授予对非 Databricks 用户的访问权限,以使用评审应用。
通过自行提问并提供反馈来测试审阅应用程序。
注意
MLflow 跟踪和来自审阅应用的反馈会显示在已配置的目录架构中的 Delta 表中。 日志最多可能需要 2 小时才能显示在这些 Delta 表中。
与利益干系人共享审阅应用
现在可以与利益干系人共享 POC RAG 应用程序以获取他们的反馈。
重要
Databricks 建议将 POC 分发给至少三个利益干系人,并让他们分别提出 10 - 20 个问题。 必须让多个利益干系人测试 POC,这样你就可以在评估集中纳入多样化的观点。
下一步
继续执行“步骤 3:根据利益干系人的反馈制定评估集”。