一、检索增强生成简介
1. 传统LLM应用的弊端
自OpenAI革命性的ChatGPT发布以来,在人工智能领域,特别是大型语言模型(Large Language Model,LLM)的能力进化速度之快令人惊叹,大模型浪潮已经席卷了几乎各行业。通过利用LLM的强大功能来解决复杂任务、增强自然语言理解和生成类人文本,从而可能颠覆各个领域。
但是当涉及到专业场景或行业细分领域时,通用的基础大模型基本无法满足我们的实际业务需求,主要有以下几方面原因:
- 知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问)的训练集基本都是构建于网络公开的数据,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。
- 幻觉问题:所有的AI模型的底层原理都是基于数学概率,其模型输出实质上是一系列数值运算,大模型也不例外,所以它有时候会一本正经地胡说八道,尤其是在大模型自身不具备某一方面的知识或不擅长的场景。而这种幻觉问题的区分是比较困难的,因为它要求使用者自身具备相应领域的知识。
- 数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。这也导致完全依赖通用大模型自身能力的应用方案不得不在数据安全和效果方面进行取舍。既要保证安全,又要借助AI能力,那么最好的方式就是把数据全部放在本地,企业数据的业务计算全部在本地完成。
其实问题还有很多,包括tokens的限制,虽然这个长期来看不是问题,各LLM供应商的tokens数量限制肯定会越来越大。但是,费用也许就是另外一个需要考虑的问题了。
2. 检索增强生成原理
检索增强生成(Retrieval-Augmented Generation,RAG),是一种使用外部知识库来补充大语言模型的上下文并生成响应的技术。 RAG结合了LLM中的参数化知识和非参数化外部知识,缓解了幻觉问题,通过检索技术识别及时的信息,并增强了响应的准确性。 此外,通过引用来源,RAG增加了模型输出的透明度和用户信任度。 RAG还可以通过索引相关文本语料库进行定制以适应特定领域。
<RAG的架构如图所示,简单来讲,RAG就是通过检索获取相关的知识并将其融入Prompt,让大模型能够参考相应的知识从而给出合理回答。因此,可以将RAG的核心理解为“检索+生成”,前者主要是利用向量数据库的高效存储和检索能力,召回目标知识;后者则是利用大模型和Prompt工程,将召回的知识合理利用,生成目标答案。