了解RAG的数学极限和LLMs微调的真正承诺
关于在构建基于GenAI的应用程序时,精细调整LLMs的能力与RAG(检索增强生成)的能力之争仍然非常活跃。让我们用一种“归谬法”的方法结束这场辩论。
“反证法,欧几里得钟爱的法则之一,是数学家最精妙的武器之一” — G.H. Hardy
考虑一个包含1亿标记(大约100,000页文本)的非结构化“自定义事实书”。显然,整本事实书将无法适应任何LLM的上下文限制。另外,让我们假设这些事实对于组织非常具体,并且不存在于开源领域。对于我们的设置,以下是六个感兴趣的事实(事实编号强调信息可能分散在事实书中,并且可能不是连续的,但这些编号本身并不重要):
- 事实12:A暗示B。
- 事实20000:C由B导出。
- 事实1M: D是由C暗示的。
- 事实1.1M:E是D的直接结果。
- 事实10M:如果且仅如果E是真的,那么F也是真的。
- 事实13M: 如果F为真,则G为真。
现在,让我们分析一下一个RAG系统和一个经过精细调整的LLM如何处理输入问题:“A是否暗示G?”基于以上事实,很明显正确答案是是,提供的六个事实足以作为解释。
RAG 系统:— 它保证会失败!
假设检索增强生成(RAG)系统成功。为了实现这一点,系统的语义检索组件必须将所有六个相关事实检索到给定查询文本“ A是否意味着G?”的上下文中。不幸的是,正如我们所看到的,大多数不涉及A或F的事实与查询“语义上”无关。不会有任何RAG系统期望检索到大多数这些事实。即使使用了定制的优化嵌入模型,对于“A是否意味着G?”与“E是D的直接后果”在语义上相关并没有意义。在我们的情况下,RAG系统无法从检索失败中恢复,这意味着即使出现一次错失,也将导致错误答案。请注意,在这种情况下,RAG++技术或思维链都不会有所帮助。意识到涉及六个步骤是一个难题,即使在RAG中也是如此!
LLM细节调整:— 这很可能会奏效!
想象一下,在所有事实上进行下一个单词预测调优的LLM。当通过提示“ A是否暗示G?”进行种子设置时,其中上下文包含“ A”和“暗示”时,LLM将分配 unusually high 的概率 给下一个单词是‘B’(或相关词)。这是因为LLM已经在文本‘A暗示B’上进行了调优。因此,LLM生成的接下来几个单词可能与‘B’的概念相关。
在这一点上,LLM 的自回归特性开始发挥作用。它开始专注于与“B”相关的最近生成的上下文。由于LLM还被调优于“C跟随B”的事实,所以现在生成的文本很可能与“C”相关。论点会递归地继续下去。像ChatGPT-o1这样的模型,在生成最有可能的“长”回复之前,依赖迭代式的来回处理,因此很容易看出,一个定制的调优模型可以生成正确的论点链条,以适当地回答问题。请注意,我们并不假设在调优过程中所有的事实都存在于单一的上下文中,即使信息分散在不同的上下文中,这个论点仍然有效。
LLM比“好”的检索模型要大!如果您想要使用GenAI构建需要复杂推理的应用程序,请做好大量微调的准备!RAG和所有相关扩展都不太可能走得很远。