LLMs: 强化学习从人类反馈中学习Reinforcement learning from human feedback (RLHF)

news2024/12/23 19:13:14

让我们考虑一下文本摘要的任务, 即使用模型生成一段简短的文本,捕捉 较长的文章中最重要的观点。 您的目标是通过向模型 展示人工生成的摘要示例,使用微调来提高模型的总结能力。 2020年,OpenAI的研究人员发表了一篇论文,探讨了使用 人工反馈进行微调来训练模型撰写文本文章的简短摘要。 在这里,你可以看到,与 预训练模型、 指令微调模型甚至参考人类基线相比,根据人类反馈进行微调的模型产生的响应效果更好。
在这里插入图片描述
一种使用人类反馈对大型语言模型进行微调的流行技术 称为从人类反馈中进行强化学习,Reinforcement learning from human feedback (RLHF)。

顾名思义,RLHF使用强化学习( 简称RL)使用人类反馈数据对LLM进行微调, 从而生成更符合人类偏好的模型。 您可以使用 RLHF 来确保模型生成的输出能够 最大限度地提高输入提示的实用性和相关性。 也许最重要的是,RLHF可以帮助最大限度地减少可能的伤害。 你可以训练你的模型,让它给出承认其局限性的注意事项,并 避免使用有害的语言和话题。
在这里插入图片描述

RLHF的一个可能令人兴奋的应用是LLM的个性化, 在这种应用中,模型通过持续的反馈过程来学习每个用户的偏好。 这可能会带来令人兴奋的新技术,例如个性化的学习 计划或个性化的人工智能助手。

但是,为了了解这些未来的应用是如何 实现的,让我们首先仔细研究一下RLHF的工作原理。 如果你不熟悉强化学习, 这里有一些最重要的概念的高级概述。

强化学习是一种机器学习,在这种学习中,代理人 通过在环境中采取行动来学习做出 与特定目标相关的决策,目的是最大限度地提高累积奖励的某些概念。
在这里插入图片描述

在这个框架中,代理人通过 采取行动、观察由此产生的环境变化以及 根据其行动结果获得奖励或处罚,不断从其经验中吸取教训。 通过迭代此过程,代理商会逐渐完善其策略或 政策,以做出更好的决策并增加成功的机会。
在这里插入图片描述

说明这些想法的一个有用例子是训练模型来玩井字游戏。 让我们来看看。 在此示例中,代理是充当 Tic-Tac-Toe 玩家的模型或策略。 它的目标是赢得比赛。 环境是三乘三的游戏板, 任何时候的状态都是棋盘的当前配置。 动作空间包括玩家可以 根据当前棋盘状态选择的所有可能位置。 代理通过遵循名为 RL 策略的策略来做出决策。 现在,当代理采取行动时,它会根据行动 走向胜利的有效性来收集奖励。 强化学习的目标是让代理人学习在 给定环境下的最佳策略,从而最大限度地提高他们的回报。 这个学习过程是迭代的,涉及反复试验。
在这里插入图片描述

最初,代理会随机执行一个导致新状态的操作。 从这个状态开始 ,代理继续通过进一步的行动探索后续的状态。 一系列动作和相应的状态形成一个布局, 通常称为部署。 随着代理积累经验,它会逐渐发现能够产生 最高长期奖励的动作,最终在游戏中取得成功。
在这里插入图片描述

现在让我们来看看如何将 Tic-Tac-Toe 示例扩展 到使用 RLHF 微调大型语言模型的情况。 在这种情况下,代理人指导行动的政策是Instruct LLM ,其目标是生成被认为 符合人类偏好的文本。 例如,这可能意味着该文本有用、准确且无毒。 环境是模型的上下文窗口 ,在这个空间中可以通过提示输入文本。 模型在采取行动之前考虑的状态是当前上下文。 这意味着当前包含在上下文窗口中的任何文本。 这里的操作是生成文本的行为。 这可以是单个单词、一个句子或更长的格式文本, 具体取决于用户指定的任务。 动作空间是token词汇,意思是 模型可以选择生成完成的所有可能的标记。
在这里插入图片描述

Instruct LLM如何决定生成序列中的下一个代币,取决于 其在训练期间所学语言的统计表示。 在任何给定时刻,模型将采取的行动,即 它接下来要选择哪个标记,都取决于上下文中的提示文本和 词汇空间上的概率分布。 奖励是根据完成情况与人类 偏好的密切程度来分配的。

鉴于人类对语言的反应各不相同, 确定奖励比井字游戏示例更为复杂。 你可以做到这一点的一种方法是让人类根据 某种对齐度量标准来评估模型的所有完成情况, 例如确定生成的文本是有毒还是无毒。 此反馈可以表示为标量值,可以是零或一。
在这里插入图片描述

然后迭代更新 LLM 权重,以最大限度地提高 从人类分类器获得的奖励, 从而使模型能够生成无毒的补全。

但是,获取人工反馈可能既耗时又昂贵。 作为一种实用且可扩展的替代方案,您可以使用一种 称为奖励模型的附加模型来对Instruct LLM的输出进行分类并评估与人类偏好的一致程度。 你将从少量的人类示例开始, 通过传统的监督学习方法训练二级模型。 训练完成后,你将使用奖励模型来评估 LLM 的输出并 分配奖励值,该值反过来又被用来更新 LLM 的权重并 训练一个新的人类对齐版本。
在这里插入图片描述

在评估模型完成情况时,权重的确切更新 方式取决于用于优化策略的算法。 不久你将更深入地探讨这些问题。 最后,请注意,在语言建模的背景下, 动作和状态的顺序被称为推出, 而不是经典强化学习中使用的术语 playout。

在这里插入图片描述

奖励模型是强化学习过程的核心组成部分。它对从人类反馈中学到的所有偏好进行编码,并且 在模型如何通过多次迭代更新权重方面起着核心作用。 在下一个视频中,您将看到该模型是如何训练的,以及在 强化学习过程中如何使用它对模型的输出进行分类。 让我们继续看看。

参考

https://www.coursera.org/learn/generative-ai-with-llms/lecture/NY6K0/reinforcement-learning-from-human-feedback-rlhf

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

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

相关文章

【SQL】mysql创建定时任务执行存储过程--20230928

1.先设定时区 https://blog.csdn.net/m0_46629123/article/details/133382375 输入命令show variables like “%time_zone%”;(注意分号结尾)设置时区,输入 set global time_zone “8:00”; 回车,然后退出重启(一定记得重启&am…

定时任务管理平台青龙 QingLong

一、关于 QingLong 1.1 QingLong 介绍 青龙面板是支持 Python3、JavaScript、Shell、Typescript 多语言的定时任务管理平台,支持在线管理脚本和日志等。其功能丰富,能够满足大部分需求场景,值得一试。 主要功能 支持多种脚本语言&#xf…

《动手学深度学习 Pytorch版》 7.6 残差网络(ResNet)

import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l7.6.1 函数类 如果把模型看作一个函数,我们设计的更强大的模型则可以看作范围更大的函数。为了使函数能逐渐靠拢到最优解,应尽量使函数嵌套&…

Java 基于 SpringBoot 的在线学习平台

1 简介 基于SpringBoot的Java学习平台,通过这个系统能够满足学习信息的管理及学生和教师的学习管理功能。系统的主要功能包括首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信息…

F12报错前端对应请求接口未在NetWork显示

问题背景 今天看到一个接口在部分情况下为正常渲染数据 发现是后端发送数据有问题,但是在NetWork里面怎么都找不到 问题原因 翻看代码,发现是一种异步请求 内部报错了,所以浏览器看不到接口 具体情况 翻看控制台: 发现属性未…

QT用户登录注册,数据库实现

登录窗口头文件 #ifndef LOGINUI_H #define LOGINUI_H#include <QWidget> #include <QLineEdit> #include <QPushButton> #include <QLabel> #include <QMessageBox>#include <QSqlDatabase> //数据库管理类 #include <QSqlQuery> …

【力扣每日一题】2023.9.28 花期内花的数目

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个二维数组来表示花期&#xff0c;在一段花期之内花是开的。另外给我们一个一维数组表示来人的时间&#xff0c;要我们返回一个一…

使用Vue3+elementPlus的Tree组件实现一个拖拽文件夹管理

文章目录 1、前言2、分析3、实现4、踩坑4.1、拖拽辅助线的坑4.2、数据的坑4.3、限制拖拽4.4、样式调整 1、前言 最近在做一个文件夹管理的功能&#xff0c;要实现一个树状的文件夹面板。里面包含两种元素&#xff0c;文件夹以及文件。交互要求如下&#xff1a; 创建、删除&am…

三子棋小游戏(简单详细)

设计总体思路 实现游戏可以一直玩&#xff0c;先打印棋盘&#xff0c;玩家和电脑下棋&#xff0c;最后分出胜负。 如果编写较大的程序&#xff0c;我们可以分不同模块 例如这个三子棋&#xff0c;我们可以创建三个文件 分别为&#xff1a; game.h 函数的声明game.c 函数…

求臻医学:乳腺癌治疗与基因检测 探索个性化医疗的未来

乳腺癌是全球女性最常见的恶性肿瘤&#xff0c;2020年全球新发乳腺癌病例约为230万&#xff0c;发病率超过肺癌&#xff0c;位居全部恶性肿瘤首位&#xff01;本文将为您总结乳腺癌的治疗策略与基因检测&#xff0c;揭示个性化医疗的重要意义。 乳腺癌的诊疗 早期乳腺癌通常不…

小程序echarts折线图去除圆圈

如图&#xff0c;默认的折线图上面是有圆圈的&#xff0c;鼠标放上去或者手指触摸的话会有对应的文字出现&#xff0c;但很多时候我们不需要这个圆圈&#xff0c;怎么办呢&#xff0c;其实很简单&#xff0c;只要在 series 中设置属性 showSymbol 为false 就好啦 symbol: none,…

SpringCloud Gateway--Predicate/断言(详细介绍)下

&#x1f600;前言 本篇博文是关于SpringCloud Gateway–Predicate/断言&#xff08;详细介绍&#xff09;下&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以…

(三)Python变量类型和运算符

所有的编程语言都支持变量&#xff0c;Python 也不例外。变量是编程的起点&#xff0c;程序需要将数据存储到变量中。 变量在 Python 内部是有类型的&#xff0c;比如 int、float 等&#xff0c;但是我们在编程时无需关注变量类型&#xff0c;所有的变量都无需提前声明&#x…

从C语言到C++:C++入门知识(2)

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关C的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…

云原生之使用Docker部署PDF多功能工具Stirling-PDF

云原生之使用Docker部署PDF多功能工具Stirling-PDF 一、Stirling-PDF介绍1.1 Stirling-PDF简介1.2 Stirling-PDF功能 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Stirli…

全网最全面最精华的设计模式讲解,从程序员转变为工程师的第一步

前言 现代社会&#xff0c;技术日新月异&#xff0c;要想跟上技术的更新就必须不断学习&#xff0c;而学习技术最有效方式就是阅读优秀的源码&#xff0c;而优秀的源码都不是简单的逻辑堆积&#xff0c;而是有很灵活的设计模式应用其中&#xff0c;如果我们不懂设计模式&#…

移动机器人运动规划 --- 基于图搜索的A*算法

移动机器人运动规划 --- 基于图搜索的A*算法 A*算法A*算法伪代码A* 算法步骤示例A*算法分析启发函数设计 A*应用的更好方式 A*算法 A算法与Dijkstra算法的框架是完全一样的&#xff0c;**A算法就是有启发性的Dijkstra算法** 代价函数&#xff1a;g(n) 表示的是从开始节点到当…

python tempfile模块:生成临时文件和临时目录

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 tempfile 模块专门用于创建临时文件和临时目录&#xff0c;它既可以在 UNIX 平台上运行良好&#xff0c;也可以在 Windows 平台上运行良好。 tempfile 模块中常用…

蓝牙技术|蓝牙在物联网产品上的功能,特别是苹果Find My中的应用

蓝牙技术经历了不同的迭代&#xff0c;引入了新功能和改进。最初的蓝牙版本于1999年推出。低功耗蓝牙(BLE)&#xff0c;也称为蓝牙4.0或蓝牙智能&#xff0c;于2010年发明&#xff0c;旨在最大限度地降低功耗。这使得它非常适合使用电池供电的物联网设备&#xff0c;从而延长电…

私有继承和虚函数私有化能用么?

源起 以前就知道private私有化声明关键字&#xff0c;和virtual虚函数关键字两者并不冲突&#xff0c;可以同时使用。 但是&#xff0c;它所表示的场景没有那么明晰&#xff0c;也觉得难以理解&#xff0c;直到近段时间遇到一个具体场景。 场景 借助ACE遇到的问题进行展示 …