随着人工智能的迅猛发展,大语言模型(LLM)成为众多企业的关注焦点。然而,LLM在实际应用中往往难以完全满足特定需求。
为了解决这个问题,“检索增强生成”(Retrieval-Augmented Generation,简称RAG)技术应运而生,迅速成为AI领域的热门话题。RAG巧妙地将企业私有数据与LLM的强大能力结合起来,成为连接LLM与业务需求的桥梁。
一、RAG:解决LLM在企业应用中的3个关键问题
RAG技术之所以在企业AI应用中备受关注,主要是因为它有效解决了通用大语言模型(LLM)在实际应用中面临的几个核心问题:
1. 知识局限性:
LLM的知识来源于训练数据,有一定的时效性,比如GPT4o的训练数据是只到2023年10月;同时缺乏企业独特的信息。RAG通过引入外部知识库,弥补了这一不足。
2. 幻觉问题:
LLM有时会产生所谓的"幻觉",即自信地生成错误信息。RAG通过提供可靠的外部信息源作为参考,大大降低了这种现象的发生率,提高了AI回答的准确性和可靠性。
3. 数据安全:
企业通常不愿将敏感数据上传至第三方平台,RAG允许企业在保护数据安全的同时,充分利用LLM的能力。
RAG技术通过将外部知识库的检索结果,与强大的生成模型结合,使得系统能够提供更准确、更丰富的回答,特别适用于需要结合大量外部知识的应用场景。
二、RAG技术的工作流程
图示说明:
用户输入的Query(查询)被嵌入模型(Embedding model)转换为向量。 这些向量被用来在Vector DB(向量数据库)中进行语义搜索,检索到相关的contexts(上下文)。 检索到的上下文信息与原始查询一起被输入到大语言模型(LLM),生成最终的Response(响应)。
RAG技术的工作流程
RAG技术通过结合信息检索和生成模型的能力,来提供更准确和上下文相关的回答。以下是RAG的工作流程:
Embedding(嵌入):将查询转换为向量表示,以便能够与数据库中的向量进行比较。 Query(查询):用户输入的问题或请求,是RAG模型的起点。 Retrieved(检索):使用嵌入向量在向量数据库(Vector DB)中搜索最相关的上下文信息。 LLM(大语言模型):检索到的上下文与查询一起被输入到预训练的LLM中。 Response(响应):最终生成的答案或输出,是基于查询和检索到的上下文信息由LLM生成的。
RAG技术的具体数据流程:
用户输入一个查询。 查询被嵌入模型转换成向量表示。 使用嵌入向量在向量数据库中检索最相关的上下文信息。 检索到的上下文与查询一起输入到LLM中。 LLM结合上下文和查询生成响应。
三、RAG的评估
我们可以将RAG系统的评估体系简化为以下几个核心指标:
Query-Context Relevance (查询-上下文相关性): 确保检索到的上下文信息与用户的查询高度相关,这是生成准确答案的基础。 Context-Answer Relevance (上下文-答案相关性): 检索到的上下文不仅与查询相关,还应与生成的答案紧密相连,以提高答案的准确性和可靠性。 Response Groundedness (答案的上下文基础性): 生成的答案应有明确的上下文依据,避免生成无根据的“幻觉”答案。
评估RAG系统时,可以通过以下方法来衡量这些指标:
回答准确性 (Answer Accuracy) 相关性评分 (Relevance Score) 幻觉减少程度 (Hallucination Reduction) 检索效率 (Retrieval Efficiency) 用户满意度 (User Satisfaction) 知识覆盖率 (Knowledge Coverage)
通过综合考虑这些指标,可以全面评估RAG系统的性能,并根据具体应用场景调整评估重点。
四、RAG的应用场景
RAG技术因其结合外部知识和LLM能力的特性,在多个领域都有广泛的应用前景:
写作助手:一个令人兴奋的项目是使用LLM创建写作助手。该应用程序协助用户完成诸如起草电子邮件、撰写博客文章或生成创意故事等任务。 问答系统:创建一个问答系统,使用LLM理解用户查询并提供相关答案。 摘要工具:通过LLM驱动的内容摘要工具简化信息消费。用户输入冗长的文章、研究论文或新闻文章,该工具利用LLM的语言理解能力生成简明摘要。开发智能输入提示词以提取关键信息,以连贯和结构化的方式呈现。这个工具对于处理大量信息的研究人员、学生和专业人士来说是无价的。 语音识别:利用LLM开发将语音转换为文本的语音识别工具。 聊天机器人:利用聊天机器人在客户服务中日益增长的普及度,开发一个使用LLM理解客户查询并提供相关回答的聊天机器人。 命名实体识别:使用LLM开发命名实体识别工具,以识别和分类文本中的命名实体。这个应用对于提取和分类文本数据中的实体至关重要。 情感分析:探索情感分析,这是一种常见的NLP应用,使用LLM分析文本并确定作者的情感。开发一个能够评估社交媒体帖子、客户评论和其他文本数据以辨别所表达情感的情感分析工具。 语言翻译: 使用LLM开发语言翻译工具,将文本在不同语言之间翻译。 文本生成: 利用LLM进行创意写作、内容创作和营销方面的文本生成。 个人知识库: 可以利用开源大模型搭建本地的个人知识库。
这些应用场景展示了RAG技术的多样性和实用性,本文只是介绍了RAG的极简架构,随后有着非常多的变种和演化,大多数是基于LangChain和LlamaIndex这两个框架开发的。
近期微软开源了GraphRAG,能够利用图结构的强大表示能力,通过整合和检索丰富的实体和关系知识,生成更加准确、相关和知识丰富的响应,不过构建、维护和迭代的成本还是相当高的,值得关注和学习。