RAG系统的新评估似乎每天都在发布,其中许多都集中在框架的检索阶段。然而,生成方面——即模型如何综合和阐述这些检索到的信息——在实践中的重要性可能与之相当,甚至更大。生产中的许多用例并不仅仅是从上下文中返回一个事实,还需要将这些事实综合成一个更复杂的响应。
我们进行了几项实验,以评估和比较GPT-4、Claude 2.1和Claude 3 Opus的生成能力。本文详细介绍了我们的研究方法、结果、在此过程中遇到的模型细微差别,以及这对使用生成式AI进行构建的人有何重要意义。
虽然初步的研究结果表明Claude优于GPT-4,但随后的测试显示,通过战略性提示工程,GPT-4在更广泛的评估中表现出卓越的性能。在RAG系统中,固有的模型行为和提示工程非常重要。
简单地将“请先解释自己,然后回答问题”添加到提示模板中,可以显著提高(超过两倍)GPT-4的性能。显然,当大型语言模型以谈话的形式回答问题时,它似乎有助于展开思路。通过解释,模型可能正在嵌入/注意空间中强化正确答案。
RAG的各个阶段以及为什么生成很重要
虽然检索阶段负责识别和检索最相关的信息,但生成阶段负责将这些原始数据转化为连贯、有意义且符合上下文的响应。生成步骤的任务是综合检索到的信息,填补空白,并以用户易于理解和相关的方式呈现。
在许多现实世界的应用中,RAG系统的价值不仅在于其定位特定事实或信息片段的能力,更在于其将这些信息整合到更广泛框架中并进行背景化的能力。生成阶段使RAG系统能够超越简单的事实检索,提供真正智能和自适应的响应。
测试#1:日期映射
我们进行的初步测试涉及从两个随机检索的数字生成日期字符串:一个代表月份,另一个代表日期。模型的任务是:
例如,随机数4827143和17代表4月17日。
这些数字被放置在长度各异的上下文中的不同深度。模型最初在这项任务上遇到了相当大的困难。
虽然两个模型的表现都不出色,但Claude 2.1在初始测试中显著优于GPT-4,其成功率几乎是GPT-4的四倍。在这里,Claude的冗长特性——提供详细、解释性的回应——似乎赋予了它明显的优势,与GPT-4最初简洁的回复相比,其结果更准确。
受到这些意外结果的启发,我们在实验中引入了一个新的变量。我们指示GPT-4“先解释自己,然后回答问题”,这是一个鼓励更冗长回应的提示,类似于Claude的自然输出。这一微小调整的影响是深远的。
GPT-4的性能有了显著提高,在随后的测试中取得了完美的结果。Claude的结果也有所改善,但程度较小。
这个实验不仅突显了语言模型在处理生成任务时的差异,还展示了提示工程对其性能的潜在影响。Claude看似优势所在的冗长性,后来证明是GPT-4可以复制的策略,这表明模型处理和呈现其推理的方式可以显著影响其生成任务的准确性。总的来说,在我们的所有实验中,向提示中添加看似微不足道的“解释自己”这一句话,在提高模型性能方面发挥了作用。
进一步的测试与结果
我们进行了四项更多的测试,以评估当前模型将检索到的信息合成并转化为各种格式的能力:
不出所料,每个模型在字符串拼接方面都表现出了强大的性能,这再次证实了先前的认识,即文本操作是语言模型的基本优势。
至于货币格式化测试,Claude 3和GPT-4的表现几乎完美无缺。Claude 2.1的整体表现相对较差。准确率在不同标记长度下并没有显著变化,但当标记接近上下文窗口的开头时,准确率通常较低。
尽管在生成测试中取得了出色的成绩,但在仅进行检索的实验中,Claude 3的准确性却有所下降。从理论上讲,仅仅检索数字应该比同时操作它们更容易——这一性能下降的情况令人惊讶,也是我们计划进一步测试以考察的领域。如果说有什么的话,这种违反直觉的下降进一步证实了在使用RAG进行开发时,应该同时测试检索和生成的观点。
结论
通过测试各种生成任务,我们观察到,尽管两个模型在诸如字符串操作之类的琐碎任务上表现出色,但它们在更复杂的场景中却显现出了各自的优势和劣势。大型语言模型在数学方面仍然不擅长!另一个关键结果是,“解释自己”这一提示的引入显著提高了GPT-4的性能,这突显了模型如何被提示以及它们如何阐述其推理以实现准确结果的重要性。
这些发现对大型语言模型的评价具有更广泛的影响。在比较像冗长的Claude和最初不那么冗长的GPT-4这样的模型时,很明显,评价标准必须超越单纯的正确性。模型响应的冗长性引入了一个可以显著影响其感知性能的变量。这种细微差别可能表明,未来的模型评估应考虑响应的平均长度作为一个重要因素,以更好地了解模型的能力并确保更公平的比较。