OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚

OpenAI又放大招了!

这次他们搞出了一份指南,教你怎么把你那傻乎乎的AI模型调教成一个能文能武的超级学霸!

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-2

你们还在为你家AI不学无术、答非所问而抓耳挠腮吗?OpenAI这次放出的指南,简直就是给你家AI开小灶的终极秘籍!它不是让你像个傻子一样,从提示工程一路莽到检索增强生成,再到微调。不不不,这回玩的是高级货!

他们把这个过程比作一个二维矩阵,听起来高大上是不是?但别怕,老司机我给你们掰开了揉碎了讲:

第一个维度,就是 给你家AI塞知识 。就像你妈逼着你背单词一样,但这次是给AI背。为啥要这么做?因为你家AI可能:

脑子里空空如也,啥也不知道

知识都是上个世纪的老黄历了

需要了解一些只有你们公司才知道的小秘密

这么做的目的是啥?就是让你家AI 说话靠谱点 ,别再张口就来了。

第二个维度,就是 教你家AI怎么表现 。就像你爸教你怎么在酒桌上敬酒一样。为啥要这么做?因为你家AI可能:

说话前言不搭后语,格式乱七八糟

说话的语气和风格跟你要求的不一样

推理逻辑像喝醉了一样东一榔头西一棒子

这么做的目的是啥?就是让你家AI 表现得像个人样 ,别再像个二愣子了。

有了这个思路,你就能决定是该给AI灌输更多知识,还是该教它怎么像个正常人一样说话了。

这份指南里还有不少实用小技巧,比如怎么持续评估AI的表现(别以为教完就完事了,还得时不时考考它),怎么把微调和检索增强生成这两招合起来使(就像武侠小说里的左右互搏),怎么在省钱和提高准确度之间找平衡(毕竟咱们又不是赚钱的印钞机)。

总之,这份指南简直就是AI界的"葵花宝典",学会了保准让你家AI从一只咸鱼翻身变成一只会飞的海豚!想深入了解的兄弟们,赶紧去OpenAI的官网上一探究竟吧!

OpenAI 原文👇👇👇

OpenAI平台优化大型语言模型的准确性 [1]

如何在使用大型语言模型时最大化正确性和一致性 [2]

优化大型语言模型(LLM)并不容易。

我们与许多创业公司和企业的开发人员合作,发现优化难度的原因通常归结为以下几点:

如何开始 优化准确性

何时使用 哪种优化方法

什么程度 的准确性适合生产环境

本文提供了一个心理模型,用于优化LLM的准确性和行为。我们将探讨提示工程、检索增强生成(RAG)和微调等方法。我们还将介绍每种技术的使用方法和时间,并分享一些常见的陷阱。

在阅读本文时,请结合您具体使用案例中的准确性需求来思考这些原则。这看似显而易见,但生产出需要人类修正的错误文案和退还客户1000美元而不是100美元之间存在很大区别。进入任何有关LLM准确性的讨论时,您应大致了解LLM出错的成本以及成功的节省或收益——这一点将在最后讨论,届时我们将介绍“生产环境中‘足够好’的准确性”。

LLM优化背景 [3]

许多“如何”指南将优化描绘成一个简单的线性流程——从提示工程开始,然后进行检索增强生成,最后进行微调。然而,事实往往并非如此——这些都是解决不同问题的杠杆,要朝着正确的方向优化,您需要拉动正确的杠杆。

将LLM优化框架化为一个矩阵更有用:

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-3

图1:准确性心理模型图

典型的LLM任务将从左下角的提示工程开始,我们通过测试、学习和评估来获得基准。一旦我们审查了这些基准示例并评估其错误原因,我们可以拉动以下杠杆之一:

上下文优化 :当模型缺乏上下文知识、知识过时或需要专有信息时,需要优化上下文。此轴最大化 响应准确性 。

LLM优化 :当模型产生格式不正确的结果、语气或风格不正确,或推理不一致时,需要优化LLM。此轴最大化 行为一致性 。

实际上,这变成了一系列优化步骤,我们评估、提出假设、应用优化、再评估,并为下一步重新评估。以下是一个典型的优化流程示例:

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-4

图2:准确性心理模型路径图

在这个示例中,我们执行以下操作:

从提示开始,然后评估其性能

添加静态少量示例,以提高结果的一致性

添加检索步骤,使少量示例根据问题动态引入,从而通过确保每个输入的相关上下文来提高性能

准备包含50多个示例的数据集,并微调模型以提高一致性

调整检索并添加事实检查步骤以发现幻觉,实现更高的准确性

在包含增强RAG输入的新训练示例上重新训练微调模型

这是一个解决棘手业务问题的典型优化管道——它帮助我们决定是否需要更多相关上下文,或者是否需要模型表现出更一致的行为。一旦做出决定,我们就知道优化的第一步是拉哪个杠杆。

现在我们有了心理模型,让我们深入探讨在这些领域采取行动的方法。从左下角的提示工程开始。

提示工程 [4]

提示工程通常是最佳起点。对于摘要、翻译和代码生成等用例,零样本方法即可达到生产水平的准确性和一致性。

因为它迫使您定义用例的准确性含义——您从提供输入的最基本层面开始,需要判断输出是否符合预期。如果不是您想要的结果,那么原因将显示出驱动进一步优化的方向。

为此,您应始终从简单提示和预期输出开始,然后通过添加 上下文 、 指令 或 示例 来优化提示,直到获得所需结果。

优化 [5]

为了优化您的提示,我主要依赖于OpenAI API文档中的 提示工程指南 [6] 中的策略。每种策略都有助于优化上下文、LLM或两者:

策略

上下文优化

LLM优化

写清晰的指令

X

将复杂任务拆分为简单子任务

X

X

给GPT时间“思考”

X

系统地测试变化

X

X

提供参考文本

X

使用外部工具

X

这些策略可能有些难以形象化,所以我们将通过一个实际示例来测试这些策略的效果。让我们使用gpt-4-turbo来纠正冰岛语句子的错误,看看这些策略如何发挥作用。

冰岛语纠错的提示工程

Icelandic Errors Corpus [7] 包含冰岛语句子及其错误版本和纠正版本的组合。我们将使用基础版GPT-4模型来尝试解决这一任务,并应用不同的优化技术来提高模型的性能。

给定一个冰岛语句子,我们希望模型返回该句子的纠正版本。我们将使用Bleu得分来衡量翻译的相对质量。

系统

用户

真值

助手

BLEU

以下句子包含可能包含错误的冰岛语句子。请尽可能少地更改单词以纠正这些错误。

Sörvistölur eru nær hálsi og skartgripir kvenna á brjótsti.

Sörvistölur eru nær hálsi og skartgripir kvenna á brjósti.

Sörvistölur eru nær hálsi og skartgripir kvenna á brjósti.

1.0

我们首先尝试使用没有示例的GPT-4,效果不错,获得了62的BLEU得分。现在我们添加一些少量示例,看看是否能通过展示而不是告知的方式教会模型我们想要的风格。一个示例如下:

以下句子包含可能包含错误的冰岛语句子。请尽可能少地更改单词以纠正这些错误。# 示例

"Stofnendurnir séu margir og eru fulltrúar hennar frá Englandi, Grikklandi, Rússlandi, Svíþjóð og fleiri löndum Evrópu."

"Hann segir að stofnendur leynireglunnar séu margir og að fulltrúar hennar séu frá Englandi, Grikklandi, Rússlandi, Svíþjóð og fleiri löndum Evrópu。"

"Helsta fæða bjúgorma eru hægfara lífverur sem eru á sama búsvæði og bjúgormarnir, oft smærri ormar eins og burstormar (fræðiheiti: Polychatete)。"

"Helsta fæða bjúgorma eru hægfara lífverur sem eru á sama búsvæði og bjúgormarnir, oft smærri ormar eins og burstaormar (fræðiheiti: Polychatete)。"

"Sörvistölur eru nær hálsi og skartgripir kvenna á brjótsti。"

"Sörvistölur eru nær hálsi og skartgripir kvenna á brjósti。"

整体翻译质量更好,显示出BLEU得分提升至 70(+8%) 。这相当不错,表明给模型展示任务的示例有助于它学习。

这告诉我们需要优化模型的 行为 ——它已经拥有解决问题所需的知识,因此提供更多示例可能是我们需要的优化。

稍后我们将回顾本文,测试更高级的优化方法如何应用于这一用例。

我们已经看到,提示工程是一个很好的起点,通过正确的调整方法,我们可以大幅提高性能。

然而,提示工程的最大问题在于它往往无法扩展——我们要么需要动态上下文来处理比简单上下文填充更多的问题,要么需要比少量示例能实现的一致性更高的行为。

那么提示工程到底能走多远?答案是这取决于评估。

评估 [8]

这就是为什么 具有问题和真值答案的评估集的好提示 是这一阶段的最佳输出。如果我们有一组20个以上的问题和答案,并且我们深入研究了失败的细节并对失败原因有假设,那么我们就有了进行更高级优化方法的正确基准。

在您转向更复杂的优化方法之前,还值得考虑如何自动化评估以加快迭代速度。我们在这里见到的一些常见有效做法包括:

使用 ROUGE [9] 或 BERTScore [10] 等方法来提供大致的评估。这与人类审阅者的相关性不大,但可以快速有效地衡量迭代对模型输出的影响。

使用 GPT-4 [11] 作为评估器,如G-Eval论文所述,提供评分卡以尽可能客观地评估输出。

如果您想深入了解这些,请查看 这个教程 [12] ,它会带您实践所有这些方法。

理解工具 [13]

所以您已经进行了提示工程,拥有了评估集,但模型仍未达到预期效果。最重要的下一步是诊断失败的原因,以及哪个工具最适合改进。

以下是一个基本框架:

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-5

图3:记忆问题分类图

您可以将每个失败的评估问题框架化为 上下文记忆 或 学习记忆 问题。类比而言,想象一下考试。有两种方法可以确保您得到正确答案:

参加了过去6个月的课程,看到了许多重复的例子,了解了某个概念是如何工作的。这是 学习记忆 ——通过向LLM展示提示和期望的响应示例,并让模型从中学习来解决这个问题。

拥有教材,可以查阅正确的信息来回答问题。这是 上下文记忆 ——我们通过在上下文窗口中填充相关信息来解决LLM的问题,可以使用静态方式进行提示工程,也可以使用RAG工业化方式进行。

这两种优化方法是 叠加的,而不是排他性的 ——它们叠加使用,某些用例需要同时使用它们来获得最佳性能。

假设我们面临短期记忆问题——为此我们将使用RAG来解决。

检索增强生成(RAG) [14]

RAG是 R 检索内容以 A 增强LLM提示并在此基础上 G 生成答案的过程。它用于为模型提供解决任务的 领域特定上下文 。

RAG是提高LLM准确性和一致性的重要工具——OpenAI许多大型客户部署仅使用提示工程和RAG。

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-6

图4:RAG图

在此示例中,我们嵌入了一个知识库。当用户提出问题时,我们嵌入该问题并从知识库中检索最相关的内容。将这些内容提供给模型,模型生成答案。

RAG应用引入了我们需要优化的新的轴,即检索。为了使RAG有效,我们需要为模型提供正确的上下文,然后评估模型是否正确回答。我将这些内容框架化为一个网格,展示了如何通过简单的方法来评估RAG:

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-7

图5:RAG评估图

RAG应用可以在以下两个方面出现问题:

领域

问题

解决方案

检索

提供错误的上下文,使模型无法回答,或提供过多无关上下文,淹没真实信息导致幻觉。

优化检索,包括:

调整搜索以返回正确结果。

调整搜索以减少噪音。

提供每个检索结果中的更多信息。这些只是例子,优化RAG性能是一个独立的行业,LlamaIndex和LangChain等库提供了许多调整方法。| | LLM | 模型获得正确的上下文但处理错误。| 通过改进模型使用的指令和方法进行提示工程,如果示例能提高准确性,则进行微调 |

关键是与一开始的心理模型相同——评估找出问题所在,采取优化步骤解决问题。RAG的唯一不同之处在于现在需要考虑检索轴。

尽管有用,RAG仅解决我们的上下文学习问题——对于许多用例,问题在于确保LLM能够学习一个任务,以便能够一致可靠地执行。这时我们转向微调。

微调 [15]

为解决学习记忆问题,许多开发人员继续在一个较小的领域特定数据集上训练LLM以优化其执行特定任务的能力。这个过程称为 微调 。

微调通常出于以下两个原因之一:

提高特定任务的模型准确性 :通过在任务特定数据上训练模型,解决学习记忆问题,向模型展示该任务的许多正确示例。

提高模型效率 :通过减少token数量或使用较小模型实现相同准确性。

微调过程从准备训练示例数据集开始——这是最关键的步骤,因为您的微调示例必须准确代表模型在实际环境中看到的内容。

许多客户使用一种称为 提示烘焙 的过程,在试点期间广泛记录提示输入和输出。这些日志可以被修剪成具有实际示例的有效训练集。

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-8

图6:微调过程图

一旦有了这个干净的集,我们可以通过执行 训练 运行来训练微调模型——根据您用于训练的平台或框架,您可能有超参数可供调整,类似于任何其他机器学习模型。我们总是建议保留一个保持集用于训练后 评估 ,以检测过拟合。关于如何构建良好的训练集的提示,您可以查看我们微调文档中的 指南 [16] ,以及有关准备和调整保持集的更多信息 请点击这里 [17] 。一旦训练完成,新的微调模型即可用于推理。

为了优化微调,我们将关注OpenAI模型定制产品中的最佳实践,但这些原则应适用于其他提供商和开源项目。需要遵循的关键实践包括:

从提示工程开始 :有一个基于提示工程的评估集作为基准。这允许一种低投资的方法,直到您对基础提示有信心。

从小规模开始,专注于质量 :当在基础模型上进行微调时,训练数据的质量比数量更重要。从50多个示例开始进行评估,如果尚未达到准确性需求,并且错误答案的原因是由于一致性/行为而不是上下文,则逐渐增加训练集的规模。

确保示例具有代表性 :我们见到的最常见陷阱之一是非代表性训练数据,其中用于微调的示例在格式或形式上与LLM在生产中看到的有所不同。例如,如果您有RAG应用程序,请在微调模型中包含RAG示例,以便它不是零样本学习如何使用上下文。

综合应用 [18]

这些技术是叠加的——如果您的早期评估显示上下文和行为问题,那么可能会在生产解决方案中使用微调+RAG。这是可以的——这些方法叠加使用,以平衡彼此的弱点。主要好处包括:

使用微调 最小化token使用 ,替代说明和少量示例,以大量训练示例嵌入模型中,实现一致行为。

使用微调 教授复杂行为 。

使用RAG 注入上下文 ,如更新的内容或任何其他特定上下文。

使用这些工具改进语言翻译

我们将继续构建之前使用的冰岛语纠错示例。我们将测试以下方法:

们的初步假设是这是一个行为优化问题,因此我们的第一步将是微调模型。我们将尝试使用gpt-3.5-turbo和gpt-4。

我们还将尝试RAG——在这种情况下,我们的假设是相关示例可能会提供额外的上下文,有助于模型解决问题,但这是一个低置信度的优化。

微调 [19]

为了我们用例的微调,我们将使用包含1000个类似少量示例的数据集:

以下句子包含可能包含错误的冰岛语句子。请尽可能少地更改单词以纠正这些错误。

"Hið sameinaða fyrirtæki verður einn af stærstu bílaframleiðendum í heiminum。"

"Hið sameinaða fyrirtæki verður einn af stærstu bílaframleiðendum heims。"

我们使用这些1000个示例训练gpt-3.5-turbo和gpt-4微调模型,并在验证集上重新运行评估。这证实了我们的假设——我们在性能上得到了显著提升,即使是3.5模型也比少量示例的gpt-4高出8分:

运行

方法

Bleu得分

1

gpt-4零样本

62

2

gpt-4使用3个少量示例

70

3

gpt-3.5-turbo微调1000个示例

78

4

gpt-4微调1000个示例

87

很好,这看起来已经接近我们用例的生产级准确性。然而,让我们测试是否可以通过添加一些相关的RAG示例到提示中以进行上下文学习,从而进一步提升性能。

RAG + 微调 [20]

我们的最终优化添加了训练和验证集以外的1000个示例,这些示例嵌入并放置在向量数据库中。然后我们用gpt-4微调模型进行进一步测试,结果可能令人惊讶:

OpenAI又放大招教你如何让AI从学渣变学霸从咸鱼翻身变海豚-9

图7:冰岛案例研究图

RAG实际上 降低了 准确性,从GPT-4微调模型的83分降到79分。

这说明了一个观点:使用正确的优化工具解决正确的问题——每种方法都有其优势和风险,我们通过评估和迭代变化来管理这些风险。我们在评估中看到的行为以及我们对该问题的了解表明,这是一个行为优化问题,额外的上下文不会明显帮助模型。这在实践中得到了验证——当模型通过微调已经有效地学习任务时,RAG实际上增加了额外的噪音,反而干扰了模型。

我们现在有一个接近生产准备的模型,如果需要进一步优化,可以考虑更广泛的多样性和数量的训练示例。

现在您应该对RAG和微调有所了解,以及何时适用。引入这些工具后,需要注意的是我们的迭代速度会有一个折衷:

对于RAG,您需要调整检索以及LLM行为。

对于微调,您需要重新运行微调过程,并在进行额外调整时管理训练和验证集。

这些都是耗时且复杂的过程,可能在您的LLM应用变得更复杂时引入回归问题。如果您从本文中学到一件事,那就是在转向更复杂的RAG或微调之前,尽可能从基本方法中榨取准确性——让您的准确性目标成为目标,而不是因为RAG + 微调被认为是最复杂的方法而跳跃使用。

生产环境中“足够好”的准确性 [21]

在LLM中,优化准确性可能是一场无休止的战斗——使用现成方法,它们不太可能达到99.999%的准确性。本节旨在决定何时准确性足够——如何放心地将LLM投入生产,以及如何管理推出解决方案的风险。

我发现从 业务 和 技术 角度思考这一点很有帮助。我将描述管理两者的高级方法,并使用客户服务帮助台的用例来说明如何管理这两方面的风险。

业务 [22]

对于业务而言,在规则系统或传统机器学习系统甚至人类的相对确定性之后,很难信任LLM——一个失败结果是开放且不可预测的系统是一个难以解决的问题。

在客户服务用例中,我们采用了以下方法:

首先,我们确定主要的成功和失败案例,并为其分配估算成本。这为我们提供了基于试点性能的解决方案可能节省或成本的明确表述。

例如,AI解决的案例比人类解决节省**$20**。

本不应升级到人类的情况下可能成本**$40**。

在最坏情况下,客户因AI的处理不当而流失,成本**$1000**。我们假设这种情况发生在5%的案例中。

事件

价值

案例数量

总价值

AI成功

+20

815

$16,300

AI失败(升级)

-40

175.75

$7,030

AI失败(流失)

-1000

9.25

$9,250

结果

+20

盈亏平衡准确性

81.5%

我们还测量了与过程相关的经验数据,以帮助我们衡量解决方案的宏观影响。再次以客户服务为例,这些可能是:

人类与AI互动的客户满意度得分(CSAT)

人类与AI案例的决策准确性

人类与AI的解决时间

在客户服务示例中,这帮助我们做出了两个关键决策,经过几次试点获得了清晰的数据:

即使我们的LLM解决方案比预期更频繁地升级到人类,它仍然比现有解决方案节省了大量运营成本。这意味着即使准确性只有85%,如果这15%主要是早期升级,仍然可以接受。

在失败成本非常高的情况下,例如欺诈案例的错误解决,我们决定由人类主导,AI作为助手。在这种情况下,决策准确性数据帮助我们决定不完全依赖自动化。

技术 [23]

在技术方面更为明确——既然业务已经清楚了预期的价值和可能出错的成本,您的角色是构建一个能够优雅处理失败,不影响用户体验的解决方案。

再次以客户服务示例为例,假设我们有一个模型,确定意图的准确性为85%。作为技术团队,我们可以通过以下几种方式最小化15%的错误影响:

我们可以通过提示工程让模型在不确定时提示客户提供更多信息,这样首次准确性可能下降,但在有两次机会确定意图时可能更准确。

我们可以给二线助手选项返回意图确定阶段,再次给用户体验自愈的方式,代价是增加了一些用户延迟。

我们可以通过提示工程让模型在意图不明确时交给人类处理,短期内这会增加一些运营成本,但长期可能会减少客户流失风险。

这些决策然后反馈到我们的用户体验中,使其变得更慢但准确性更高,或更多的人类干预,这些都反馈到业务部分讨论的成本模型中。

现在您有了一个方法,分解业务和技术决策,设定一个基于业务现实的准确性目标。

前进方向 [24]

这是一个思考最大化LLM准确性的高层次心理模型,您可以使用的工具以及决定生产中何时准确性足够的策略。您拥有了持续生产所需的框架和工具,如果您想了解更多使用这些方法的成功案例,请参阅我们的客户故事,如 Morgan Stanley [25] 和 Klarna [26] 的案例,展示了利用这些技术可以取得的成果。

祝您好运,我们期待看到您用这些方法构建的成果!

参考资料

[1]

优化大型语言模型的准确性: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/optimizing-llms-for-accuracy

[2]

如何在使用大型语言模型时最大化正确性和一致性: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/how-to-maximize-correctness-and-consistent-behavior-when-working-with-llms

[3]

LLM优化背景: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/llm-optimization-context

[4]

提示工程: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/prompt-engineering

[5]

优化: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/optimization

[6]

提示工程指南: https://platform.openai.com/docs/guides/prompt-engineering

[7]

Icelandic Errors Corpus: https://repository.clarin.is/repository/xmlui/handle/20.500.12537/105

[8]

评估: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/evaluation

[9]

ROUGE: https://aclanthology.org/W04-1013/

[10]

BERTScore: https://arxiv.org/abs/1904.09675

[11]

GPT-4: https://arxiv.org/pdf/2303.16634.pdf

[12]

这个教程: https://cookbook.openai.com/examples/evaluation/how_to_eval_abstractive_summarization

[13]

理解工具: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/understanding-the-tools

[14]

检索增强生成(RAG): https://platform.openai.com/docs/guides/optimizing-llm-accuracy/retrieval-augmented-generation-rag

[15]

微调: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/fine-tuning

[16]

指南: https://platform.openai.com/docs/guides/fine-tuning/analyzing-your-fine-tuned-model

[17]

请点击这里: https://platform.openai.com/docs/guides/LINK_HERE

[18]

综合应用: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/all-of-the-above

[19]

微调: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/fine-tuning

[20]

RAG + 微调: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/rag-fine-tuning

[21]

生产环境中“足够好”的准确性: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/how-much-accuracy-is-good-enough-for-production

[22]

业务: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/business

[23]

技术: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/technical

[24]

前进方向: https://platform.openai.com/docs/guides/optimizing-llm-accuracy/taking-this-forward

[25]

Morgan Stanley: https://openai.com/customer-stories/morgan-stanley

[26]

版权声明:
作者:clash
链接:https://www.shadowrocket6.top/127.html
来源:Shadowrocket官网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>