检索增强生成 (RAG),是一种创新方法,帮助客户利用大语言模型 (LLM) 发挥数据的价值。本文介绍了可优化 RAG 应用的英特尔硬件和软件构建模块,它们可简化部署和支持扩展,同时实现上下文实时响应。
01 为您的应用定制 GenAI
ChatGPT 的横空出世改变了 AI 格局。广大企业争相利用这一新技术,推出新产品、提高生产力和增强运营中的成本效益,以赢得竞争优势。 Grok-1(3000 亿以上参数)和 GPT-4(万亿以上参数)等生成式人工智能 (GenAI) 模型,经过了互联网和其他文本源中海量数据的训练。这些第三方大语言模型适用于一般用例。不过,企业的大多数用例都需要使用您的数据对 AI 模型进行训练和/或增强,以提升结果与您业务的相关性。以下一些示例说明了生成式人工智能可如何应用于各行各业。

虽然您可以使用数据对模型进行微调,但重新训练模型需要额外的时间和资源。检索增强生成 (RAG) 是另一种深受欢迎的技术,它能够使用您的专有数据增强开源预训练模型,从而创建特定领域的 LLM,帮助生成特定的业务结果。RAG 无需您将数据与第三方大基础模型分享,支持您确保数据安全。 在本入门指南中,我们将介绍 RAG 如何与各种英特尔优化和平台搭配,为生产型 GenAI 系统带来卓越的价值和性能。
02 什么是检索增强生成 (RAG)?
RAG 技术在模型的提示流中添加了与查询相关的动态数据。相关数据可从存储在矢量数据库的定制知识库中检索。提示和检索的上下文丰富了模型的输出,可提供相关性和准确性更高的结果。RAG 支持您将您的数据用于 LLM,同时保持数据的完整性和私密性,因为数据不会发送给管理模型的第三方。RAG 工作流程的关键组成部分可归纳为四个简单步骤:用户查询处理、检索、上下文整合和输出生成。 RAG 的用途不仅限于文本,它还能重塑视频搜索和交互式文档探索,甚至支持聊天机器人从 PDF 内容中获取答案。 RAG 应用通常被称为“RAG 管道”,因为它们的数据流程从用户提示开始,始终如一。提示通过核心组件(即检索机制)传递,检索机制将其转换为矢量嵌入,并使用矢量搜索在预先构建的矢量数据库(例如,从 PDF、日志、记录稿)中查找类似内容。 相关度最高的数据会被检索出来,与用户提示相整合,并传递给模型进行推理服务和最终输出生成。这种上下文整合为模型提供了预训练时无法获得的额外信息,使其更好地满足用户任务或相关领域的要求。由于 RAG 不需要对模型进行重新训练或微调,因此可以有效地添加数据,为 LLM 提供上下文信息。 下一节将探讨 RAG 解决方案的架构和堆栈。
03 标准 RAG 解决方案架构
下面的 RAG 解决方案架构概述了标准 RAG 实施的构建模块。流程的核心部分包括:1 构建知识库;2 查询和上下文检索检索;3 响应生成;4 跨应用的生产监控。
RAG LLM 让我们详述其中的一些组成部分: 1、构建知识库: • 数据收集:利用记录稿、PDF 和数字化文档等基于文本的资源构建私有知识库。 • 数据处理管道:利用 RAG 专用管道提取文本、格式化处理内容,并将数据分块为易于管理的大小。 • 矢量化:通过嵌入模型处理数据块,将文本转换为矢量,还可选择加入元数据以丰富上下文。 • 矢量数据库存储:将矢量化数据存储在可扩展的矢量数据库中,以便高效检索。 2、查询和上下文检索: • 查询提交:用户或子系统通过聊天式界面或 API 调用提交查询,并由安全服务进行验证。 • 查询处理:实施输入安全与合规保障措施,然后进行查询矢量化。 • 矢量搜索和重新排名:进行初始矢量搜索,检索相关矢量,然后使用更复杂的模型重新排名,完善结果。 3、响应生成: • LLM 推理和响应生成:将顶部上下文与用户查询相结合,通过预训练或微调的 LLM 进行处理,并进行后处理以确保质量和安全性。 • 响应交付:通过界面向用户或子系统返回最终响应,确保回复内容连贯、语境准确。 4、生产监控: • 检索性能:监控检索过程的延迟和准确性,并保存记录以备审计。 • 重新排名的效率:跟踪重新排名性能,确保上下文相关性和速度。 • 推理服务质量:观察 LLM 推理的延迟和质量,维护日志以便审计和改进。 • 护栏的有效性:监控输入和输出处理的护栏,确保合规和内容安全。
04 适用于 RAG 的技术
开发 RAG 应用通常从集成式 RAG 框架开始,如 Haystack、LlamaIndex、LangChain 和英特尔实验室的 fastRAG。这些框架通过提供优化和集成基本的 AI 工具链简化开发过程。 我们可以将 RAG 工具链分为三个熟悉的组成部分:知识库构建、查询和上下文检索以及响应生成。通常,RAG 框架会提供涵盖整个工具链的 API。对于使用这些抽象化功能还是利用独立组件,用户应仔细斟酌,审慎做出这一工程设计决策。 英特尔优化弥合了工具链和硬件之间的差距,增强了整个工具链的性能,同时确保了英特尔® 至强® CPU 和英特尔® Gaudi® 加速器的兼容性和功能改进。这些优化被集成到现有框架中,或作为附加扩展分发,旨在减少实施大量底层编程的需求。这种抽象化有助于开发人员专注于高效构建 RAG 应用,利用增强的性能和定制的解决方案支持特定用例。 让我们来详细了解一下工具链的各个组成部分。 构建知识库 + 上下文检索: • 集成式框架:Haystack 和 LangChain 是重要的 RAG 框架,它们为矢量数据库和搜索算法提供了高级抽象化功能,支持开发人员在基于 Python 的环境中管理复杂流程。 • 矢量数据库技术:Pinecone、Redis 和 Chroma 是支持主流搜索算法的关键矢量数据库解决方案。英特尔实验室的可扩展矢量搜索 (SVS) 是又一项前景光明的新技术,预计将在 2024 年初与主要的矢量数据库集成。 • 嵌入和模型可访问性:嵌入模型通常通过 Hugging Face API 集成,可以无缝整合到 RAG 框架中,因此,添加高级自然语言处理 (NLP) 模型更为容易。 响应生成: • 底层优化:oneAPI 性能库可优化 PT、TF 和 ONNX 等主流 AI 框架,因此您可以使用已针对英特尔® 硬件进行优化的熟悉开源工具。 • 高级推理优化:Intel® Extension for PyTorch 等扩展增加了先进的量化推理技术,可提高大语言模型的性能。 如您所见,RAG 涉及多个相互连接的组件,在英特尔® 至强® CPU 等单一平台上管理这些组件可简化配置、部署和维护工作。对于更大的 LLM 或高吞吐量 LLM 推理,集成 Gaudi® 加速器是满足应用需求的最佳解决方案。 下一节将深入探讨 RAG 在生产中的复杂性,描述有助于团队成功部署的各种注意事项和技术。
05 在生产环境中加速 RAG
RAG 管道的许多组件都需要大量计算,同时,终端用户又要求低延迟响应。此外,由于 RAG 经常用于机密数据,因此整个管道必须安全。英特尔技术可为 RAG 管道提供动力,帮助跨计算平台实现安全性能,并助力特定领域和行业的定制生成式人工智能释放全部潜能。 计算需求 一般来说,LLM 推理是 RAG 管道中计算量最大的阶段,尤其是在实时生产环境中。然而,创建初始知识库 -- 处理数据和生成嵌入 -- 同样具有苛刻要求,取决于数据的复杂性和数量。在通用计算技术、人工智能加速器和机密计算方面,英特尔取得了重大进步,为化解整个 RAG 管道的计算挑战、同时确保数据隐私和安全性奠定了坚实基础。 与大多数软件应用一样,RAG 也受益于旨在满足最终用户交易需求的可扩展基础设施。随着交易需求增加,开发人员可能会遇到延迟增加的问题,原因是矢量数据库查询和推理计算会导致计算基础设施的负载趋于饱和。因此,获得随时可用的计算资源至关重要,有助于扩展系统,快速处理增加的需求。实施关键优化同样重要,有助于提高嵌入生成、矢量搜索和推理等关键组件的性能。 数据隐私和安全 • 安全的 AI 处理:在处理过程中,英特尔® Software Guard Extensions(英特尔® SGX)和英特尔® Trust Domain Extensions(英特尔® TDX)可通过 CPU 内存中的机密计算和数据加密提升数据安全性。这些技术对于处理敏感信息至关重要,通过在管道的各个部分进行数据加密,可帮助创建安全的 RAG 应用。对于需要在矢量嵌入生成、检索或推理过程中安全处理敏感数据的 RAG 应用,这是一项必不可少的功能。 • 实施适当的护栏:在 RAG 应用中,护栏要求在 RAG 系统中实施管理 LLM 行为的措施,包括监控模型的响应,帮助遵守指导原则和最佳实践,以及控制其输出,以降低毒副作用、不公平偏见和隐私泄露等风险。RAG 应用中的护栏功能有助于保持 LLM 的可信度和负责任使用,同时确保其符合系统的总体目标和要求。 开源优化 嵌入优化 • 量化嵌入模型和:英特尔® 至强® 处理器可以利用量化嵌入模型,优化文档的矢量嵌入生成。Bge-small-en-v1.5-rag-int8-static 是一个典型示例,它是 BAAI/ BGE-small-en-v1.5 的一个版本,经过了Intel® Neural Compressor的量化,且兼容 Optimum-Intel。在大规模文本嵌入基准 (MTEB) 上使用量化模型执行检索和重新排名性能任务时,浮点 (FP32) 和量化 INT8 版本的 MTEB 性能指标出现小于 2% 的差异,同时吞吐量有所增强(见脚注 1、3)。 在最近的一项 Hugging Face 研究中,我们以每秒文档数为单位,对峰值编码性能的吞吐量进行了评估。总体而言,在各种批次大小中,相比于基准 bfloat16 (BF16) 模型,量化模型实现了高达 4 倍改进,无论模型大小如何。点击这里,了解更多内容:https://huggingface.co/blog/ intel-fast-embedding 矢量搜索优化 • 为 CPU 而优化的工作负载:在英特尔® 至强® 处理器上,矢量搜索运算得到了高度优化,而随着第三代或更高版本处理器推出英特尔® 高级矢量扩展指令集 512(英特尔® AVX-512),这种优化更加突出。英特尔 AVX-512 采用了融合乘加 (FMA) 指令,将乘法和加法组合在单个运算中,从而增强了内积计算 -- 这是矢量搜索中的基本运算。通过减少计算所需的指令数量,这种功能显著提高了吞吐量和性能。 • 可扩展矢量搜索 (SVS):可扩展矢量搜索 (SVS) 技术可提供快速矢量搜索功能,优化检索时间,并提高系统整体性能。SVS 利用局部自适应矢量量化 (LVQ) 优化了基于图形的相似性搜索,在保持准确性的同时最大限度降低了内存带宽要求。结果就如下图所示,距离计算延迟大幅减少,吞吐量和内存需求方面的性能显著提高。 推理优化 RAG 主要涉及推理运算,英特尔® 至强® 处理器通过先进的模型压缩技术支持推理运算。这些技术支持在降低精度(BF16 和 INT8)的情况下运算,而不会造成明显的性能损失。对于较大的模型和高吞吐量要求,英特尔® Gaudi® 加速器具有出色的性价比优势,可替代 CPU 和其他加速器进行 RAG 推理。在本节中,我们将概述推理方面的各种特定优化和机会。 • 英特尔® 高级矩阵扩展(英特尔® AMX):第四代和第五代英特尔® 至强® 可扩展处理器采用了英特尔® AMX,可实现更高效的矩阵运算和改进的内存管理。 • 开源 SOTA 推理优化工具:英特尔帮助开发并扩展了 PyTorch、TensorFlow、Hugging Face、DeepSpeed 等主流深度学习框架。对于 RAG 工作流程来说,通过实施量化等模型压缩技术,有机会优化 LLM。目前,Intel® Extension for PyTorch 提供了各种先进的 (SOTA) LLM 量化方案,如 SmoothQuant、纯权重量化和混合精度 (FP32/BF16)。下图展示了在单路第四代英特尔® 至强® 平台上运行的 INT8 量化 Llama 2 模型的推理延迟性能。 推理复杂性和英特尔® Gaudi® RAG 的一个优势是,由于您较少依赖 LLM“知识”,而更多依赖其“语言建模功能”,因此您可以使用参数数量较少的模型。在许多情况下,在与 RAG 模型知识库相关的特定领域任务中,使用 RAG 的较小 70 亿参数模型可以击败拥有数百亿参数的较大模型。 高度专业化的任务有时可能需要更大的模型,因此需要专门的加速器,如英特尔® Gaudi® 处理器。对于需要最高吞吐量或最低延迟的 RAG 应用,可在性能最高的 AI 加速器(如英特尔® Gaudi® 3 处理器)上运行 LLM 推理。 探索英特尔® Gaudi® RAG 资源,了解更多信息 • 英特尔实验室认知型 AI 团队在2024 年Intel® On 产业创新峰会上进行的多模态 RAG 演示 • 可扩展的检索增强生成 (RAG) 应用,使用 Hugging Face 工具,用于通过英特尔® Gaudi® 2 加速器部署优化应用
06 RAG 在企业中的机遇
零售 零售商面临的挑战是,根据顾客多样且不断变化的偏好,为其推荐合适的产品。传统的推荐系统可能无法有效考虑最新趋势或个别顾客的反馈,导致产品建议的相关性降低。 通过实施基于 RAG 的推荐系统,零售商能够将最新趋势和个别顾客的反馈纳入个性化的产品建议中。通过提供相关、及时和个性化的产品推荐信息,该系统可丰富购物体验,促进销售并提高顾客忠诚度。 了解更多信息 制造 在制造业,设备故障导致的意外停机是一个重要的成本驱动因素。传统的预测性维护模型可能会遗漏故障发生前的细微异常情况,尤其是在历史故障数据有限或不存在的复杂机器中。 基于 RAG 的预测性维护异常检测系统可以实时分析大量运行数据,并将其与广泛的设备性能知识库进行比较,从而及时发现潜在故障,避免其发生。这种方法可以最大限度减少停机时间和维护成本,同时延长设备的使用寿命。 了解更多信息 金融服务 由于金融数据和法规纷繁复杂且不断变化,大规模提供个性化金融建议并非易事。客户希望获得快速、相关和个性化的金融建议,而传统聊天机器人无法始终准确提供这些建议。 RAG 模型可动态提取最新的金融数据和法规信息,增强金融建议聊天机器人,以生成个性化建议。通过利用庞大的知识库,聊天机器人可以为客户提供定制的投资策略、实时的市场洞察和监管建议,从而提高客户满意度和参与度。 了解更多信息 采取下一步行动 英特尔将提供一整套资源助您开始实施,从英特尔® Tiber™ 开发人员云中的硬件访问,到 Google Cloud Platform、Amazon Web Services 和 Microsoft Azure 等主要云提供商无所不在的计算。如需查看代码示例、演练、培训等信息,开发人员可访问英特尔开发人员专区。 如果您想要了解该解决方案的详细信息,请关注英特尔开发人员专区微信公众号在后台回复“RAG模块”,即可获取相关资料。