我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
亚马逊 SageMaker 上基于人工智能的生成式解决方案,可帮助亚马逊进行欧盟设计和建造
亚马逊欧盟设计与施工(Amazon D&C)团队是设计和建造欧洲和中东和北非地区亚马逊仓库的工程团队。项目的设计和部署流程涉及有关亚马逊的工程要求和项目特定指南的多种类型的信息请求 (RFI)。这些请求包括简单地检索基准设计值,审查价值工程提案,再到分析报告和合规性检查。如今,这些问题由中央技术团队解决,该团队由主题专家 (SME) 组成,他们可以回答这些高度技术性的专业问题,并在整个项目生命周期中为所有利益相关者和团队提供这项服务。该团队正在寻找一种
现有的生成式 AI 问答解决方案主要基于
为了应对这些挑战,我们提出了一个包含 RAG 和微调的 LLM 的新框架。该解决方案使用
解决方案概述
该解决方案包含以下组件,如架构图所示:
-
内容存储库
— D&C 内容包括各种格式的人类可读文档,例如 PDF 文件、Excel 表格、维基页面等。在此解决方案中,我们将这些内容存储在
Amazon Simple Storage Servic e (Amazon S3) 存储桶中,并将它们用作信息检索和推理的知识库。将来,我们将构建集成适配器,以便直接从它们所在的地方访问内容。 -
带有经过微调的 LLM 的 RAG 框架
——它由以下子组件组成:
- RAG 框架 ——它从文档中检索相关数据,通过在上下文中添加检索到的数据来增强提示,并将其传递给经过微调的 LLM 以生成输出。
- 微调的 LLM — 我们根据文档和内容构建了训练数据集,并对基础模型进行了微调。调整后,模型从 D&C 内容中学习了知识,因此可以独立回答问题。
- 提示验证模块 -用于测量用户提示和数据集之间的语义匹配以进行微调。如果对 LLM 进行了微调以回答这个问题,那么你可以推断出经过微调的模型来得出答案。如果没有,你可以使用 RAG 生成响应。
-
LangChain
— 我们使用
LangChain 来建立一个工作流程来回答传入的问题。
- 最终用户界面 -这是聊天机器人用户界面,用于捕获用户的问题和疑问,并给出RAG和LLM回复的答案。
在下一节中,我们将演示如何创建 RAG 工作流程和构建经过微调的模型。
包含 SageMaker JumpStart 的基础模型的 RAG
RAG 结合了预训练的密集检索和序列到序列 (seq2seq) 基础模型的强大功能。要回答亚马逊 D&C 文档中的问题,我们需要提前准备以下内容:
- 使用 LLM 嵌入模型嵌入和索引文档 — 我们根据文档章节和章节结构将多个文档拆分成小块,在 SageMaker JumpStart 上使用 Amazon GPT-J-6B 模型进行测试以生成索引,并将索引存储在 FAISS 向量存储中
- 预先训练的基础模型,用于根据提示生成响应 — 我们在 SageMak er JumpStart 上使用 Flan-T5 XL、Flan-T5 XXL 和 Falcon-7B 模型进行了测试
问答过程由LangChain实现,LangChain是一个用于开发由语言模型支持的应用程序的框架。链中的工作流程包含以下步骤:
- 向用户提问。
-
通过
FAISS 对索引文档进行语义搜索, 以获取前 K 个最相关的文档块。 - 定义提示模板,例如
-
在提示符中,将检索到的文档块扩充为
{context},将用户问题扩充为{问题}。 - 使用构造的零射门提示提示来提示基础模型。
- 将模型输出返回给用户。
我们测试了 125 个关于亚马逊 D&C 要求和规范的问题,RAG 对一些问题给出了很好的回答。在以下示例中,采用 Flan-T5-xxL 模型的 RAG 提供了来自文档右侧部分的准确响应。
| Question | What are the PLUMBING requirements for Drinking Fountains and Water Coolers? (Section 22 47 00) |
| Expected answer | The Developer shall provide water dispensing bars, floor standing at the Warehouse wall space immediately adjacent to the entrance of each toilet block serving the Warehouse and in the equivalent location adjacent to the Lockers Room toilet block. Units shall be in accordance with Amazon standard. Final numbers and placement to be agreed with Amazon prior to installation. Minimum of two units dispensing cooled and room temperature water to be provided at each location. Water Coolers or Water Bars – The Developer shall provide potable water supplies as required for remote water coolers or water bars throughout the facility. The Developer shall provide water points, drainage and any electrical services required in the Break Rooms for the Water Bars which will be provided by the Catering Contractor. |
| RAG answer (GPT-J-6B embedding with Flan-T5-XXL) | The Developer shall provide water dispensing bars, floor standing at the Warehouse wall space immediately adjacent to the entrance of each toilet block serving the Warehouse and in the equivalent location adjacent to the Lockers Room toilet block. Units shall be in accordance with Amazon standard. Final numbers and placement to be agreed with Amazon prior to installation. Minimum of two units dispensing cooled and room temperature water to be provided at each location. Water Coolers or Water Bars – The Developer shall provide potable water supplies as required for remote water coolers or water bars throughout the facility. The Developer shall provide water points, drainage and any electrical services required in the Break Rooms for the Water Bars which will be provided by the Catering Contractor. |
但是,我们观察到,对于更具体、技术性更强的问题,例如指南、数字和数字,RAG 没有提供清晰明了的答案。如以下示例所示,当预期输出技术维度时,RAG 无法提供具体的答案,这主要是因为嵌入和搜索过程无法返回简洁的上下文。
| Question | What is the Floor Heights requirement for P2 First Floor level Concrete? |
| Expected answer | 7,50 m AFFL |
| RAG answer (GPT-J-6B embedding with Flan-T5-XXL) | P2 First Floor level Concrete |
这需要改进,因为在这个用例中,幻觉是不可容忍的,因为幻觉的后果非常严重。
在 SageMaker 上微调 LLM
为了应对这一挑战并提高响应质量,我们采用了一种新的方法,使用文档来微调LLM模型,以完成问答任务。将对模型进行训练,使其能够直接从文档中学习相应的知识。与 RAG 不同,它不取决于文档的嵌入和索引是否正确,也不取决于语义搜索算法是否足够有效,可以从矢量数据库返回最相关的内容。
为了准备训练数据集以进行微调,我们从 D&C 文档中提取信息并按以下格式构造数据:
- 指令 -描述任务并提供部分提示
- 输入 -提供更多上下文以整合到提示中
- 响应 -模型的输出
在训练过程中,我们为每个部分添加指令键、输入键和响应键,将它们合并到训练提示符中,然后对其进行标记化。然后,将数据馈送到 SageMaker 中的训练器以生成经过微调的模型。
为了加快训练过程和降低计算资源成本,我们采用了
为了证明微调的有效性,我们在SageMaker上使用多个 LLM 进行了测试。
通过基于 8 位 Lora 的训练,我们能够将可训练参数减少到不超过每个模型总权重的 5%。训练需要 10—20 个周期才能收敛,如下图所示。对于每个模型,微调过程可以容纳在 g4dn.x 实例的单个 GPU 上,从而优化了计算资源的成本。
推断部署在 SageMaker 上的微调模型
我们在 SageMaker 上的单个 GPU g4dn.x 节点中部署了经过微调的模型和 RAG 框架,并比较了 125 个问题的推理结果。模型性能由两个指标来衡量。其中之一是
在下表和下图中,我们可以看到,经过微调的 Falcon-7B 模型提供了最佳的答案质量,而 Flan-t5-XL 和 Dolly-3B 模型也生成了准确的响应。
| . | RAG_GPT-J-6B_Flan-T5-XL | RAG_GPT-J-6B_Flan-T5-XXL | Fine-tuned Bloom-7B1 | Fine-tuned Flan-T5-XL | Fine-tuned GPT-J-6B | Fine-tuned Dolly-3B | Fine-tuned Falcon-7B |
| ROUGE Score | 0.1938 | 0.2747 | 0.3914 | 0.4977 | 0.3740 | 0.6991 | 0.9459 |
| Semantic Similarity Score | 0.4121 | 0.4786 | 0.5666 | 0.7205 | 0.5414 | 0.8147 | 0.9774 |
以下是模型中的一个示例答案。使用Flan-t5-xl模型的RAG提供了高度的幻觉响应,而使用较大的Flan-t5-xxl模型的RAG的响应更为重要,但仍无法涵盖预期的全部信息。相比之下,所有经过微调的模型(Flan-t5-XL、Dolly-3B和Falcon-7B)都能够提供最准确的响应作为预期答案。
| Question | What are the requirements for Post Grinding Sealer/Hardener? (TS0004 – section 2.8) |
| Expected answer | A Lithium based sealer/hardener will be used post any grinding/sanding procedures undertaken on the AR Floor. Please refer to TGC /0007 AR Floor SCA Procedures. Alternatives will be considered but must be approved by Amazon and the Flooring Consultant. |
| Answer from RAG (GPT-J-6B embedding with Flan-T5-XL) | The Penetrating Concrete Hardener must be discussed at the pre-pour meeting and must be approved by the Flooring Consultant and Amazon |
| Answer from RAG (GPT-J-6B embedding with Flan-T5-XXL) | The proposed compound must be discussed at the pre – pour meeting and must be approved by the Flooring Consultant and Amazon. Alternatives will be considered but must be approved by Amazon and the Flooring Consultant. |
| Answer from fine-tuned Flan-T5-XL | A Lithium based sealer/hardener will be used post any grinding/sanding procedures undertaken on the AR Floor. Please refer to TGC /0007 AR Floor SCA Procedures. Alternatives will be considered but must be approved by Amazon and the Flooring Consultant. |
| Answer from fine-tuned Dolly-3B | A Lithium based sealer/hardener will be used post any grinding/sanding procedures undertaken on the AR Floor. Please refer to TGC /0007 AR Floor SCA Procedures. Alternatives will be considered but must be approved by Amazon and the Flooring Consultant. |
| Answer from fine-tuned Falcon-7B | A Lithium based sealer/hardener will be used post any grinding/sanding procedures undertaken on the AR Floor. Please refer to TGC /0007 AR Floor SCA Procedures. Alternatives will be considered but must be approved by Amazon and the Flooring Consultant. |
解决方案原型和成果
我们基于所提出的架构开发了一个原型,并进行了概念验证以演示结果。为了充分利用 RAG 框架和经过微调的 LLM,同时减少幻觉,我们首先对传入的问题进行语义验证。如果问题在微调的训练数据中(经过微调的模型已经具备提供高质量答案的知识),那么我们将问题作为推断微调模型的提示。否则,问题将通过LangChain并得到RAG的回应。下图说明了这个工作流程。
我们使用包含 166 个问题的测试数据集对架构进行了测试,该数据集包含用于微调模型的 125 个问题以及微调模型未经过训练的另外 41 个问题。带有嵌入模型和经过微调的 Falcon-7B 模型的 RAG 框架提供了高质量的结果,ROUGE 分数为 0.7898,语义相似度分数为 0.8781。如以下示例所示,该框架能够生成与 D&C 文档非常匹配的用户问题的答案。
下图是我们的第一个示例文档。
以下屏幕截图显示了机器人的输出。
机器人还能够使用表格或列表中的数据进行响应,并显示相应问题的数字。例如,我们使用以下文档。
以下屏幕截图显示了机器人的输出。
我们也可以使用带有图形的文档,如以下示例所示。
以下屏幕截图显示了带有文本和图形的机器人输出。
以下屏幕截图仅显示了带有图形的机器人输出。
经验教训和最佳做法
通过解决方案设计和多个 LLM 的实验,我们学会了如何确保生成式 AI 解决方案中问答任务的质量和性能。当您将解决方案应用于问题解答用例时,我们建议您采用以下最佳做法:
- RAG 对工程问题提供合理的回答。性能在很大程度上取决于文档嵌入和索引。对于高度非结构化的文档,在 LLM 嵌入和索引之前,您可能需要一些手动操作才能正确拆分和补充文档。
- 索引搜索对于确定 RAG 的最终输出很重要。您应该正确调整搜索算法,以达到良好的准确性水平,并确保 RAG 生成更相关的响应。
- 经过精心调整的法学硕士能够从高度技术性和非结构化的文档中学习更多知识,并且在培训后不依赖文档的情况下拥有模型中的知识。这对于不容忍幻觉的用例特别有用。
- 为了确保模型响应的质量,用于微调的训练数据集格式应使用正确定义的、针对特定任务的提示模板。推理管道应遵循相同的模板以生成类似人类的响应。
- 法学硕士通常会付出高昂的代价,需要大量的资源和高昂的成本。您可以使用 PEFT 和 LoRa 以及量化技术来减少对计算能力的需求并避免高昂的训练和推理成本。
- SageMaker JumpStart 提供易于访问的预训练 LLM,用于微调、推断和部署。它可以显著加快您的生成式 AI 解决方案的设计和实施。
结论
借助 RAG 框架和 SageMaker 上经过微调的 LLM,我们能够为用户的问题和提示提供类似人类的答复,从而使用户能够高效地从大量高度非结构化和无组织的文档中检索准确的信息。我们将继续开发解决方案,例如根据先前的互动提供更高水平的情境响应,并根据人类反馈进一步微调模型。
随时欢迎您的反馈;请在评论部分留下您的想法和问题。
作者简介
白云飞
是 亚马逊云科技 的高级解决方案架构师。凭借人工智能/机器学习、数据科学和分析方面的背景,云飞帮助客户采用 亚马逊云科技 服务来实现业务成果。他设计的人工智能/机器学习和数据分析解决方案,以克服复杂的技术挑战并推动战略目标。云飞拥有电子电气工程博士学位。工作之余,云飞喜欢阅读和音乐。
Burak Gozluklu
是位于马萨诸塞州波士顿的首席机器学习专家解决方案架构师。Burak 在仿真建模、数据科学和机器学习技术方面拥有超过 15 年的行业经验。他帮助全球客户采用 亚马逊云科技 技术,特别是 AI/ML 解决方案来实现其业务目标。Burak 拥有麻省理工大学的航空航天工程博士学位、系统工程硕士学位和位于马萨诸塞州剑桥的麻省理工学院的系统动力学博士后。Burak 热衷于瑜伽和冥想。
Elad Dwek
是亚马逊的建筑技术经理。凭借施工和项目管理的背景,Elad帮助团队采用新技术和基于数据的流程来交付建筑项目。他确定需求和解决方案,并促进定制属性的发展。Elad 拥有工商管理硕士学位和结构工程学士学位。工作之余,埃拉德喜欢瑜伽、木工和与家人一起旅行。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。