RAG还是微调——企业应用大模型怎么选?
关键讯息,第一时间送达!
今天,通用大模型(LLM)已经发展得非常成熟,然而在企业中应用往往不能直接拿来应用,在需要特定知识的垂直领域,目前比较主流的做法有两种:RAG(检索增强生成)和大模型的Fine-tuning(微调)。
简单来说,RAG是为LLM附加了一个知识库,而微调则是对大模型本身的参数进行调整,需要使用特定的数据对模型进行再训练,因此,微调所需的工作量通常比RAG要大。
从下面这张图也可以看出,微调的成本是比较高的:
在产品化和工程化的过程中,这两种方法并不是对立的,而是经常会结合使用。例如,我们首先可能会使用提示词,告诉LLM以何种身份或方式来回答问题,然后使用RAG去检索外部的数据库,以提高生成效果和回答的准确性。如果我们希望模型具有一定的长期记忆,还可以采用微调的方式。从OpenAI发布的一项培训中,我们可以看到,提示词、RAG和微调经常会交替使用,以提高生成的精度,满足垂直领域的应用效果。
Modular RAG(模块化RAG):
Naive RAG:最基本的检索生成形式,包括三个基本步骤:首先,将文档库分割成较短的 Chunk,并通过编码器构建向量索引;其次,根据问题和 chunks 的相似度检索相关文档片段;最后,以检索到的上下文为条件,生成问题的回答。
Advanced RAG:在数据索引、检索前和检索后都进行了额外处理,通过更精细的数据清洗和处理,提高了检索和生成的质量。
Modular RAG:在结构上它更加自由的和灵活,引入了更多的具体功能模块,比如搜索,排序等。它将 RAG 系统拆分为多个核心流程,每个流程中包含多个功能模块,每个功能模块内部又包括多个具体的算子。整个 RAG 系统变成多个模块和对应算子之间的排列和组合,这样的设计使得 RAG 系统更加灵活,可以根据特定的数据情况、使用场景进行定制和优化。
2. 多模态的RAG