输入“/”快速插入内容

干货满满!OpenAI分享LLM生产落地全面指南

2024年7月18日修改
作者:PaperAgent
如何在使用 LLM 时最大限度地提高正确性和一致性行为
优化 LLM 很难。
我们与初创企业和大型企业的许多开发人员合作过,优化之所以困难,可以归结为以下原因:
了解 如何开始 优化准确率
何时使用哪种 优化方法
什么样的精度水平 才适合 生产
本文给出了一个关于如何优化 LLM 以提高准确性和行为的思维模型。我们将探讨诸如 提示工程 检索增强生成 (RAG) 和 微调 等方法。我们还将重点介绍如何以及何时使用每种技术,并分享一些陷阱。
在您阅读时,重要的是在心理上将这些原则与准确性对您的特定用例的意义联系起来。这似乎很明显,但制作一份需要人工修复的糟糕副本与退还客户 1000 美元而不是 100 美元之间是有区别的。在讨论 LLM 准确性时,您应该大致了解 LLM 失败会让您付出多少代价,以及成功会为您节省或赚取多少 - 这一点将在最后重新讨论,届时我们将讨论多少准确性对于生产来说“足够好”。
LLM 优化上下文
许多关于优化的“操作指南”将其描绘成一个简单的线性流程 - 从提示工程开始,然后转到检索增强生成,然后进行微调。然而,情况往往并非如此 - 这些都是解决不同问题的杠杆,要想朝着正确的方向进行优化,你需要拉动正确的杠杆。
将 LLM 优化构建为一个矩阵很有用:
典型的 LLM 任务将从左下角的提示工程开始,我们在此进行测试、学习和评估以获得基准。一旦我们审查了这些基准示例并评估了它们不正确的原因,我们就可以采取其中一个措施:
上下文优化: 当出现以下情况时,您需要针对上下文进行优化:1)模型缺乏上下文知识(因为它不在其训练集中);2)其知识已过时;或 3)它需要专有信息知识。此轴可最大限度地提高 响应准确性
LLM 优化: 当 1) 模型产生的结果不一致且格式不正确、2) 语气或说话风格不正确,或 3) 推理没有得到一致遵循时,您需要优化 LLM。此轴最大化了 行为的一致性
实际上,这变成了一系列优化步骤,我们评估、提出如何优化的假设、应用它、评估并重新评估下一步。以下是一个相当典型的优化流程示例:
在此示例中,我们执行以下操作:
从提示开始,然后评估其表现
添加静态小样本,这应该可以提高结果的一致性
添加检索步骤,以便根据问题动态地引入少量样本,这可确保每个输入的相关上下文,从而提高性能
准备 50 多个示例的数据集并微调模型以提高一致性
调整检索并添加事实核查步骤来发现幻觉,从而实现更高的准确率
使用包含增强型 RAG 输入的新训练示例重新训练微调模型
这是针对棘手业务问题的典型优化流程 - 它帮助我们决定是否需要更多相关上下文,或者是否需要模型中更一致的行为。一旦我们做出决定,我们就知道要采取哪个杠杆作为优化的第一步。
现在我们有了思维模型,让我们深入研究针对所有这些领域采取行动的方法。我们将从左下角的“提示工程”开始。
提示工程
提示工程通常是最好的起点。它通常是 摘要、翻译和代码生成 等用例所需的唯一方法,在这些用例中,零样本方法可以达到生产级别的准确性和一致性。
这是因为它迫使您定义准确性对于您的用例意味着什么 - 您从最基本的层面开始,提供输入,因此您需要能够判断输出是否符合您的期望。如果它不是您想要的,那么原因 告诉您使用什么来推动进一步的优化。
为了实现这一点,您应该始终从一个简单的提示和预期的输出开始,然后通过添加上下文 说明 示例 来优化提示,直到它满足您的要求。
优化
为了优化您的提示,我将主要依靠OpenAI API 文档中的“提示工程”指南中的策略。每种策略都可以帮助您调整上下文、LLM 或两者:
策略
上下文优化
LLM 优化
写下清晰的说明
X
将复杂任务拆分为更简单的子任务
X
X