在现代信息检索领域,检索增强生成(Retrieval-Augmented Generation, RAG)模型结合了信息检索与生成式人工智能的优点,从而在特定场景下提供更为精准和相关的答案。在特定场景下,例如法律等领域,用户通常需要精确且相关的信息来支持决策。传统生成模型虽然在自然语言理解和生成方面表现良好,但在专业知识的准确性上可能有所不足。RAG 模型通过将检索与生成相结合,能有效提升回答的准确性和上下文相关性。本方案为您介绍,如何使用人工智能平台 PAI 构建面向教育场景的大模型 RAG 检索增强解决方案。
- 使用 PAI-Designer 构建知识库
您可以参照数据格式要求准备,使用 PAI-Designer 构建相应的检索知识库。
- 使用 PAI-LangStudio 进行模版构建
您在 LangStudio 中使用预置的 RAG 模版进行定制化,创建适合具体应用的模板。
- 使用 PAI-Langstudio 构建在线应用
LangStudio 提供了用户友好的界面,使用户能够轻松提交查询并获取答案。您可以使用创建好的模板构建符合业务需求的在线应用。
一、前置准备
在开始执行操作前,请确认您已完成以下准备工作:
- 已开通 PAI 后付费,并创建默认工作空间,详情请参见开通 PAI 并创建默认工作空间。
- 已创建 OSS 存储空间(Bucket),用于存储训练数据。关于如何创建存储空间,详情请参见控制台创建存储空间。
- 已开通 Milvus 数据库,用于构建指数库的向量存储,详情请参见快速创建 milvus 实例。
1. 准备数据集
在使用 PAI-Designer 构建知识库的过程中,您首先需要根据法律领域的需求,准备并整理好适合的数据集。这些数据往往涉及到该领域的专业内容,需确保数据的准确性和完整性。PAI-Designer 提供了一套便捷的工具和接口,帮助用户轻松导入和管理这些数据。在本解决方案中,我们以法律为例,展示使用 PDF 作为原始数据,使用 PAI-Designer 构建知识库的的步骤。您需要确保数据格式符合 PAI-Designer 的要求,例如 PDF 格式。可以通过对领域文档进行预处理和格式化,提取其中的关键信息。
数据示例
以下给出法律领域的数据的示例,格式为 pdf,主要内容为国家法律法规数据库中的法律条文,用户可以根据需要准备自己的数据:
该示例数据集已经放置于公开的 oss bucket 中,可以使用 wget 下载,下载后请用户将数据上传到自己的oss bucket中,以供下一步使用:
wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/solutions/rag/data/%E6%B3%95%E5%BE%8B%E6%96%B0%E9%97%BBpdf.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 分别对应「2. 部署 LLM 和 Embedding 模型」中 LLM 的 VPC 访问地址和 Token。
4. 创建 Embedding 模型服务连接
同「3. 创建 LLM 链接」,创建通用 Embedding 模型服务连接。其中 base_url 和 api_key 分别对应「2. 部署 LLM 和 Embedding 模型」中 Embedding 模型的 VPC 访问地址和 Token。
5. 创建向量数据库连接
同「3. 创建 LLM 链接」,创建 Milvus 数据库连接。关键参数说明:
- uri:Milvus 实例的访问地址,即
http://
,Milvus 内网访问地址如下:
则 uri 为http://c-b1c5222fba****-internal.milvus.aliyuncs.com
。
- token:登录 Milvus 实例的用户名和密码,即
:
。 - database:数据库名称,本文使用默认数据库
default。
二、使用 PAI-Designer 构建知识库
使用 PAI-Designer 构建知识库索引工作流主要包含以下几个步骤:
- 使用数据源读取组件,读取 OSS 中的数据。
- 使用文本解析分块组件,对文本进行分块。
- 使用向量生成组件,对分块后的文本进行向量化。
- 使用索引存储组件,将向量化后的文本存储到向量数据库。
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 是一个人工智能应用的开发平台,采用直观的交互式环境,简化了企业级大模型应用的开发流程。在开发和设计大模型应用时,可以使用 PAI-LangStudio 进行模版构建。此外,PAI-LangStudio 配合一键部署 EAS,使得高质量应用得以迅速、无缝地部署至生产环境。以下介绍使用 PAI-LangStudio 进行模版构建的过程
新建应用流
1. 进入 LangStudio,选择工作空间后,在应用流页签下单击新建应用流,进入应用流创建页面。2. 选择从模板新建,并在选择 RAG 模板后填入应用流名称,在 OSS Bucket 中选择存储应用流的路径。
配置应用流
创建应用流后会进入应用流详情界面,左图中有四个节点,分别对应了不同的功能。
- rewrite_question 节点通过对用户问题的重写以提升问题质量,其中需要用户在基础配置中选择 connection为「前置准备3. 创建 LLM 连接」中创建好的连接。
2. retrieve 节点通过向量数据库召回和问题相关的文档内容,Vector Store 需要用户选择「前置准备5. 创建向量数据库链接」中创建好的数据库以及在 index_name 中填入使用 「PAI-Designer 构建知识库-RAG 索引构建」中填入的集合/表名;Embedding Model 中需要用户选择「前置准备4. 创建 Embedding 模型服务连接」中创建的连接。
3. threshold_filter 节点对 retrieve 节点召回的文档进行过滤,填入的 threshold 值是对召回文档和查询问题相似度过滤的条件,threshold 越大,则过滤掉越多召回的相似度低的文档。
4. generate_answer 节点根据召回和过滤后的文档,回答问题。用户需要在基础配置中选择「前置准备3. 创建 LLM 连接」中创建好的 LLM 连接。
四、使用 PAI-LangStudio 构建在线应用
1. 配置完上述流程后,点击启动运行时,并选择机型,配置专有网络链接,部署 RAG 应用。
- 运行时启动后,点击对话按钮,在左侧对话框中输入想问的问题,与大语言模型开始交流对话。
五、案例对比
以下给出在法律领域,使用和不使用 RAG 解决特定任务的案例对比。红色部分表示大模型回答有事实性错误,或者不够具体精确,绿色部分表示使用 RAG 得到的对应正确回复。
任务一:法律信息检索和问答
问题:根据未成年人保护法,在学校幼儿园和其他未成年人集中活动的公共场所吸烟饮酒应该受到什么处罚?
通义千问2.5-7B-Instruct |
根据《中华人民共和国未成年人保护法》的相关规定,在学校、幼儿园和其他未成年人集中活动的公共场所吸烟、饮酒的行为,可能受到以下几种处罚:
需要注意的是,《中华人民共和国未成年人保护法》的主要目的是保护未成年人的合法权益,促进他们的健康成长。因此,上述措施旨在通过教育、引导等方式减少此类不良行为的发生,而不是单纯为了处罚而处罚。同时,具体的处罚措施和执行细节可能会因地区不同而有所差异,建议查阅当地的具体法规了解详细情况。 |
通义千问2.5-7B-Instruct + RAG |
根据未成年人保护法第一百二十四条的规定,违反本法第五十九条第二款规定,在学校、幼儿园和其他未成年人集中活动的公共场所吸烟、饮酒的,将受到以下处罚:
|
任务二:法律案例预测
问题:2024年,某市某体育公司举办大型体育活动,有上千名群众参加,因为天气恶劣,主办方没有做好安全工作导致超过20名群众死亡,根据刑法,其主管人员犯了什么罪,将会受到何种刑事处罚,刑期如何?
根据你提供的信息,如果某市某体育公司在2024年举办大型体育活动时,由于天气恶劣且未做好安全工作,导致超过20名群众死亡,这种情况下,根据中国《刑法》的相关规定,该体育公司的主管人员可能会构成“重大责任事故罪”或“组织、领导、参加黑社会性质组织罪”等罪名。
对于具体刑期,需要依据案件的具体情况来判断,包括但不限于事故的具体原因、造成的损失程度、受害人数以及是否有从轻或加重处罚的情节等。在司法实践中,法院会综合考量各种因素后作出判决。 值得注意的是,以上分析基于现有描述,实际情况还需结合具体的调查结果和证据材料来确定。如果遇到此类问题,建议咨询专业律师获取详细法律意见。 |
|
通义千问2.5-7B-Instruct + RAG |
根据您提供的背景信息,根据刑法的规定,该体育公司及其相关主管人员可能涉嫌的罪行是《中华人民共和国刑法》第一百三十五条规定的“重大劳动安全事故罪”。此罪名适用于涉及公共安全的领域,比如体育赛事、大型群众性活动等。 具体来说,当体育公司举办大型体育活动时,应当负责落实相关安全措施,确保活动期间的安全。如果因天气恶劣且主办方未做好安全工作,导致多人死亡,这可能表明体育公司在安全管理方面存在重大过失,未能充分履行其安全保障义务,从而构成重大劳动安全事故罪。 根据刑法第一百三十五条的规定,犯有重大劳动安全事故罪的,一般情况下,对直接负责的主管人员和其他直接责任人员,处三年以下有期徒刑或者拘役;情节特别恶劣的,处三年以上七年以下有期徒刑。 请注意,这里提供的信息是基于提供的背景情况,具体案件需由公安机关侦查后,检察机关提起公诉,人民法院经过审理才能确定最终的定罪量刑。此外,如果还有其他行为(如违反大型群众性活动安全管理规定)可能导致的法律责任,可能还需要考虑其他罪名及其相关法律规定。 |