检索增强生成(RAG)是自然语言处理(NLP)领域的最新技术之一,该技术实现了信息检索和自然语言生成(NLG)优势的结合。RAG 可以重塑软件的概念化、设计和实施方式,开创一个基于生成式模型的效率和创造力新时代。
什么是检索增强生成(RAG)?
检索增强生成(RAG)是一种自然语言处理(NLP)模型,由两个关键部分组成:生成器和检索器。
生成器:创建新内容(例如句子或段落),通常基于大语言模型(LLM)。
检索器:从一组预定的文档或数据中检索相关信息。
简单来说,RAG 通过检索器从大量文本集中查找有用信息,然后由生成器利用这些信息来增强基于 LLM 的训练以创建连贯的新文本。这种方法有助于利用训练原始 LLM 所用的庞大数据集以外的新知识(通常是领域更具体的知识)提高 AI 生成内容的质量和相关性。它通常用于回答问题或对文本进行总结等任务。
RAG 将这两个过程整合到一起,使开发人员能够利用丰富的现有知识来增强 LLM,从而更好地生成与上下文相关的新内容。
数据是什么样的?
数据是大语言模型、生成式 AI(gen AI)模型和 AI 应用的命脉,且以各种方式用于训练、验证和提高这些模型在不同领域的性能。NLP 模型和 RAG 使用一种称为“向量数据”的训练数据来确定数据集之间的关系。
什么是向量数据?
您可能听说过地理信息系统(GIS)和地图绘制领域所用的向量数据。如今,许多领域都在使用向量数据,其中包括地理、城市规划、环境科学和交通运输。它可以准确地对空间信息进行表示、分析和可视化,帮助用户理解地理数据并据此做出决策。向量数据可用于表示事物之间的关系或空间,例如一个城市和另一个城市之间的距离。
NLP 和 RAG 如何使用向量数据?
NLP 和 RAG 使用的并非传统的 GIS 或空间分析意义上的向量数据,但向量表示对于这些系统中的各种任务至关重要。在这个框架中,向量数据通常是指字词、句子或文档在高维向量空间中的数值表示。
在模型中使用这些数值表示的方法通常称为“嵌入”。嵌入可以捕获字词或文本片段之间的语义和句法关系。例如,可以将高维向量数据馈送到 IBM 的 watsonx.ai 模型或 Hugging Face 等模型中,这些模型专门将复杂的数据转换为计算机可以理解的数值形式以将数据转换为嵌入。
虽然 RAG 中的“向量数据”一词可能不是指地理向量,但将文本表示为向量对于 NLP 和 RAG 的许多方面(包括表示学习、检索和生成)至关重要。这些训练数据使模型能够对文本执行有意义的处理和操作,从而完成问答、总结和对话生成等任务。
如何在软件开发中使用 RAG
1.信息检索
信息检索在软件开发中起着至关重要的作用。开发人员通常需要访问许多资源,其中包括文档、代码库、论坛和研究型论文。RAG 通过自动检索相关信息来简化这一过程,不仅节省了时间,还使开发人员能够获取准确且与上下文相关的最新信息。
2.自然语言生成
检索到相关信息后,RAG 的自然语言生成部分便开始发挥重要作用。其中包括根据检索到的数据生成人类可读的文本。在软件开发中,生成的文本可以是代码段、文档甚至交互式指南。所生成的内容并非只是对现有信息的复制粘贴,而是根据开发人员的特定需求而定制。
3.迭代优化
RAG 的独特之处在于其迭代优化过程。开发人员可以与生成的内容交互,提供反馈以及优化输出。这种双向交互可对最终结果进行优化,使其更加准确且更符合开发人员的意图和编码风格。这种迭代式方法可在海量信息与特定项目的独特要求之间架起一座桥梁。
检索增强生成的软件开发用例
用例 1:代码生成
RAG 为代码生成带来了颠覆性的变化。开发人员可以描述高层次的要求或逻辑,系统可以检索相关代码段,并根据特定的上下文进行调整。这有助于加快编码过程并推动最佳实践。
用例 2:文档
文档是软件开发的一个重要方面,但往往因为时间限制而被忽视。RAG 可从相关来源提取信息,并自动生成连贯且方便开发人员使用的文档,从而简化文档的创建。
用例 3:问题排查和调试
遇到编码难题时,开发人员可以使用 RAG 来搜索解决方案并获取上下文关联建议。这可以显著加快调试过程并减少停机时间。
利用 RAG 进行混合云计算
开发运维(DevOps)和机器学习运维(MLOps)团队可以在混合云环境中利用 RAG,例如,改进数据管理、模型训练、文档记录、监控和资源分配流程,从而提高机器学习运维的效率和成效。
数据和文档
RAG 可用于从本地和云中的数据源检索相关数据。这在数据可能会分布在多个位置的混合云环境中尤其有用。通过更高效地检索和增强数据,MLOps 有助于机器学习模型访问多样且全面的数据集来进行训练和验证。
RAG 还有助于在 MLOps 工作流中实现文档和知识共享流程的自动化。RAG 系统可以使用 NLG 功能自动生成针对机器学习实验、模型评估和部署程序的文档、报告和总结。这有助于维护全面的活动记录,并简化团队成员之间的知识传授过程。
资源分配和优化
RAG 技术还可以集成到工作流中,以在混合云环境中实现自适应的资源分配和扩展。例如,MLOps 团队可以跨本地基础架构和基于云的平台动态分配计算资源,通过生成有关模型性能和资源利用率的洞见来优化模型的训练、推理和部署流程。
AI 生态系统的不断发展
对于希望利用 RAG 的开发人员而言,数据产品和生成式模型生态系统在不断扩大。例如,您可能听说过 ChatGPT 背后的公司 OpenAI。OpenAI 的 RAG 助理目前处于测试版阶段,它是 OpenAI 开发的范围更广的模型系列的一部分。
企业组织和开发人员还可以使用数据工具和模型生态系统来实施自己的 RAG 版本,从而为特定用例建立一个具有增强安全态势的环境。此外,这个生态系统中不断发展的合作伙伴关系有助于 MLOps 团队快速上手并专注于交付业务成果,而不是将时间花在问题排查和维护一系列复杂的独立技术上。
了解更多
戴尔科技和红帽携手推出了全堆栈 AI/ML 解决方案,该解决方案基于 适用于红帽 OpenShift 的戴尔 APEX 云平台和红帽 OpenShift AI 构建而成。借助一系列向量化文档,DELL APEX Cloud Platform 上的 OpenShift AI 通过将 LLM 与 RAG 相结合而创建的数字助理不仅包含企业组织特有的主题信息,还可为用户提供最新答案。
红帽将继续建立软件和硬件合作伙伴生态系统,以便为创建、部署和管理 ML 模型以及依托 AI 技术的智能应用提供全面的解决方案。
您可在红帽生态系统目录中了解已获得红帽 OpenShift 认证的软件和硬件合作伙伴所提供的适用于各种 AI/ML 工作负载的解决方案。
关于作者
Adam Wealand's experience includes marketing, social psychology, artificial intelligence, data visualization, and infusing the voice of the customer into products. Wealand joined Red Hat in July 2021 and previously worked at organizations ranging from small startups to large enterprises. He holds an MBA from Duke's Fuqua School of Business and enjoys mountain biking all around Northern California.