微调LLMRLHF和替代方案

介绍

近年来,自然语言处理(NLP)领域取得了显 著 的进步,这主要得益于 GPT-3.5 等大型语言模型的发展。 这些模型能够生成连贯且上下文相关的文本,彻底改变了各种应用程序,从聊天机器人和虚拟助手到内容生成和翻译。 然而,尽管它们的能力令人印象深刻,但这些模型往往缺乏精确性,表现出偏见,并且难以进行细致入微的理解。 这就是监督微调 ( SFT )和人类反馈强化学习( RLHF )的重要性 发挥作用的地方。

然而,RLHF“ ……是一个复杂且常常不稳定的过程,首先拟合反映人类偏好的奖励模型,然后使用强化学习对大型无监督 LM 进行微调,以最大化估计的奖励,而不会偏离原始值太远。模型。 ” [1] 。

在本文中, Mantis NLP 和 Argilla 团队共同努力展示 RLHF 的替代方案,更具体地说是直接偏好优化 (DPO) 和后见之明链,包括实际操作 Argilla 的注释平台来准备人类偏好数据 (PD)以及 Transformers 强化学习 (trl) 库,使用 DPO 微调大型语言模型 (LLM)。

有监督微调(SFT)

大型语言模型通常是在大量文本数据上进行预训练的,使它们能够学习语言的统计规律。 然而,他们不具备特定领域的具体知识或对上下文表现出全面的理解。 为了弥补这一差距,需要进行微调,其中涉及在特定领域或特定任务的数据集上训练模型。 微调 允许模型获取专业知识并调整其行为以更好地服务于特定应用程序,使其更加有用和可靠。

监督微调(SFT) 是一种更有针对性的方法,涉及在标记数据集上训练模型,将输入直接映射到所需的输出。 SFT(包括 指令调整 )教导模型根据人类定义做出响应。

为了阐明差异,让我们举个例子。 想象一下,我们正在创建一个对话代理来解决客户支持对您的软件的疑问。 假设您使用基础大型语言模型,例如 Falcon-7B,而您将生成的模型将是其微调版本。

Falcon 可以生成高质量的文本,但它可能与您正在寻找的风格或特异性不匹配,因为它已经过预先训练,可以预测序列中的下一个标记,而不是根据特定任务(机器人)来预测标记模拟您的客户支持团队的回答方式。

这是一个示例输入:

您能写一封电子邮件来回答 HTTP 错误 500 的含义吗?

对此,Falcon(40B版)的回答是:

HTTP 错误 500 通常表示内部服务器错误。 这可能是由多种问题引起的,例如服务器代码或配置问题、内存或 CPU 使用率不足,或者与服务器上运行的其他进程发生冲突。 要解决该问题,您可以尝试重新启动服务器或检查服务器日志以获取有关特定错误消息的更多信息。

响应内容正确,但不符合客户支持消息的要求,通常:

听起来更有礼貌;

有清晰的格式;

专注于提供解决问题的说明;

包含有关如果问题仍然存在该怎么办的信息。

依此类推,该提示的正确响应应该类似于:

尊敬的顾客,

感谢您就遇到的 HTTP 错误 500 问题联系我们的客户支持团队。 我们理解这可能造成的挫败感,我们将竭诚帮助您解决此问题。

HTTP 错误 500 通常表示内部服务器错误。 出现此错误的原因有多种,包括服务器代码或配置问题、内存或 CPU 使用率不足,或者与服务器上运行的其他进程发生冲突。

为了帮助您解决此问题,我们建议您执行以下步骤:

重新启动服务器:...

查看服务器日志:...

如果执行这些步骤后问题仍然存在,请向我们提供您可能遇到的任何其他详细信息或错误消息。 这些信息将极大地帮助我们进一步调查该问题并找到合适的解决方案。

对于由此造成的任何不便,我们再次表示歉意。 我们的专业支持团队致力于立即为您解决此问题。 如果您有任何其他问题或疑虑,请随时与我们联系。 我们随时为您提供帮助。

感谢您的耐心与合作。

最诚挚的问候, 客户支持代表

为了让您的法学硕士生成符合您的风格和内容指南的文本,您需要使用监督微调对它们进行微调。

基于指令的监督微调(SFT)

要对 LLM 进行 SFT,您需要数据。 更具体地说,如果您想微调聊天机器人以成功响应用户请求,则需要 指令数据 。 有许多基于指令的开源数据集(其中大多数具有非商业许可证!),您可以使用。 这个 GitHub 存储库 列出了其中一些:

数据集链接

数据集

类型

语言

尺寸

描述

GPT-4all 数据集

GPT-4all

英语

40 万条条目

OIG、P3 和 Stackoverflow 的一些子集的组合。 涵盖一般 QA、定制创意问题等主题。

红色睡衣-Data-1T

红色睡衣

PT

主要是英语

1.2T代币

5TB

完全开放的预训练数据集遵循 LLaMA 的方法。

OAST1

打开助手

配对、对话

多种语言

(英语、西班牙语等)

66,497 个对话树

一个大型的、人工编写、人工注释的高质量对话数据集。 它的目的是让法学硕士产生更自然的反应。

databricks-dolly-15k

多莉2.0

英语

15K+ 条目

人类编写的提示和响应的数据集,包含开放域问答、头脑风暴、总结等任务。

羊驼数据清理

一些类似羊驼毛/ LLaMA 的型号

英语

/

Alpaca、GPT_LLM 和 GPteacher 的清理版本。

GPT-4-LLM数据集

一些类似羊驼毛的款式

对,

RLHF

英语,

中国人

英文、中文各52K条

9K 条目非自然指令

不是 GPT-4 使用的数据集! 它由 GPT-4 和其他一些 LLM 生成,以实现更好的配对和 RLHF。 它包括 RLHF 风格的指令数据和比较数据。

GP老师

/

英语

20k 条目

数据集包含 GPT-4 生成的目标,并包含许多与 Alpaca 数据集相同的种子任务,还添加了一些新任务,例如角色扮演。

羊驼数据

羊驼、ChatGLM-微调-LoRA、考拉

对话,

英语

52K 条目

21.4MB

由 text-davinci-003 生成的数据集,用于提高语言模型遵循人类指令的能力。

这就是 GPT4all 微调数据集 在 Hugging Face Datasets Viewer 中的样子。 它非常简单:它由一系列提示(第一列)和预期答案/响应(第二列)组成,用于微调模型答案。

微调LLMRLHF和替代方案-2

尽管它们可以用作起点,但这些数据集可能不适合您的特定用例。 如果您想获得具有自己格式的答案(如上一节中包含的格式),您将需要创建自己的数据集。 如果没有合适的工具,数据收集和审查机制可能会非常复杂。

Argilla 的注释平台似乎是一个不错的选择,因为它已经提供了用于整理微调过程数据的选项以及通过人类反馈进行强化学习的偏好数据以及您将在本文中找到的其他替代方案。

此外,您可以查看 Mantis NLP 监督微调教程, 以获取有关使用 trl 库进行监督微调的更详细说明。

微调LLMRLHF和替代方案-3

基于 Argilla 指令的监督微调 (SFT)

由于大多数数据集都具有非商业许可证,虽然我们可以使用它们进行微调而不用于商业用途,但我们可以使用 Argilla 来创建和管理我们自己的指令遵循数据集。

我们甚至可以从使用现有的法学硕士开始综合生成一个数据集,就像斯坦福大学对 Alpaca 所做的那样(参考 https://huggingface.co/datasets/tatsu-lab/alpaca ),他们使用 OpenAI TEXT-DAVINCI-003 来收集集合的响应的提示。 然而,在这样做之前,请务必先检查服务条款 - 如果不是为了研究,OpenAI TOS(作为示例)明确禁止 使用“……服务的输出来开发与 OpenAI 竞争的模型;” (2.c.iii)。

无论我们是综合生成数据集还是从头开始创建数据集,Argilla 都可以用于编辑给定指令的现有完成(如果有),或者只是要求注释者提供对其的响应/完成。

从 Argilla 1.8.0 开始, FEEDBACKDATASET 允许用户创建数据集来专门收集法学硕士的反馈,为数据集字段定义引入更大的灵活性,并允许对同一记录进行多个不同的注释。

FEEDBACKDATASET 在这种情况下,我们将重点关注数据集后面的指令,但您可以在 https://argilla.io/blog/argilla-for-llms 找到有关最新 Argilla 更新的更多信息 。

要创建以下 FEEDBACKDATASET for 指令,我们应该定义数据集中出现的字段,以及我们希望注释者回答的问题,以在微调之前收集他们的反馈。 依此类推,在这种情况下我们需要:

TextField s 为输入。

TextQuestion 要求注释者提供完整的响应或响应编辑(如果有)。 这些将通过现有建议(如果有)来实现,以帮助注释者完成注释过程。

最后,我们应该写下注释指南,注释者需要这些指南才能知道他们应该在风格、礼貌等方面提供什么作为回应,如上所述。

翻译成代码,它看起来像这样:

微调LLMRLHF和替代方案-4

在 Argilla 中运行上述内容,将在 Argilla UI 中生成以下数据集,供注释者开始提供或编辑现有响应(如果有),以便稍后收集以微调我们自己的 LLM 指令。

微调LLMRLHF和替代方案-5

一旦整个数据集被注释,或者一旦我们对注释感到满意(您可以在我们的 分布式工作负载博客文章 中找到一些提示),我们就可以 FEEDBACKDATASET 从 Argilla 下载数据集,并按照我们稍后想要使用的方式对其进行格式化遵循指令的监督微调。

通过人类反馈强化学习

不幸的是,仅 SFT 通常不足以改进大型语言模型以满足特定要求。

有了它,您可以补充预训练法学硕士中可能缺乏的信息,改变风格、结构,教导对不同的输出做出不同的回答。

然而,回答问题总是有多种方法。 最先进的对话模型,例如 ChatGPT,传统上需要一个称为“ 人类反馈强化学习”(RLHF) 的额外步骤。

强化学习是一种范例,其中代理通过接收来自环境的反馈来学习做出决策。 在语言模型的背景下,这种反馈是由评估和评级模型响应的人类审阅者提供的。 通过利用人类的专业知识和判断,强化学习有助于迭代改进模型的性能并微调其响应。

通过人类反馈进行强化学习的过程涉及几个重要步骤:

定义指南 是为了保证在决定输入的好答案和坏答案时有独特的标准。

应训练奖励模型 (RM) ,该模型将评估每个响应的准确性、相关性和对指南的遵守情况。

为了训练 RM,需要选择一些提示并将其发送给人工审核员。 我们称之为 偏好数据(PD)

然后,审阅者与模型进行交互,并手动评估和评级相应的输出。

收集到的反馈(以评级或排名的形式)用于训练 RM。

通过训练 RM,我们可以训练一个 策略优化器 ,这是指导 LLM 微调的必需组件。

我们通过政策优化对法学硕士进行微调。

这种迭代反馈循环允许模型逐渐从人类指导中学习并相应地改进其行为。

偏好数据

此时的主要要求是拥有 偏好数据(PD) 。 偏好数据是提示的选项/替代方案的集合,可以将其发送给一组注释者和/或主题专家 (SME),以便他们根据一些注释指南从最好到最差对其进行评级。

已使用多种方法来创建偏好数据。

为了选择最佳提示,您可以拥有一组预定义的提示,拥有预定义的模板并动态生成一些提示,或者将这些提示与数据库中的随机提示组合起来。

为了选择答案,您可以将提示发送到模型的一个特定版本(您微调的最后一个版本)或不同的检查点。 决定要对多少个答案进行排名:例如,您可以仅使用 2 个答案,并采用最佳-最差的二元排名模式,或者让注释器从 1 到 5 排名。

始终首先定义不同排名级别的注释指南,以尽量减少个人解释并使答案标准化。

您还可以使用多个数据集,可以 在此 GitHub 存储库中 找到它们:

数据集链接

类型

尺寸

描述

OpenAI WebGPT 比较

问答

20k

20k 次比较,其中每个示例包含一个问题、一对模型答案以及每个答案的人类评分偏好分数。 RLHF 数据集用于训练 OpenAI WebGPT 奖励模型。

OpenAI总结

总结

64k

64k 文本摘要示例,包括人工编写的响应和人工评分的模型响应。 OpenAI Learning to Summarize from Human Feedback 论文中使用的 RLHF 数据集。

OpenAssistant 对话数据集 (OASST1)

对话

461k

人工生成、人工注释的助理式对话语料库,包含 35 种语言的 161,000 条消息,注释有 461,000 条质量评级,从而产生 10,000 多个完全注释的对话树

斯坦福人类偏好数据集 (SHP)

问答

指示

385k

385K 人类对 18 个领域的问题/指令的集体偏好,用于训练 RLHF 奖励模型和 NLG 评估模型。

Reddit ELI5

问答

27万

从 3 个 Q&A subreddits 收集的 27 万个问题、答案和分数示例

人类 ChatGPT 比较语料库 (HC3)

问答

60k

大约 24K 个问题的 60k 人工答案和 27K ChatGPT 答案

这就是 OpenAI 总结偏好数据 的样子(再次使用 Hugging Face 数据集查看器):给定 1 个提示 (左侧,一篇文章的总结任务),您有 N 个答案 (右侧,摘要),并带有排名/分数(在这种情况下,有几个轴/指标,例如准确性、覆盖率等,这是最终的聚合指标,称为“ 总体” )

微调LLMRLHF和替代方案-6

收集提示和答案的数据集( 偏好数据 - PD )后,您可以将它们发送给注释者进行审核。

让我们看看如何使用 Argilla 的数据注释平台轻松地执行 PD 数据收集和监督过程。

Argilla 的偏好数据

如上所述,偏好数据意味着从最好到最差对输出进行排序。 Argilla RANKINGQUESTION 在1.12.0版本中引入了 FEEDBACKDATASET 可以用于这种排名的s。

快速回顾一下, FEEDBACKDATASET Argilla 中的 s 需要字段列表和问题列表,以便注释者可以提供这些问题的答案。 在这种情况下,要将数据集的答案排名为上述答案,我们需要以下内容:

TextField 定义提示以及为这些提示生成的答案。

RankingQuestion 要求注释者按照预定义的注释指南,将给定提示的响应从最好到最差进行排名。

翻译成代码,它看起来像这样:

微调LLMRLHF和替代方案-7

在 Argilla 中运行上述内容,将在 Argilla UI 中生成以下数据集,供注释者开始对提示集合的答案进行排名,稍后收集以根据偏好数据训练/微调强化学习模型。

微调LLMRLHF和替代方案-8

排名级别数

偏好数据可以包含从 0 到 N 排名的多个备选方案。ChatGPT 使用了从 A 到 D 排名的 4 个备选方案(见下图)。 然而,简化的方法,如直接偏好优化,只需要对选择与拒绝 进行二元分类 。 这样,您可以将 Argilla 设置为仅显示两个响应( Response-1 和 Reponse-2 ),并选择最好的作为 “选择” ,将最不喜欢的作为 “拒绝”。

查看有关如何使用 Argilla 为 RLHF 准备数据,然后使用 Hugging Face TRL [3] 库训练 RLHF 模型的详细信息,请参见 Argilla 关于 LLM 微调的帖子 [2] 。

用于微调的指令数据与用于强化学习的偏好数据

到目前为止,我们已经看到我们需要 2 个数据集来让基于 LLM 的聊天机器人正常工作:用于微调的指令数据和用于强化学习的偏好数据。 让我们澄清一下差异:

指令 数据 用于微调步骤,由提示和预期答案组成,旨在改进或纠正法学硕士根据提示生成文本的方式。 您甚至可能想在新一代内容上训练模型,例如一段广告、SEO 内容、报告等 - 而模型可能没有经过训练来做到这一点! 这就是指令数据发挥作用的地方,它由带有 1 个提示和 1 个生成示例 的行组成。

偏好 数据 用于训练策略(参见下一节)。 基本上,在这里您不再教模型编写特定的电子邮件、报告或您需要的任何内容。 您正在训练一个策略模型,以使模型能够区分,给定提示的 N 个可接受的答案,这些答案比其他答案更好。 通常,偏好数据是 1 个提示和该提示的 N 个答案的集合,然后针对一组注释者或主题专家进行排名。

ChatGPT 是这样 描述的:

微调LLMRLHF和替代方案-9

现在让我们讨论如何使用偏好数据来训练策略,以优化答案的质量,同时考虑到提供的排名。

奖励模型和政策优化器

RLHF 给定制 LLM 的培训过程增加了很大的复杂性。 总结一下我们上面描述的内容。 这张图片总结了您需要做的一切:

微调LLMRLHF和替代方案-10

总而言之,它需要以下工件:

定义什么是好答案或坏答案的 注释指南。

偏好数据: 为人工贴标者选择提示。 为评估者生成输出。

奖励 模型(RM) ;

一个 策略,根据 RM 的数据进行优化 ;

很明显,这个过程非常复杂,并且在人力和计算资源方面非常昂贵。 但也有一些替代方案将模型微调(SFT)与奖励建模相结合,从而大大简化了流程。 我们来谈谈他们吧。

前面我们分析了对预训练的 LLM 进行监督微调所需的工作以及指令数据对于此步骤的重要性。 同 时我们描述了强化学习的过程,这需要高质量的偏好数据。

这个过程可能看起来有点复杂,而且非常需要数据。 也许现在你明白为什么它被描绘成顶部有一颗樱桃的修格斯怪物了。 由 twitter.com/anthrupad 提供

微调LLMRLHF和替代方案-11

然而,随着社区开始致力于简化流程,我们开始看到隧道尽头的一些曙光。 我们来谈谈 RLHF 的两种替代方案。

直接偏好优化 (DPO)

在 《直接偏好优化:你的语言模型是秘密奖励模型》 [1] 中,作者介绍了一种称为 直接偏好优化 (DPO) 的方法,用于实现对大规模无监督语言模型 (LLM) 的精确控制。 如上所述,现有方法依赖于人类反馈强化学习 (RLHF),基于训练奖励 模型 并使用 近端策略优化 (PPO) (如我们的 第二篇 文章中所述) , 以使 LM 的输出与人类偏好保持一致。 但这种方法非常复杂且不稳定。

DPO 通过将其视为人类偏好数据的分类问题来解决约束奖励最大化问题。 该算法稳定、高效且计算量轻,无需奖励模型拟合、LM 采样和大量超参数调整。

与训练 奖励模型 然后 基于 RM(使用 PPO 通过人类反馈进行强化学习 — 图左侧)优化 策略的现有方法不同,DPO 直接将偏好损失定义为策略的函数 (右)。 简而言之,它消除了首先训练奖励模型的要求。

微调LLMRLHF和替代方案-12

DPO 管道有两个阶段:

对感兴趣的数据集运行监督微调 (SFT)。

使用偏好数据 (最好来自与 SFT 示例相同的分布) 对步骤 1 中的模型运行偏好学习

如您所见,训练 策略 仍然需要 偏好数据 。 但它摆脱了首先训练奖励模型,然后优化 LM 策略,然后微调 LLM 的复杂性。

这是如何实现的? 这个想法是使用 相同的法学硕士作为奖励模型。 在微调期间, DPO 使用二元交叉熵目标来优化策略。 它使用人类偏好数据来确定哪些响应是首选的,哪些响应不是。 通过将模型的响应与首选响应进行比较,它可以调整策略以提高其性能。

事后诸葛亮链

在《Chain of Hindsight Aligns Language Models with Feedback》 [5] 论文中提出了另一个有趣的想法,再次使用法学硕士作为优化政策的手段。 这次的关键思想是,人类能够以比较的形式从丰富而详细的反馈中学习。

在这种情况下,我们使用 偏好数据 来补充输入。 作者使用了 PD 数据集中有 2 个答案的示例,一个有帮助,另一个没有帮助。 有帮助的答案会添加在“有帮助的答案:”之后,无帮助的答案也会以类似的方式添加,都是在输入之后。

微调LLMRLHF和替代方案-13

在训练期间,模型会收到由输入和对比数据( 有用与无用、好与坏 等)组成的反馈,如我们上面所表达的。 该模型可以预测与最佳替代方案更匹配的输出。 损失应用于相应的输出“{一个好答案}”和“{一个坏答案}”。 在推理时,正反馈“Good:”指示模型生成所需的输出。

总之,通过以对比信息的形式对人类偏好数据应用 SFT 和 PPO,借助 Chain of Hindsight,我们可以利用 LLM 的力量来优化策略,而无需训练外部奖励模型。

直接偏好优化:实践。

通过上面解释的两种技术,我们将展示应用直接偏好优化来微调法学硕士的简单步骤。

在以下链接中,您将能够 在 TRL (变压器强化学习)库中找到新的 DPO Trainer模块。

文档中描述的使用 DPO Trainer 代替 RLHF 的步骤如下:

关于 SFT,他们确实提到这是第一个要求,正如我们之前评论的那样(...第一步始终是训练 SFT 模型,以确保我们训练的数据对于 DPO 算法是分布的)。 这也非常重要,因为 SFT 中的数据应该是分布式的,以便能够运行 DPO(或任何其他技术)。

之后,他们描述了偏好数据格式。 他们使用 Anthropic/hh-rlhf 的格式,如上所述,该格式使用接受-拒绝的二元分类:

微调LLMRLHF和替代方案-14

数据由三个字段组成:

提示 ,包含上下文输入。

selected ,包含相应的选择响应

returned ,包含被拒绝的答案。

微调LLMRLHF和替代方案-15

最后,他们用几行代码描述了如何配置 DPOTrainer 类并运行训练。 这是您需要的:

model ,模型的微调版本(SFT 的结果);

model_ref ,正在微调的模型的非微调版本。 通常它是您在 SFT 之前使用的原始检查点。

Training_args , Transformer 库中存在的相同 TrainerArguments 类对象,包含训练参数列表,例如 per_device_train_batch_size、max_steps、gradient_accumulation_steps、learning_rate、evaluation_strategy、output_dir 等 。

beta ,DPO 损失的温度参数,通常在 0.1 到 0.5 范围内。

train_dataset ,Dataset 类对象内采用上述格式的偏好数据。

tokenizer ,从 model 实例化的 tokenizer(通常使用 Autotokenizer) 。

微调LLMRLHF和替代方案-16

这样,唯一需要运行的命令就是 您准备好了! DPO_TRAINER.TRAIN()

小结

使用特定准则微调用于生成文本的大型语言模型 (LLM) 在各种应用程序中非常有用。 通过提供具体的指导方针,我们可以塑造法学硕士的输出,以符合我们的预期目标,确保更准确和受控的文本生成。

这个过程历来非常复杂,需要首先训练奖励模型,然后优化法学硕士的政策。

然而,最近的方法,例如直接策略优化 (DPO) 和事后诸葛亮 (CoH),已经展示了如何使用大语言作为奖励模型。

更具体地说,我们前面已经展示了:

如何使用 Argilla 创建监督微调步骤的数据以及偏好数据

如何使用 Hugging Face 的 库,更具体地说 ,是利用偏好数据进行策略优化。 trl DPOTrainer

在此我们想向您介绍人工智能反馈强化学习 (RLAIF),它克服了 RLHF 的主要问题: 对人类标记数据的需求。

偏好数据以及在哪里可以找到它

正如我们在前面所看到的,RLHF 是一种使语言模型与人类偏好保持一致的有效技术,但其主要障碍是它对高质量人类偏好数据的依赖。 这一事实自动提出了这个人工智能驱动的世界中的下一个问题:人工生成的标签可以成为可行的替代品吗? 这就是 Anthropic 在其出版物《Constitutional AI: Harmless from AI Feedback》 (Bai et. al, 2022) 中设计这种方法时首先质疑自己的问题,他们在其中试验了训练无害人工智能助手的方法,并引入了宪法人工智能的概念。

该方法中使用的唯一人类数据是宪法,这是一组人为策划的原则,用于影响所产生的人工智能助手的行为。 在这个模式中,人工智能助手在宪法的指导下结合了来自另一个法学硕士而不是人类的反馈。 他们主要发现了三个好处:卓越的性能、更少的主观性和更高的可扩展性。 然而,在第一种方法中,人类和人工智能反馈之间没有进行直接比较,留下了 RLAIF 是否是合适替代方案的问题。

在 Anthropic 的基础上,Google 研究 (Lee 等人,2023) 证明,RLAIF 在多个 NLP 任务中实现了卓越的性能,并且在强化学习阶段直接提示 LLM 提供奖励分数可能优于规范的奖励模型设置,这使得过程不那么复杂。

微调LLMRLHF和替代方案-17 上图描绘了 RLAIF,下图描绘了 RLHF。 来自 Lee 等人,2023 年。

RLAIF 如何运作?

与 RLHF 相反,这种方法生成自己的偏好数据集。 给定一个提示和对该提示的两个响应(在提示响应元组中,复制提示),AI 反馈的奖励模型会根据宪法为每一对生成一个分数。 人工智能生成的偏好数据不仅仅决定哪个答案更好或更差(人类注释者会做什么),而是提供一个介于 0 和 1 之间的偏好数值。

微调LLMRLHF和替代方案-18 对提示的响应示例,其中包含奖励模型给出的数字偏好反馈。 来自 https://www.assembleai.com/blog/how-reinforcement-learning-from-ai-feedback-works/

微调LLMRLHF和替代方案-19 向 LLM 提供提示以生成用于摘要的 AI 偏好标签的示例。 序言有效地充当了宪法。 还给出了注释的示例。 然后,用未标记的示例填充文本、摘要 1 和摘要 2,并通过计算生成第一个摘要或第二个摘要的标记的对数概率的 sofmax 来获得偏好分布。 来自李等人。 等,2023。

其余过程与 RLHF 类似,因为人工智能生成的偏好数据用于训练奖励模型,然后用于对法学硕士进行强化学习。

RLAIF 通过三个指标进行评估:

AI 标签对齐,衡量有关人类偏好的 AI 偏好数据的准确性。

胜率,用于评估人工智能生成的策略优于经典 RLHF 方法的频率

无害率,量化人类评估者认为无害的响应的百分比。

蒸馏或直接 RLAIF

通过 LLM 标记偏好后,在规范的 RLAIF 设置中,根据获得的软标签(数字,从 0 到 1)训练奖励模型。 然后,将交叉熵损失应用于奖励分数的 softmax。 softmax 将奖励模型输出的分数转换为概率分布。 最后,进行强化学习来训练 RLAIF 政策模型,使用 RM 模型为模型响应分配奖励。

然而,Lee 等人研究的另一种方法。 就是直接用LLM的反馈作为奖励。 然后,提示LLM对生成的质量进行1到10之间的评分。提示中引入了对生成进行评分的维度,以便LLM做出更好的判断。 然后,从 1 到 10 计算每个分数的可能性,并标准化为概率分布,然后用于计算加权分数,该加权分数再次标准化为范围 -1, 1 。 这个分数可以直接作为奖励。

RLAIF vs RLHF

在分析的三个任务(摘要、有帮助的对话生成和无害对话生成)中,RLAIF 取得了与 RLHF 相同或更好的性能。 RLAIF 和 RLHF 政策往往比 SFT 政策产生更长的响应。 目前最先进的研究结果表明,RLAIF 是 RLHF 的可行替代方案,同时不依赖于人类数据。 它的主要好处是降低成本,估计比获得同等的人工注释便宜 10 倍。

微调LLMRLHF和替代方案-20 与 SFT 相比,人类评估者更喜欢使用 RLAIF 和 RLHF 来进行摘要和对话生成。 RLAIF 与 RLHF 同等受青睐。 在无害性方面,RLAIF 优于两者。

就定性观察而言,RLAIF 和 RLHF 通常会产生相似的摘要,但存在一些差异:

RLAIF 会产生幻觉,而 RLHF 则不会。 当法学硕士提示与输入或预期响应无关的信息时,就会发生幻觉,就好像它是在编造的一样。 在 Lee 等人的一个例子中,摘要指出作者年龄为 20 岁,但从未提及。

RLAIF 有时会产生比 RLHF 更不连贯或语法不正确的摘要。

微调LLMRLHF和替代方案-21 SFT、RLHF 和 RLAIF 策略生成的摘要示例。 RLHF 和 RLAIF 生成的摘要质量比 SFT 更好。

小结

RLAIF 取得了与 RLHF 相似或更好的结果,同时将成本保持在最低限度,并且它们以相似的速度受到人类的青睐。 即使 RLAIF 的潜力仍存在悬而未决的问题,但目前它是一个可行的替代方案,并且在资源匮乏的环境中,可以成为生成最先进的法学硕士的关键工具。 要继续深入研究 RLAIF,您可以查看 Sharma 等人对当前最新技术的评估 等人。 。

前面引入了人工智能反馈强化学习 (RLAIF),通过创建自己的偏好数据集来应对需要人类标记数据的挑战。

为什么要进行自我微调 (SPIN)?

在之前的讨论中,我们强调了人们对允许法学硕士提高其表现的方法越来越感兴趣,而无需依赖对新注释数据(特别是人工注释数据)的持续需求。 为了应对这一挑战,已经开发了 诸如已经提到的 RLAIF之类的解决方案。 接下来,我们将介绍 SPIN 。

我们能否让薄弱的法学硕士在不获取额外人工注释数据的情况下自我改进?

这是研究小组要解决的问题。 答案是肯定的。

SPIN 更进一步,独立于人类或复杂的法学硕士注释者。 受到 AlphaGo Zero 自我对弈机制的启发,它的工作原理是 与之前的版本竞争,无需任何直接监督并创建自己的训练数据。 通过连续几轮的自我对弈,模型逐渐完善,旨在使其反应越来越接近人类的反应。

该方法克服了 SFT 的限制,显着提高了模型在各种基准测试中的性能,例如 HuggingFace Open LLM Leaderboard 和 MT-Bench。 然而,SPIN 面临着一个 限制 :它的成功取决于法学硕士的输出与目标人类生成的数据分布的匹配。 这意味着法学硕士通过微调可以提高多少,这与训练数据的质量直接相关。

微调LLMRLHF和替代方案-22

SPIN 是如何运作的?

SPIN可以理解为一个两人游戏,所以我们来定义一下他们的“规则”。 有关更多信息,您可以在GitHub 上查看可用的实现 。

玩家角色

主要参与者 :它是当前的法学硕士,通过对其进行微调以支持目标数据集的答案而不是其先前版本产生的答案而获得。 其目标是辨别法学硕士生成的响应和人类生成的响应。

对手 :是上一次迭代的旧法学硕士。 它的目的是产生与人类反应非常相似的反应。

回合

游戏从选择 SFT LLM 及其 QA 训练数据集开始。 然后,重复接下来的步骤,并且模型在每一“轮”中切换角色:

生成新的综合答案: 在第一次迭代期间,应用此 SFT 模型从 SFT 数据集中生成问题的替代答案。 对于后续周期,采用最新的微调模型,旨在最大限度地提高其预期性能。 为了防止与先前模型版本的显着偏差并确保稳定性,使用了 Kullback-Leibler (KL) 正则化项。

创建训练数据集 :创建一个新的训练数据集,其中包含原始(接受)答案与新生成的合成(拒绝)答案对。

在创建的训练数据集上微调 LLM :微调新模型版本,旨在通过区分其生成的响应和原始数据集中的人类响应来增强其响应策略。 这种区别是使用逻辑损失来评估的,这有助于防止函数绝对值的过度增加。

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

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