微信扫码
与创始人交个朋友
我要投稿
检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。但是当我们将大模型应用于实际业务场景时会发现,通用的基础大模型无法满足实际业务需求,主要有以下几方面原因:
知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问等)的训练集基本都是基于公开的数据,对于一些实时性的、非公开的或离线的数据是无法获取到的,不具备相关能力。
幻觉问题:所有的AI模型的底层原理都是基于数学概率计算,其模型输出实质上是一系列数值运算,大模型也不例外,所以它有时候会一本正经地胡说八道,尤其是在大模型自身不具备某一方面的知识或不擅长的场景。而这种幻觉问题的区分是比较困难的,因为它要求使用者自身具备相应领域的知识。
数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。这也导致完全依赖通用大模型自身能力的应用方案不得不在数据安全和效果方面进行取舍。
而RAG是解决上述问题的一套有效方案,RAG将大模型与知识库结合,为解决这些问题提供了很好的方向。在当客户问一个问题时,RAG通过检索相关问题来召回对应的回答,并将其融入prompt,让大模型能够参考相关问答从而给出合理回答。
图1:RAG流程
RAG主要分为三步,索引、检索、生成。索引部分主要做一些预处理工作,在多轮对话中,我们需要考虑对话历史,所以这里需要对知识库中每个轮次的对话做一个拼接,然后记录下拼接后对话的embedding。
图2:知识库
图3:知识库中多轮对话的q拼接及q|a拼接
在第二步检索中存在一个问题,即我们根据embedding来计算相关性,然而embedding衡量的是相似性而不是相关性,它不清楚每个字符不同的重要性,所以这里需要一个注意力模型,reranker。它是根据文本直接计算相似度的所以不需要提前计算embedding,由于比较耗时,所以在检索时先用embedding筛选一些候选问答,然后使用reranker对候选问答对进行精选。
检索的具体步骤为:首先将真实对话历史中每个轮次的对话做一个拼接,在embedding步对比用户输入q和知识库里的q,召回相似度大的topk个q,记录下对应的q|a对。然后在Reranker步对比用户对话历史的q|a对和知识库里的q|a对,进行召回。
检索的具体步骤为:首先将真实对话历史中每个轮次的对话做一个拼接,在embedding步对比用户输入q和知识库里的q,召回相似度大的topk个q,记录下对应的q|a对。然后在Reranker步对比用户对话历史的q|a对和知识库里的q|a对,进行召回。
图4:emb召回的q在知识库中匹配对应的q|a
第三步是生成,将召回的对话融入prompt,让大模型根据这些知识输出合适的回答。这里有时会遇到大模型输出不规范的问题,尽管在prompt已经规定了输出形式,大模型还是会输出一些幻觉内容。在这里我们参考rasa对话框架,将回答转为无意义的utter,转换后输入给prompt,让其选择一个合适的utter,将生成式问题转换为判别式问题,发现效果不错。
但是在实际业务中发现,q很短且重复,a很长很长,导致rerank模型受到干扰。召回的文本并不好,所以后续还可以尝试新的方法,譬如结合知识图谱,将多个文本分块,每个块作为节点,添加边记录块的上下文信息,然后借助langchain框架检索。
特征 | 提示工程 | 微调 | 检索增强生成(RAG) |
所需技能水平 | 低:需要基本了解如何构建提示。 | 中等到高:需要了解机器学习原理和模型架构。 | 中等:需要了解机器学习和信息检索系统。 |
定价和资源 | 低:使用现有模型,计算成本较低。 | 高:训练需要大量计算资源。 | 中等:需要检索系统和模型交互的资源,但比微调少。 |
定制能力 | 低:受限于模型的预训练知识和用户构建有效提示的能力。 | 高:允许进行广泛的定制,以适应特定领域或风格。 | 中等:通过外部数据源进行定制,但取决于其质量和相关性。 |
数据要求 | 无:利用预训练模型而无需额外数据。 | 高:需要大量相关的数据集以进行有效的微调。 | 中等:需要访问相关的外部数据库或信息源。 |
更新频率 | 低:取决于基础模型的重新训练。 | 可变:取决于模型何时使用新数据进行重新训练。 | 高:可以整合最新信息。 |
质量 | 可变:高度依赖于构建提示的技巧。 | 高:针对特定数据集进行定制,产生更相关和准确的响应。 | 高:通过上下文相关的外部信息增强响应。 |
使用案例 | 一般查询、广泛主题、教育目的。 | 专业应用、行业特定需求、定制任务。 | 需要最新信息和涉及上下文的复杂查询的情况。 |
实施的便利性 | 高:使用现有工具和界面非常简单。 | 低:需要深入的设置和训练过程。 | 中等:涉及将语言模型与检索系统集成。 |
结语:
随着自然语言处理技术的不断发展,RAG技术也在不断完善和进步。未来,RAG技术有望在更多领域得到应用,如智能客服、在线教育等。同时,随着知识库的不断丰富和检索技术的不断提高,RAG技术的性能也将得到进一步提升。
综上所述,RAG作为一种结合检索和生成技术的自然语言处理方法,具有广泛的应用前景和重要的研究价值。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-05
15种典型RAG框架:卡内基梅隆大学最新RAG综述
2024-11-05
Claude发布新的RAG方法 --- 通过上下文嵌入与BM25结合显著降低数据块检索失败率
2024-11-05
【大模型】深度解析:智能体如何突破 RAG 的三大技术瓶颈
2024-11-05
RAG 系统的分块难题:小型语言模型如何找到最佳断点?
2024-11-05
Adaptive-RAG:通过问题复杂性学习自适应检索增强LLM
2024-11-05
打造自己的RAG解析大模型:Labelme版面标注并顺利完成训练
2024-11-04
实操|如何优雅的实现RAG与GraphRAG应用中的知识文档增量更新?
2024-11-04
DSPy还能整RAG的活?LeReT: 用强化学习实现LLM智能检索
2024-07-18
2024-07-09
2024-07-09
2024-05-19
2024-05-05
2024-07-07
2024-07-07
2024-06-20
2024-07-08
2024-07-09
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21
2024-10-15
2024-10-15