构建检索增强生成(RAG)的生成能力有哪些技巧

2024年04月08日 由 alex 发表 324 0

对 RAG 系统的新评估似乎每天都在发布,其中许多都侧重于框架的检索阶段。然而,生成方面--模型如何综合和表述检索到的信息--在实践中可能具有同等甚至更大的重要性。生产中的许多用例并不只是简单地从上下文中返回事实,还需要将事实合成为更复杂的响应。


我们进行了多项实验来评估和比较 GPT-4、Claude 2.1 和 Claude 3 Opus 的生成能力。本文详细介绍了我们的研究方法、结果、一路上遇到的模型细微差别,以及为什么这对使用生成式人工智能进行构建的人很重要。


要点


  • 虽然最初的研究结果表明 Claude 的表现优于 GPT-4,但随后的测试显示,通过战略性的提示工程,GPT-4 在更广泛的评估中表现出了卓越的性能。在 RAG 系统中,固有的模型行为和提示工程非常重要。
  • 只需在提示模板中添加 "请解释一下然后回答问题",GPT-4 的性能就会显著提高(超过 2 倍)。很明显,当一个 LLM 说出答案时,似乎有助于展开思路。可能通过解释,模型在嵌入/注意力空间中重新强化了正确答案。


RAG 的各个阶段以及生成的重要性


3


检索负责识别和检索最相关的信息,而生成阶段则负责将这些原始数据转化为连贯、有意义且与上下文相符的回复。生成步骤的任务是综合检索到的信息,填补空白,并以易于理解和与用户查询相关的方式呈现出来。


在现实世界的许多应用中,RAG 系统的价值不仅在于其定位特定事实或信息的能力,还在于其在更广泛的框架内整合信息并将其与上下文联系起来的能力。生成阶段使 RAG 系统能够超越简单的事实检索,提供真正智能的自适应响应。


测试 1:日期映射

我们进行的初始测试包括从随机检索到的两个数字中生成一个日期字符串:一个代表月,另一个代表日。模型的任务是:


  1. 检索随机数字 #1
  2. 分离最后一位数字并递增 1
  3. 根据结果为日期字符串生成月份
  4. 检索随机数 #2
  5. 从随机数 2 中为我们的日期字符串生成日期


例如,随机数 4827143 和 17 代表 4 月 17 日。


这些数字被放置在不同深度、不同长度的上下文中。最初,模型在完成这项任务时遇到了不少困难。


4


虽然两个模型的表现都不是很好,但Claude  2.1 在我们的初始测试中明显优于 GPT-4,成功率几乎翻了两番。在这里,Claude 的啰嗦特性--提供详细的解释性回答--似乎给它带来了明显的优势,与 GPT-4 最初简洁的回答相比,它的结果更准确。


在这些意外结果的推动下,我们在实验中引入了一个新变量。我们指示 GPT-4 "先解释自己,再回答问题",这一提示鼓励了更多的回答,类似于Claude 的自然输出。这一微小的调整产生了深远的影响。


5


GPT-4 的性能显著提高,在随后的测试中取得了完美无瑕的结果。Claude 的成绩也有一定程度的提高。


这项实验不仅凸显了语言模型在处理生成任务时的差异,还展示了提示工程对其性能的潜在影响。多言似乎是Claude的优势,但在 GPT-4 中却变成了一种可复制的策略,这表明模型处理和展示其推理的方式会极大地影响其在生成任务中的准确性。总之,在我们的提示中加入 "解释一下你自己 "这一句看似微不足道的话,在我们所有的实验中都起到了提高模型性能的作用。


进一步测试和结果


6


我们还进行了另外四项测试,以评估通行模型将检索信息合成和转换为各种格式的能力:


  • 字符串连接: 将文本片段组合成连贯的字符串,测试模型的基本文本处理能力。
  • 货币格式化: 将数字格式化为货币、四舍五入和计算百分比变化,以评估模型的精确性和处理数字数据的能力。
  • 日期映射: 将数字表示转换为月份名称和日期,这需要检索和上下文理解的结合。
  • 模数运算: 进行复杂的数字运算,以测试模型的数学生成能力。


不出所料,每个模型在字符串连接方面都表现出了很强的性能,这再次印证了之前的认识,即文本操作是语言模型的基本优势。


7


在货币格式化测试中,Claude 3 和 GPT-4 的表现几乎完美无瑕。Claude 2.1 的总体表现较差。不同标记长度的准确度差别不大,但当指针更接近上下文窗口的起始位置时,准确度普遍较低。


8


尽管Claude 3 号在生成测试中取得了优异成绩,但在纯检索实验中的准确率却有所下降。从理论上讲,仅仅检索数字应该比同时操作数字更容易--因此这种性能下降令人惊讶,我们正在计划进一步的测试来研究这一领域。如果说这种反直觉的下降进一步证实了在使用 RAG 进行开发时,应该同时测试检索和生成的概念的话。


结论

通过测试各种生成任务,我们发现虽然两种模型都擅长字符串操作等琐碎任务,但在更复杂的场景中,它们的优缺点都会显现出来。LLM 仍然不擅长数学!另一个关键结果是,"解释一下你自己 "提示的引入明显提高了 GPT-4 的性能,这突出说明了如何提示模型以及模型如何阐明自己的推理对获得准确结果的重要性。


这些发现对 LLM 的评估有着更广泛的影响。在比较像 "Claude "这样啰嗦的模型和最初不太啰嗦的 GPT-4 模型时,评价标准显然不能仅仅局限于正确性。模型回答的冗长程度引入了一个变量,可显著影响其感知性能。这一细微差别可能表明,未来的模型评估应将回答的平均长度作为一个注意因素,从而更好地了解模型的能力,并确保进行更公平的比较。

文章来源:https://medium.com/towards-data-science/tips-for-getting-the-generation-part-right-in-retrieval-augmented-generation-7deaa26f28dc
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消