开发生成式人工智能应用程序
在本系列的上一篇文章中,我们研究了嵌入管道,它填充
在这里,我们将看看与法学硕士的实际互动,并检查一些可能导致不良结果的常见问题:不精确的提示和不足的生成方法。
即使最好的嵌入和分块策略也无法取代对质量的需求
具体来说,在为 RAG 应用程序构建提示时应考虑几件事。这些包括:
告诉 LLM 其角色:当与 ChatGPT 等 LLM 代理交互时,他们将默认表现得像一个有用的聊天机器人。但是,您可以通过指示法学硕士以特定方式行事来改变将生成的响应的性质。例如,“您是一名律师,评估任何一方是否违反协议”或“您是互联网服务提供商的客户服务代理;你的工作是帮助人们解决他们的互联网问题”或任何适合你的特定情况的问题。
明确告诉法学硕士使用提供的上下文:向法学硕士明确您正在提供上下文,并且您希望生成的响应反映该上下文。您可以通过说“您的回答应考虑以下上下文”之类的内容来做到这一点,然后加上上下文。使用示例:在刚才提到的要求法学硕士担任评估合同的律师的场景中,您可能需要在提示中包含几个示例。例如,您可以提供一个合同示例,其中规定应在 30 天内付款,但买方直到合同签订后 40 天才付款,因此违反了协议。您可以提供更多补救权利示例以及解决合同违规问题的可能方法。
指定输出格式:如果您的用例需要特定输出,您可以指定生成的输出应遵循的格式。您可以将此技术与上述技巧结合起来,提供示例,让 LLM 清楚您希望它如何响应,以及您期望在生成的响应中包含哪些信息要点。
使用思维链:对于涉及推理以确定适当响应的用例,您可以考虑使用一种称为思维链的技术来帮助解释您希望 LLM 遵循以得出生成响应的步骤。例如,在法律合同案例中,您可能希望引导法学硕士完成人们将遵循的逻辑步骤,以确定是否违反了合同条款。例如,在处理法律合同时,您可能会告诉法学硕士首先查找指定付款条件的条款,然后确定买方必须提交付款的时间,然后计算收到付款的时间与付款时间之间的天数。合同签署日期。然后,如果付款时间超过约定的时间,则买方违反了协议。
利用这些技术来改进您的即时工程可以对您在 RAG 应用程序中生成的结果的质量产生重大影响。然而,有时您需要使用涉及与法学硕士多次交流的技术来获得可接受的答复。
前瞻性主动检索,或
您可以在LangChain Cookbook example of FLARE中查看 FLARE 如何工作的示例。
通过生成与用户查询相似的查询并检索原始查询和生成的相似查询的相关上下文,我们能够增加选择最有用的上下文来生成准确结果的可能性。这个过程称为“RAG 融合”,如下所示:
这里的关键步骤是使用倒数排名函数进一步细化 ANN 结果,以确定用于生成响应的最相关的上下文。
RAG 是一种易于上手的方法,但常常让开发人员因不明原因的不令人满意的结果而感到沮丧。支持 RAG 的生成式 AI 应用程序中输出的相关性可能会受到多种因素的影响。通过精心选择嵌入模型、制定分块策略和设计提示,您可以显着提高由 ChatGPT 等 LLM 提供支持的系统中生成响应的质量和精度。希望这些技巧将帮助您创建更有用的 RAG 应用程序,从而提供您想要的体验和价值。
作者:DataStax 的 Chris Latimer
也出现在这里。