一、LLMs 已经具备了较强能力了,为什么还需要 RAG(检索增强生成)?
尽管 LLM 已展现出显著的能力,但以下几个挑战依然值得关注:
- 幻觉问题:LLM 采用基于统计的概率方法逐词生成文本,这一机制内在地导致其可能出现看似逻辑严谨实则缺乏事实依据的输出,即所谓的“郑重其事的虚构陈述”;
- 时效性问题:随着 LLM 规模扩大,训练成本与周期相应增加。鉴于此,包含最新信息的数据难以融入模型训练过程,导致 LLM 在应对诸如“请推荐当前热门影片”等时间敏感性问题时力有未逮;
- 数据安全问题:通用的 LLM 没有企业内部数据和用户数据,那么企业想要在保证安全的前提下使用 LLM,最好的方式就是把数据全部放在本地,企业数据的业务计算全部在本地完成。而在线的大模型仅仅完成一个归纳的功能;
二、介绍一下 RAG
RAG(Retrieval Augmented Generation, 检索增强生成)是一种技术框架,其核心在于当 LLM 面对解答问题或创作文本任务时,首先会在大规模文档库中搜索并筛选出与任务紧密相关的素材,继而依据这些素材精准指导后续的回答生成或文本构造过程,旨在通过此种方式提升模型输出的准确性和可靠性。
三、RAG 主要包含哪些模块?
模块一:版面分析
- 本地知识文件读取(pdf、txt、html、doc、excel、png、jpg、语音等)
- 知识文件复原
模块二:知识库构建
- 知识文本分割,并构建Doc文本
- Doc文本 embedding
- Doc文本 构建索引
模块三:大模型微调
模块四:基于RAG的知识问答
- 用户query embedding
- query 召回
- query 排序
- 将 Top K 个相关的 Doc 进行拼接,构建 context
- 基于 query 和 context 构建 Prompt
- 将 prompt 喂给大模型生成答案
四、RAG 相较于直接使用 LLMs进行问答 有哪些优点?
RAG(检索增强生成)方法赋予了开发者无需为每个特定任务重新训练大型模型的能力,仅需连接外部知识库,即可为模型注入额外的信息资源,从而显著提升其回答的精确度。这一方法尤其适用于那些高度依赖专业知识的任务。
以下是 RAG 模型的主要优势:
- 可扩展性:减小模型规模及训练开销,同时简化知识库的扩容更新过程。
- 准确性:通过引用信息源,用户能够核查答案的可信度,进而增强对模型输出结果的信任感。
- 可控性:支持知识内容的灵活更新与个性化配置。
- 可解释性:展示模型预测所依赖的检索条目,增进理解与透明度。
- 多功能性:RAG 能够适应多种应用场景的微调与定制,涵盖问答、文本摘要、对话系统等领域。
- 时效性:运用检索技术捕捉最新信息动态,确保回答既即时又准确,相比仅依赖固有训练数据的语言模型具有明显优势。
- 领域定制性:通过对接特定行业或领域的文本数据集,RAG 能够提供针对性的专业知识支持。
- 安全性:通过在数据库层面实施角色划分与安全管控,RAG 有效强化了对数据使用的管理,相较于微调模型在数据权限管理上的潜在模糊性,展现出更高的安全性。
五、对比一下 RAG 和 SFT,说一下两者有哪些区别?
实际上,对于 LLM 存在的上述问题,SFT 是一个最常见最基本的解决办法,也是 LLM 实现应用的基础步骤。那么有必要在多个维度上比较一下两种方法:
当然这两种方法并非非此即彼的,合理且必要的方式是结合业务需要与两种方法的优点,合理使用两种方法。