paint-brush
通过解决常见的检索增强生成挑战来获得相关的法学硕士学位经过@datastax
759 讀數
759 讀數

通过解决常见的检索增强生成挑战来获得相关的法学硕士学位

经过 DataStax4m2024/01/16
Read on Terminal Reader

太長; 讀書

我们研究 RAG 实施和 LLM 交互中可能出现的常见问题。
featured image - 通过解决常见的检索增强生成挑战来获得相关的法学硕士学位
DataStax HackerNoon profile picture
0-item
1-item


开发生成式人工智能应用程序检索增强生成(RAG)和矢量数据库可能具有挑战性。您经常需要对依赖矢量数据库的 RAG 实现进行故障排除,以确保检索到相关上下文;这很重要,因为该上下文随后会包含在对大型语言模型的提示中,以提供更准确的结果。


本系列的上一篇文章中,我们研究了嵌入管道,它填充矢量数据库嵌入,并考虑了可能导致不良结果的三个方面:次优嵌入模型、低效的分块策略和缺乏元数据过滤。

在这里,我们将看看与法学硕士的实际互动,并检查一些可能导致不良结果的常见问题:不精确的提示和不足的生成方法。

及时完善

即使最好的嵌入和分块策略也无法取代对质量的需求即时工程。这涉及使提示更加明确、具体并与预期输出保持一致。应测试不同的提示格式、长度和词汇选择,以微调 RAG 过程。

LLM 的简化概览


具体来说,在为 RAG 应用程序构建提示时应考虑几件事。这些包括:


告诉 LLM 其角色:当与 ChatGPT 等 LLM 代理交互时,他们将默认表现得像一个有用的聊天机器人。但是,您可以通过指示法学硕士以特定方式行事来改变将生成的响应的性质。例如,“您是一名律师,评估任何一方是否违反协议”或“您是互联网服务提供商的客户服务代理;你的工作是帮助人们解决他们的互联网问题”或任何适合你的特定情况的问题。


明确告诉法学硕士使用提供的上下文:向法学硕士明确您正在提供上下文,并且您希望生成的响应反映该上下文。您可以通过说“您的回答应考虑以下上下文”之类的内容来做到这一点,然后加上上下文。使用示例:在刚才提到的要求法学硕士担任评估合同的律师的场景中,您可能需要在提示中包含几个示例。例如,您可以提供一个合同示例,其中规定应在 30 天内付款,但买方直到合同签订后 40 天才付款,因此违反了协议。您可以提供更多补救权利示例以及解决合同违规问题的可能方法。


指定输出格式:如果您的用例需要特定输出,您可以指定生成的输出应遵循的格式。您可以将此技术与上述技巧结合起来,提供示例,让 LLM 清楚您希望它如何响应,以及您期望在生成的响应中包含哪些信息要点。


使用思维链:对于涉及推理以确定适当响应的用例,您可以考虑使用一种称为思维链的技术来帮助解释您希望 LLM 遵循以得出生成响应的步骤。例如,在法律合同案例中,您可能希望引导法学硕士完成人们将遵循的逻辑步骤,以确定是否违反了合同条款。例如,在处理法律合同时,您可能会告诉法学硕士首先查找指定付款条件的条款,然后确定买方必须提交付款的时间,然后计算收到付款的时间与付款时间之间的天数。合同签署日期。然后,如果付款时间超过约定的时间,则买方违反了协议。


利用这些技术来改进您的即时工程可以对您在 RAG 应用程序中生成的结果的质量产生重大影响。然而,有时您需要使用涉及与法学硕士多次交流的技术来获得可接受的答复。

高级模式

耀斑

前瞻性主动检索,或耀斑是多查询 RAG 技术的一个示例,该技术涉及使用提示中的自定义指令迭代调用 LLM,要求 LLM 提供有关关键短语的其他问题,以帮助其生成更好的答案。一旦 LLM 获得了没有间隙的上下文,它就会以最终响应结束。该过程在 LLM 和 AI 代理(图中的 AI 聊天机器人)之间添加了一个循环,以促进这些迭代:

耀斑


您可以在LangChain Cookbook example of FLARE中查看 FLARE 如何工作的示例。

拉格融合

通过生成与用户查询相似的查询并检索原始查询和生成的相似查询的相关上下文,我们能够增加选择最有用的上下文来生成准确结果的可能性。这个过程称为“RAG 融合”,如下所示:

拉格融合

这里的关键步骤是使用倒数排名函数进一步细化 ANN 结果,以确定用于生成响应的最相关的上下文。

结论

RAG 是一种易于上手的方法,但常常让开发人员因不明原因的不令人满意的结果而感到沮丧。支持 RAG 的生成式 AI 应用程序中输出的相关性可能会受到多种因素的影响。通过精心选择嵌入模型、制定分块策略和设计提示,您可以显着提高由 ChatGPT 等 LLM 提供支持的系统中生成响应的质量和精度。希望这些技巧将帮助您创建更有用的 RAG 应用程序,从而提供您想要的体验和价值。


尝试 DataStax Astra DB ,唯一用于在实时数据上构建生产级人工智能应用程序的矢量数据库


作者:DataStax 的 Chris Latimer


也出现在这里