LLMs 奖励剥削 RLHF: Reward hacking

news2025/1/21 9:01:11

让我们回顾一下你到目前为止所学到的内容。RLHF是一个微调过程,用于使LLM与人类偏好保持一致。在这个过程中,您利用奖励模型来评估LLM对提示数据集的完成情况,根据人类偏好指标(如有帮助或无帮助)进行评估。
在这里插入图片描述

接下来,您使用强化学习算法,即PPO,在基于当前版本的LLM生成的完成情况上,根据奖励对LLM的权重进行更新。您将在多个迭代中使用许多不同的提示和模型权重的更新来执行此周期,直到获得所期望的对齐程度。
在这里插入图片描述

最终结果是一个与人类对齐的LLM,您可以在应用程序中使用。
在这里插入图片描述

在强化学习中可能出现的一个有趣问题被称为奖励欺骗,代理程序通过偏好最大化接收到的奖励的行动来欺骗系统,即使这些行动与最初的目标不太一致。在LLM的背景下,奖励欺骗可以表现为将词语或短语添加到完成中,以使度量对齐的指标获得高分,但降低了语言的整体质量。例如,假设您正在使用RHF来去毒并指导模型。您已经训练了一个可以执行情感分析并将模型完成分类为有毒或无毒的奖励模型。您从培训数据中选择了一个提示,这个提示是“This product is… 这个产品是”,然后将其传递给指导LLM,生成了一个完成。“…complete garbage 这个完成是完全垃圾的,不太好,您可以期望它会获得很高的有毒评分。”完成由毒性奖励模型处理,该模型生成分数,然后将其馈送给PPO算法,PPO算法使用该分数来更新模型权重。
在这里插入图片描述

随着RHF的迭代,LLM将会更新以生成更少有毒的响应。
在这里插入图片描述

然而,由于策略试图优化奖励,它可能会偏离初始语言模型太远。
在这里插入图片描述

在这个示例中,模型开始生成它已经学会了会导致极低毒性评分的完成,包括诸如“most awesome 最棒的”和“most incredible 最不可思议的”等短语。这种语言听起来非常夸张。模型还可能开始生成毫无意义、语法不正确的文本,仅仅因为它恰好最大化了奖励,这些输出显然没有什么用。
在这里插入图片描述

为防止奖励欺骗的发生,您可以使用初始的指导LLM作为性能参考。我们称其为参考模型。参考模型的权重被冻结,并且在RHF的迭代过程中不会更新。这样,您始终保持单一的参考模型进行比较。在培训期间,每个提示都传递给两个模型,由参考LLM和中间LLM更新模型生成完成。在这一点上,您可以比较这两种完成并计算称为Kullback-Leibler散度(或简称KL散度)的值。KL散度是衡量两个概率分布差异的统计量。您可以将其用于比较两个模型的完成,并确定更新的模型与参考模型相比已经发生了多大的偏差。
在这里插入图片描述

不要太担心这是如何工作的细节。KL散度算法包含在许多标准机器学习库中,您可以在不了解其背后所有数学的情况下使用它。您实际上将在本周的实验中使用KL散度,以便自己看到它的工作原理。KL散度是针对整个LLM词汇表中的每个生成标记进行计算的。这可以很容易地是成千上万个标记。但是,使用softmax函数,您已将概率数量减少到远低于完整词汇表大小的水平。请记住,这仍然是一个相对计算密集的过程。您几乎总是会受益于使用GPU。

一旦计算了两个模型之间的KL散度,您将在奖励计算中添加这个项。如果RL更新的模型偏离参考LLM并生成了完全不同的完成,将会对其进行惩罚。
在这里插入图片描述

请注意,现在您需要完整的LLM副本来计算KL散度,即冻结的Reference Model LLM和口头更新的PPO LLM。顺便说一下,您可以从与PEFT adapter的关系中受益。
在这里插入图片描述

在这种情况下,您只需更新路径适配器的权重,而不是LLM的全部权重。这意味着您可以重用相同的基础LLM作为参考模型和更新的PPO模型,后者使用训练过的路径参数进行更新。这将在训练期间减少内存占用约一半。在这里插入图片描述

我知道这里有很多内容需要理解,但不要担心,带路径的RHF将在实验中介绍。您将有机会亲自看到它的运作并尝试它。完成模型的RLHF对齐后,您将希望评估模型的性能。您可以使用总结数据集来量化毒性的降低,例如,在课程早期您看到的对话数据集。您将在这里使用的数字是毒性分数,这是平均完成中的负类别(在这种情况下是有毒或恶意响应)的概率。如果RLHF成功减少了LLM的毒性,这个分数应该会下降。首先,您将通过使用一个可以评估有毒语言的奖励模型来评估总结数据集的原始指导LLM的完成来创建一个基线毒性分数。然后,您将评估您新的与人对齐的模型在相同的数据集上,并比较分数。
在这里插入图片描述

在这个示例中,经过RLHF后,毒性分数的确有所下降,表明LLM的毒性较低,对齐效果更好。同样,您将在本周的实验中看到所有这些。

Reference

https://www.coursera.org/learn/generative-ai-with-llms/lecture/Cux3s/rlhf-reward-hacking

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1064036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计开发笔记6:基于QT的Modbus RTU从站

Modbus是一种常见的工业系统通讯协议。在我们的设计开发工作中经常使用到它。作为一种主从协议,在上一篇我们实现了Mobus RTU主站工具,接下来这一篇中我们将简单实现一个基于QT的Mobus RTU从站工具。 1、概述 Modbus RTU从站应用很常见,有一…

山西电力市场日前价格预测【2023-10-07】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-07)山西电力市场全天平均日前电价为422.87元/MWh。其中,最高日前电价为1500.00元/MWh,预计出现在18: 15-18: 45。最低日前电价为221.56元/MWh&#x…

【JavaEE】_HTTP请求与HTTP响应

目录 1. HTTP协议 2. HTTP请求 2.1 HTTP请求首行 2.2 URL 2.3 HTTP方法 2.3.1 GET请求 2.3.2 POST请求 2.3.3 GET与POST的区别 2.3.4 其他方法 2.4 请求报头header 2.4.1 Host: 2.4.2 Content-Length与Content-Type: 2.4.3 User-Agent&…

JavaScript系列从入门到精通系列第十七篇:JavaScript中的全局作用域

文章目录 前言 1:什么叫作用域 一:全局作用域 1:全局变量的声明 2:变量声明和使用的顺序 3:方法声明和使用的顺序 前言 1:什么叫作用域 可以起作用的范围 function fun(){var a 1; } fun();consol…

练[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei 文章目录 [ZJCTF 2019]NiZhuanSiWei掌握知识解题思路代码分析1代码分析2 关键paylaod 掌握知识 ​ data伪协议和php伪协议的使用,反序列化,代码审计,文件包含,file_get_contents函数绕过 解题思路 打开题目链接&…

【计算机操作系统慕课版】第二章:进程的控制与描述

注:博主斥巨资买到了2021版本慕课版的pdf 如果需要的话可以来私聊我哦~ 操作系统第二章知识点目录: 一、前言:前驱图与程序执行 1.1前驱图(看箭头就行,名字高级,底层简单) 1.2程序顺序执行 1…

Umijs介绍

今天我们来看 umijs 我们访问官网 https://umijs.org/ 这是一个可 插拔的企业级 React框架 当然 你也可以选择 React 的一个脚手架 但是 这样就有很多需要考虑的东西 用这个umi 很多点 我们就不需要考虑了 框架已经帮我们配置好了 这边 我们点击快速上手的一个 指南 我们可…

vue-img-cutter 实现图片裁剪[vue 组件库]

借助 vue-img-cutter 可以在网页端实现图片裁剪功能,最终功能效果如下: 组件 npm 安装 npm install vue-img-cutter2 --save-dev # for vue2 npm install vue-img-cutter3 --save-dev # for vue3vue-img-cutter使用 template模板标签模块&#xff0c…

用Python操作MySQL教程!干货满满!

python操作数据库介绍 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL S…

Spring基础以及核心概念(IoC和DIQ)

1.Spring是什么 Spring是包含了众多工具方法的IoC容器 2.loC(Inversion of Control )是什么 IoC:控制反转,Spring是一个控制反转容器(控制反转对象的生命周期) Spring是一个loC容器,我们之前学过的List/Map就是数据存储的容器,to…

大数据Doris(五):开始编译 Doris

文章目录 开始编译 Doris 一、下载Doris的安装包 二、解压缩 三、上传配置文件

linux常见命令以及jdk,tomcat环境搭建

目录 Is pwd cd touch cat echo vim 复制粘贴 mkdir rm cp jdk部署 1. yum list | grep jdk进行查找​编辑 2.安装​编辑 3.再次确认 4.判断是否安装成功 tomcat安装 1.下载压缩包,把压缩包上传至linux(可能需要yum install lrzsz) 2.解压缩unzip 压缩包名&…

❓“想创作音乐,但不会编曲?”FL Studio 21 轻松帮你编曲

❓“想创作音乐,但不会编曲?” ❓“不知道如何将各种音乐元素组合起来?” 5个步骤,轻松编曲! 想要成为音乐创作高手,编曲是必不可少的技能。今天为大家带来5个编曲的步骤,让你轻松掌握编曲技巧…

[论文工具] LaTeX论文撰写常见用法及实战技巧归纳(持续更新)

祝大家中秋国庆双节快乐! 回过头来,我们在编程过程中,经常会遇到各种各样的问题。然而,很多问题都无法解决,网上夹杂着各种冗余的回答,也缺乏系统的实战技巧归纳。为更好地从事科学研究和编程学习&#xff…

GEE错误——Line 2: ee.Image(...).filterBounds is not a function

错误: 我正在尝试通过应用过滤器绑定和过滤器日期来提取多个区域的平均碳含量。我得到的错误是:filterbound 不是一个函数。 我认为问题在于我使用的是 ee.Image 而不是 ee.ImageCollection。我知道如何解决这个问题吗?谢谢 这里的代码&am…

字符串和内存函数

目录 strlen 模拟实现 长度不受限字符串函数 strcpy 模拟实现 ​编辑 strcat 模拟实现 strcmp 模拟实现 长度受限字符串函数 strncpy 模拟实现 strncat strncmp strstr 模拟实现 strtok strerror perror 字符分类函数 字符转换 示例: ​编辑内…

10.4 认识Capstone反汇编引擎

Capstone 是一款开源的反汇编框架,目前该引擎支持的CPU架构包括x86、x64、ARM、MIPS、POWERPC、SPARC等,Capstone 的特点是快速、轻量级、易于使用,它可以良好地处理各种类型的指令,支持将指令转换成AT&T汇编语法或Intel汇编语…

C++:模板进阶与继承

模板进阶与继承 模板进阶1.非类型的模板参数2.模板的特化2.1特化的概念2.2函数模板特化2.3类模板特化2.4全特化和偏特化2.4.1全特化2.4.2偏特化 3.模板的分离编译3.1同文件分离3.2不同文件下分离 继承1.继承的概念和定义1.1继承的概念1.2继承的定义1.2.1定义格式1.2.2继承关系和…

哈希应用之位图

文章目录 1.位图概念2.面试题引入3.代码解决[配注释]4.位图应用4.1找到100亿个整数里只出现一次的整数4.2找两个分别有100亿个整数的文件的交集[只有1G内存]1.法一[使用于数据量<42亿]2.法二[适用于数据量大>42亿]3.在一个有100亿个int的文件中找到出现次数不超过2次的所…

自动驾驶技术的基础知识

自动驾驶技术是现代汽车工业中的一项革命性发展&#xff0c;它正在改变着我们对交通和出行的理解。本文将介绍自动驾驶技术的基础知识&#xff0c;包括其概念、历史发展、分类以及关键技术要素。 1. 自动驾驶概念 自动驾驶是一种先进的交通技术&#xff0c;它允许汽车在没有人…