1. 使用 PAI-Designer 构建知识库
你可以根据数据格式规范准备数据,随后通过 PAI-Designer 快速搭建专属的检索知识库。
2. 使用 PAI-LangStudio 进行模版构建
在 LangStudio 中,你可以基于预置的 RAG 模版进行个性化调整,打造出贴合实际业务需求的应用工作流。3. 使用 PAI-Langstudio 构建在线应用
LangStudio 提供了易用的交互界面,方便你提交查询并获取答案。利用刚刚创建好的模板,即可迅速构建出满足业务场景的在线应用。 ---前置准备
在开始操作前,请确认以下准备工作已全部完成: * 已开通 PAI 后付费服务,并创建了默认工作空间。 * 已创建 OSS 存储空间(Bucket),用于存放训练数据。 * 已开通 Milvus 数据库,用于搭建知识库的向量存储。1. 准备数据集
使用 PAI-Designer 建立知识库的第一步,是根据具体领域的需求整理好数据集。这些数据通常包含大量专业内容,准确性和完整性至关重要。PAI-Designer 提供了一套便捷的工具与接口,帮助你轻松导入和管理数据。 本方案以医疗领域为例,展示如何用 CSV 格式的原始数据构建知识库。请确保数据格式符合 PAI-Designer 的要求(例如 CSV),并通过对领域文档进行预处理和格式化,提取出关键信息。 **数据示例** 以下是一个教育领域的数据示例,格式为 CSV,主要内容源自维基百科的生物课程知识点。你可以根据自身需求准备类似数据: 该示例数据集已存放在公开的 OSS bucket 中,可通过 `wget` 下载。下载后请将数据上传到你自己的 OSS bucket 中,后续步骤会用到。 ``` wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/solutions/rag/data/教育csv.zip ```2. 部署 LLM 和 Embedding 模型
1. 前往“快速开始 > ModelGallery”,分别按场景选择**大语言模型**及 **Embedding** 分类,并部署对应模型。本文以**通义千问2.5-7B-Instruct**和**bge-large-zh-v1.5 通用向量模型**为例。**务必选择使用指令微调的大语言模型(名称中包含“Chat”或“Instruct”),Base 模型无法正确遵循指令回答问题。** 2. 前往“任务管理”,点击已部署的服务名称,在“服务详情”页签下点击“查看调用信息”,分别获取 LLM 和 Embedding 模型服务的 VPC 访问地址与 Token,后续创建连接时会用到。3. 创建 LLM 链接
1. 进入 LangStudio,选择工作空间后,在“连接管理”页签下点击“新建连接”,进入应用流创建页面。 2. 创建通用 LLM 模型服务连接。其中 `base_url` 和 `api_key` 分别对应上一步中 LLM 的 VPC 访问地址和 Token。4. 创建 Embedding 模型服务连接
操作同“创建 LLM 链接”,创建通用 Embedding 模型服务连接。`base_url` 和 `api_key` 分别对应“部署 LLM 和 Embedding 模型”中 Embedding 模型的 VPC 访问地址和 Token。5. 创建向量数据库连接
操作同“创建 LLM 链接”,创建 Milvus 数据库连接。关键参数说明: * `uri`:Milvus 实例的访问地址,格式为 `http://使用 PAI-Designer 构建知识库
用 PAI-Designer 构建知识库索引的工作流,主要包含以下几个环节: 1. 使用数据源读取组件,读取 OSS 中的原始数据。 2. 使用文本解析分块组件,对文本进行分块处理。 3. 使用向量生成组件,将分块后的文本向量化。 4. 使用索引存储组件,将向量化后的文本存入向量数据库。PAI-Designer 工作流串联示例
打开 PAI-Designer,选择“LLM 大语言模型”中的“检索增强生成”来构建自己的知识库。进入工作流后,你将看到以下流程,接下来依次介绍各模块的作用及需要填写的参数。RAG 读取 OSS 数据
选择存储数据的 OSS Bucket,确保 Bucket 中已存放好相关文档(支持 pdf/csv 格式)。RAG 文本解析分块
对输入文件进行分块处理,填入块大小和块重叠大小的参数,并选择 OSS Bucket 保存分块后的数据。RAG 文本向量生成
使用 embedding 模型,对分块后的数据进行向量化并存储,为后续的检索操作做好准备。RAG 索引构建
使用之前创建的 Milvus 数据库,存储生成的文档向量。向量数据库选择你自己创建的数据库,为存储的文档向量取一个名称,填入“集合/表名称”中;相似度度量可选择点积、余弦或欧几里得;最后选择一个 OSS Bucket 保存 RAG 的索引。 ---使用 PAI-LangStudio 进行模版构建
PAI-LangStudio 是一个 AI 应用开发平台,其直观的交互式环境能大幅简化企业级大模型应用的开发流程。在设计和开发大模型应用时,可以用它进行模板构建。此外,LangStudio 配合一键部署 EAS,可让应用快速、无缝地部署到生产环境。新建应用流
1. 进入 LangStudio,选择工作空间后,在“应用流”页签下点击“新建应用流”,进入创建页面。 2. 选择“从模板新建”,选中 RAG 模板后填入应用流名称,并在 OSS Bucket 中选择存储应用流的路径。配置应用流
创建应用流后会进入详情界面,左侧有四个节点,分别对应不同的功能: 1. `rewrite_question` 节点:通过对用户问题的重写来提升问题质量。需要在“基础配置”中选择 connection 为之前创建的 LLM 连接。 2. `retrieve` 节点:通过向量数据库召回与问题相关的文档内容。Vector Store 需要选择之前创建的数据库,并在 `index_name` 中填入之前在 PAI-Designer 中填写的“集合/表名”;Embedding Model 需要选择之前创建的 Embedding 连接。 3. `threshold_filter` 节点:对 retrieve 节点召回的文档进行过滤。填入的 `threshold` 值是对召回的文档与查询问题的相似度进行过滤的条件——`threshold` 越大,过滤掉的低相似度文档越多。 4. `generate_answer` 节点:根据召回和过滤后的文档来回答问题。需要在“基础配置”中选择之前创建好的 LLM 连接。 ---使用 PAI-LangStudio 构建在线应用
1. 配置完上述流程后,点击“启动运行时”,选择机型,配置专有网络链接,然后部署 RAG 应用。 2. 运行时启动后,点击对话按钮,在左侧对话框中输入你想问的问题,即可与大语言模型开始交流。 ---案例对比
下面通过教育领域的两个具体任务,对比使用 RAG 与不使用 RAG 的效果差异。红色部分表示大模型回答存在事实性错误或不够精确,绿色部分则表示使用 RAG 后给出的正确回复。任务一:学科知识问答
**问题**:请简述一下科学家发现减数分裂现象的过程。| 通义千问2.5-7B-Instruct |
减数分裂是细胞分裂的一种特殊形式,主要发生在生殖细胞的形成过程中……科学家们对减数分裂的研究始于19世纪末,但其确切机制直到20世纪才逐渐被揭示。以下是一些关键的发现过程: |
| 通义千问2.5-7B-Instruct + RAG |
减数分裂现象的发现是一个渐进的过程,涉及到多位科学家的贡献。以下是减数分裂被发现和理解的过程概述: |
任务二:智能批改和反馈
**问题**:请指出下面关于光合作用起源论述的错误点。 **论述**:地球上的光合作用起源于太古宙早期,当时的自养生物主要依靠叶绿素作为光捕获色素的中心,专注于吸收可见光谱中的绿色波长。通过这一过程,它们能够分解水分子固定二氧化碳,将其转化为碳水化合物。在这一代谢过程中,氧气作为副产品被释放出来。作为生态系统的基石,光合自养生物通过产生有机物质,为异养生物(包括消费者和分解者)提供了食物来源,进而通过食物链将能量传递给生态系统中更高营养级的其他生物。| 通义千问2.5-7B-Instruct |
该论述中存在一些不准确的地方: |
| 通义千问2.5-7B-Instruct + RAG |
关于光合作用起源的部分,论述中存在以下几个错误或需要澄清的地方: 1. 时间起点的描述:论述提到“地球上的产氧光合作用始于太古宙中期”,这可能不够准确。实际上,最新的科学研究表明,产氧光合作用可能始于大约24亿年前的古元古代,而非太古宙中期。 2. 光合自营者的具体描述:论述中说“进行此类光合作用的自营生物……主要依赖卟啉衍生物——叶绿素作为反应中心的感光色素”,这在时间上是不准确的。叶绿素主要出现在更晚近的生物中,最早的光合作用生物并不一定使用叶绿素。 3. 光合作用的进化路径:论述提到“以视黄醛为基础的光合作用很可能在古太古代就已经出现”,这与目前的理论存在冲突。目前的研究普遍认为,最早的光合作用可能依赖的是类胡萝卜素等其他色素,而不是视黄醛。 |
