写过报告或综述的人都有过一些噩梦时刻,一堆参考资料堆在面前,但翻来覆去就是找不到关键内容,而deadline却像钟表上的秒针,不断迫近。这时如果有一个神通广大的助理,能迅速从海量数据中抽丝剥茧,直接甩给你最需要的先例、案例或论点,而不是推送一堆相关但无用的主题片段,是不是感觉简直像捡到了宝?为了这样的助理,或许不少人都愿意慷慨解囊。
大语言模型(large language model, llm)展现出了强大的自然语言理解与生成能力,能像助理一样响应各类查询,直接给出答案,然而LLM依赖于预训练模型内嵌的知识,往往难以应对需要实时更新或高度专业化的知识需求。为了解决这一问题,检索增强生成(Retrieval Augmented Generation, RAG)应运而生。
RAG的神奇之处在于,它将信息检索和生成式语言模型的优点结合起来:检索模块负责实时查找最新的、高度相关的内容,生成模块则对检索到的信息进行加工整合,生成准确且上下文贴合的回答。对于需要实时更新知识或解答复杂问题的场景,RAG的表现堪称一枝独秀。
RAG从理论到Demo确实让人眼前一亮,但在实际应用中却并非一帆风顺。本文将深入探讨RAG为何在Demo中易实现,但在实际应用中却难以落地的原因。
RAG研究技术路线。涉及RAG的阶段主要包括预训练、微调和推理。随着LLM的出现,对RAG的研究最初侧重于利用LLM强大的上下文学习能力,主要集中在推理阶段。随后的研究更加深入,逐渐与LLM的微调相结合。研究人员也一直在探索如何通过检索增强技术来增强预训练阶段的语言模型。
检索增强生成(Retrieval Augmented Generation, RAG)是一种结合信息检索与生成式语言模型的框架。它通过信息检索系统(如搜索引擎或知识库)动态获取与输入相关的外部信息,并将检索到的结果作为上下文提供给生成式语言模型(如GPT)。模型利用这些检索到的知识生成更准确、更可靠的回答。RAG旨在解决传统语言模型知识依赖内嵌参数的局限性,通过外部知识增强生成质量,特别适用于需要实时更新知识或对复杂问题提供精准答案的场景。
这一框架的核心特性在于检索与生成的协作:检索模块负责从大型知识库中找到与输入问题相关的信息,而生成模块通过总结、组合或扩展这些信息,生成内容丰富且上下文相关的输出。
这种方法既继承了检索系统的精准性,又结合了生成模型的灵活性:
① 引入企业内部知识,与大模型通用能力结合,有效降低幻觉问题,灵活性也更高。RAG通过从外部知识库检索信息,模型可以根据真实数据生成答案,从而显著降低语言模型生成幻觉(hallucination)的风险;实时从外部知识库中检索最新信息,解决传统语言模型知识滞后的问题,使回答内容始终保持更新。
② 相比预训练和微调,RAG可控性更高,成本更低。针对有数据敏感性、保密性需求的知识库,RAG的方式相对更可控,与此同时,企业沉淀的海量数据,可以通过大规模扩展知识覆盖范围来提升模型性能,而无需重新训练生成模型。此外,RAG与依靠内嵌参数存储知识的模型不同,将知识存储与推理能力分离,降低了参数依赖性,从而使模型更加轻量化,适合低资源场景。
然而,因为RAG框架需要同时优化检索模块和生成模块,并确保二者的协同工作,正如上篇《大模型检索知识增强策略三板斧——预训练、微调、推理》表格中“推理增强”所呈现的“知识注入不够深入”“技术实现复杂”“可靠性存疑”“推理效率影响”的缺点外,RAG在检索质量、检索推理时间方面短板尤为突出:
① RAG效果高度依赖检索质量,检索质量直接影响生成效果。这不仅对检索算法的设计和优化要求高,更对数据质量要求极高。
l 精炼的知识,需要大量投入。构建和更新高质量的大规模知识库需要显著的时间和资源投入,尤其是在需要频繁更新的领域(如法金融、零售、保险)。
l 索引切片,知识缺乏全局性。索引阶段会先将相关文档分块切片,为这些块生成嵌入向量,并将它们索引到向量库中,在进行查询时,查询内容也会以相似的方式进行嵌入。这种原理,导致无论采用何种切片策略、多么大的token理解窗口的大模型,都难以克服大模型无法回答涉及整体知识推理的问题。
l 难以回答隐含领域/行业背景知识的相关问题。大模型掌握大量知识,但针对领域知识大部分是不掌握的。比如,某水电企业用户提到“梯级电站”,默认是指某4个水电站;某电站用户提到“汛期”,默认是指7~8月。这类业务常用语、常用指标、潜规则、概念内核和外延有明确所指的问题,在意图理解层面存在巨大困难,只能检索相关包含关键词的片段,而缺漏知识。
l 回答可能似是而非,前后不一,增加用户甄别难度。知识庞杂召回质量很难保证,检索模块很可能返回与问题相关性较低或错误的信息,如果生成模块知识筛选整合机制也失效,模型很可能答非所问、错误回答,而不熟悉业务的用户可能很难判断模型是否返回错误答案。此外,大模型的高生成性,导致即使相同的问题,前后问答的结果可能不一样,导致企业用户对信息认识的一致性。
② 推理效率受限,检索延迟成为瓶颈。RAG动态检索过程会增加推理时间,尤其是当知识库规模庞大时,比如,从同一主题的数万个文档中,采用RAG,用户可能等上数十分钟,这种用户体验是难以接受的。
RAG作为一种结合检索与生成的创新框架,虽然在理论上具有显著的优势,但在实际落地过程中却面临着检索质量、推理效率、知识全局性等多方面的挑战。要真正实现RAG的广泛应用,不仅需要进一步优化检索算法和生成机制,还需要在数据质量、知识库构建和更新等方面进行大量投入。
尽管如此,随着技术的不断进步和优化,RAG有望在未来成为解决复杂知识需求的重要工具,特别是在需要实时更新和高度专业化知识的领域。然而,在当前阶段,如何克服这些挑战,提升RAG的实际应用效果,仍然是业界需要持续探索和解决的问题。