强化学习:原理与Python实战||一分钟秒懂人工智能对齐

news2024/11/27 1:31:13

文章目录

  • 1.什么是人工智能对齐
  • 2.为什么要研究人工智能对齐
  • 3.人工智能对齐的常见方法
    • 延伸阅读

1.什么是人工智能对齐

人工智能对齐(AI Alignment)指让人工智能的行为符合人的意图和价值观。

人工智能系统可能会出现“不对齐”(misalign)的问题。以ChatGPT这样的问答系统为例,ChatGPT的回答可能会含有危害祖国统一、侮辱先烈、丑化中华民族、教唆暴力、出口成“脏”等违法或不符合社会主义核心价值观的言论,也可能会出现阿谀奉承、威逼利诱、信口雌黄等干预用户达到预定目标的情况。消除人工智能系统不对齐的过程就称为人工智能对齐。

请添加图片描述

图 ChatGPT的不对齐行为

2.为什么要研究人工智能对齐

根据人工智能对齐的定义,所有的人工智能问题(包括AI伦理、AI治理、可解释性AI,甚至是最基本的回归和分类问题)都可以算是人工智能对齐问题。那么为什么学术界还要发明“人工智能对齐”这个新概念?研究“人工智能对齐”这个新概念有什么价值呢?

事实上,人工智能对齐这一概念和ChatGPT这样的通用大模型的诞生密不可分。对于通用大模型而言,一个模型可以同时完成多种任务,而且不同的任务有着不同的期望:有的任务希望能够更有想象力,有的任务希望能够更尊重事实;有的任务希望能够理性客观,有的任务希望能有细腻丰富的情感。任务的多样性导致了需要对大模型进行全方面的对齐,而不仅仅是就某些方面进行对齐。传统的研究往往针对某个方面进行对齐,对于ChatGPT这样的通用模型会导致“按下葫芦浮起瓢”,无法面面俱到。

随着机器学习模型规模的不断变大以及神经网络的大量应用,人类已经无法完全理解和解释人工智能的某些行为。例如,用于围棋AlphaGo下的某些棋迄今也不能被人类所完全理解。在未来,有可能会出现全方面碾压人类的人工智能(比如《流浪地球》里的MOSS)。传统的对齐方法显然不能满足对这样的人工智能的对齐需求。

3.人工智能对齐的常见方法

人工智能对齐离不开人的接入。人对人工智能系统进行评估和反馈,可以确认人工智能中不对齐的情况,并指导其进行改进。

人工智能对齐的方法包括模仿学习和人类反馈强化学习。ChatGPT就采用了这些对齐方法。

图片

ChatGPT训练步骤

(图片来源:https://openai.com/blog/chatgpt)

上图是ChatGPT的训练步骤图。步骤一利用收集到的数据进行监督学习,这一部分就是在用模仿学习进行人工智能对齐。不过,ChatGPT的训练团队认为,仅仅用模仿学习并不能完全达到要求。

模仿学习不能完全满足对齐需求的原因可能如下:模仿学习使用的数据集能覆盖到的数据范围是有限的,不可能包括所有的情况。用这样数据集训练出来的人工智能难免有些边脚情形的表现不对齐。另外,虽然训练后能够让训练目标基本上达到最优,但是在训练目标最优情况下还是会出现在某些样本点上表现不好的情况。而这些样本点也许还挺重要,这些不好的样本点可能会涉及到重大的法律或是舆论风险。

为此,ChatGPT的训练过程进一步地使用了人类反馈强化学习。步骤图中的第二步和第三步就用到了人类反馈强化学习。

第二步通过人类的反馈构建奖励模型。在这一步中,提供反馈的人可以就其认为需要重点关注的问题进行着重考察,来确保在哪些重要的问题上奖励模型是正确的。并且在后续的测试中如果发现了之前没有预料到的新问题,还可以通过提供更多反馈样本来为奖励模型打上补丁。这样,通过人工干预、不断迭代反馈,奖励模型就趋于完善。这样,就让奖励模型的人类的期望对齐。

在利用反馈进行奖励模型对齐的训练过程中,对于每个样本,先由语言模型输出几个备选的回答,然后再由人类对这些回答进行排序。这样的做法与直接让用户提供参考答案相比,更能够激发语言模型本身的创造力,也能使得反馈更快更省钱。

第三步利用奖励模型进行强化学习。步骤中提到的PPO算法就是一种强化学习算法。通过使用强化学习算法,使得系统的行为和奖励模型对齐。

基于反馈的强化学习在ChatGPT等大模型上的成功应用使得该算法称为最受关注的大模型对齐算法。目前绝大多数的大模型都采用了这个技术进行对齐。

延伸阅读

图片

《强化学习:原理与Python实战》

肖智清 著

解密ChatGPT关键技术PPO和RLHF

理论完备:涵盖强化学习主干理论和常见算法,带你参透ChatGPT技术要点;

实战性强:每章都有编程案例,深度强化学习算法提供TenorFlow和PyTorch对照实现;

配套丰富:逐章提供知识点总结,章后习题形式丰富多样。还有Gym源码解读、开发环境搭建指南、习题答案等在线资源助力自学。

  • 🎁本次送书1~3本【取决于阅读量,阅读量越多,送的越多】👈
  • ⌛️活动时间:截止到2023-11月18号
  • ✳️参与方式:关注博主+三连(点赞、收藏、评论)

私信我进送书互三群有更多福利哦可以在文章末尾或主页添加微信

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

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

相关文章

647. 回文子串 516.最长回文子序列

647. 回文子串 题目: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相…

ubuntu18.04配置Java环境与安装RCS库

一、安装包 安装包 二、JAVA环境 java无需安装,只需要下载解压,然后配置正确的路径到环境变量种即可使用。 1.创建文件JAVA mkdir JAVA 2.将安装包复制到该文件夹下,并解压缩 tar -zxvf tar -zxvf jdk1.8.0_191.tar.gz 3.在home路径下…

ubuntu小技巧30--23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer

ubuntu小技巧30-- 23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer 介绍解決方法说明 介绍 近期在电脑上安装了 ubuntu 23.10桌面版本, 安装最新版钉钉后无法正常打开软件,报错 undefined symbol: FT_Get_Color_Glyph_Layer ,具…

sqlyog安装和网址

网址Downloads webyog/sqlyog-community Wiki GitHub 1. 2. 3. 4. 5. 6. 7.

手写一个starter

文章目录 starter命令规则项目演示新建工程Pom引入依赖定义属性配置定义自动配置类配置EnableAutoConfiguration业务实现项目中使用 什么是Starter?Starter其实就是我们经常在maven中的导入的各种模块,自定义Starter可以快速的满足开发的需求&#xff0c…

SOME/IP学习笔记3

目录 1.SOMEIP Transformer 1.1 SOME/IP on-wire format 1.2 协议指定 2. SOMEIP TP 2.1 SOME/IP TP Header 3.小结 1.SOMEIP Transformer 根据autosar CP 相关规范,SOME/IP Transformer主要用于将SOME/IP格式的数据序列化,相当于一个转换器。总体…

1、NPC 三电平SVPWM simulink仿真

1、SVPWM时间计算函数,是从matlab的SVPWM3L_TimingCalculation.p文件中反汇编出来的函数: function [TgABC_On ,TgABC_Off ,Sn ]SVPWM3L_TimingCalculation_frompfile (Vref ,DeltaVdc ,Fsw ) %#codegen %coder .allowpcode (plain ); TgABC_On [0 ,0 ,…

超级 App 的前端框架也可以足够轻量

小程序技术自微信2016年提出并大力推动,如今已经成为了中国前端研发的“潮流”,或者说是“趋势”。早期,微信小程序是微信公众平台推出的一种应用形态。微信小程序开放平台允许开发者在微信内直接开发和发布应用,用户无需下载安装…

使用Python轻松实现科研绘图

当撰写在学术期刊上发表的文章时,图表的布局和风格应符合预定义的格式要求。这样可以确保该出版物的所有文章都具有一致的风格,并且任何包含的图表在打印时都是高质量的。 Python在科学界广泛使用,并提供了创建科学绘图的好方法。然而&#…

如何正确使用 JavaScript 中的 slice() 方法

在 JavaScript 中,slice() 是一个常用的数组方法,用于从现有数组中提取一部分元素,然后返回一个新的数组。它是一个非常有用的工具,可以帮助你在不改变原始数组的情况下操作数组的子集。本文将介绍 slice() 的基本概念、使用方法、…

云课五分钟-02第一个代码复现-终端甜甜圈C++

前篇 云课五分钟-01课程在哪里-无需安装网页直达- 代码复现通过云课,会非常快捷。 视频 云课五分钟-02第一个代码复现-终端甜甜圈C 文本 如何使用g 使用g编译和链接C程序的基本步骤如下: 编写源代码:首先,你需要编写C源代码&…

关于dinput8.dll丢失的问题,提供六种解决办法

不知dinput8.dll文件大家是否有所了解,或者你的电脑中是否出现过关于dinput8.dll文件丢失问题。如果你的电脑中出现了关于dinput8.dll丢失的问题,那么这篇文章给大家提供六种解决dinput8.dll丢失的办法。希望能够帮助大家解决dinput8.dll丢失。 一.dinpu…

XETUX 软件 dynamiccontent.properties.xhtml 远程代码执行漏洞

XETUX 软件 dynamiccontent.properties.xhtml 远程代码执行漏洞 一、漏洞描述二、FOFA资产三、漏扫复现自动化检测 四、修复建议 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果…

在PKPM中主梁与次梁有哪些区别?

在PKPM中主梁与次梁有哪些区别? 一、按主菜单1输入次梁比较方便,按主菜单2输入的次梁只能以房间为单元输入,比较麻烦; 二、按主菜单1输入次梁会增加大量无柱连接节点,增加大量房间,平面房间碎小&#xff…

从申请服务器到Docker部署Java项目至最后运行完结

目录 1.申请服务器篇 2.配置安全组篇 3.Docker安装篇 4.代码编写打包篇 目录结构 Maven Controller DockerFile 开始打包 5.所需文件上传及镜像构建篇 上传准备 上传jar包及DockerFile文件 指令构建 验证 6.镜像启动服务验证篇 启动镜像 使用云服务器地址进行…

Android Matrix的使用详解(通过矩阵获取到图片缩放比例和角度)

网上查了好久相关的资料,都没有明确的答案。最终通过多次测试结果,结合安卓定义的矩阵含义,推算出来矩阵的数学含义以及相关的计算公式 1.获取Matrix矩阵: Matrix matrix new Matrix(); float[] matrixValues new float[9]; …

给正在做自动化测试工程师的一些小建议

什么自动化测试? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念,广义上来讲&#…

Vue项目的学习一

1、Vue项目里面的.js文件里面对象添加属性 例如:在对象:row,需要在对象row里面添加一个属性状态:type,使用里面的Vue.set函数 Vue.set(参数1,参数2,参数3) Vue.set(row,type,false)解析: 参数1&#xff1…

【Hello Algorithm】单调栈(未完待续)

单调栈解决的问题 我们单调栈的提出主要是为了解决这么一个问题 现在给我们一个数组 现在要求你建立一张表 这张表中能够查询到两个信息 这两个信息分别是 当前数字左边小于该数字并且下标位置最相近的下标当前数字右边小于该数字并且下标位置最相近的下标 同理 大于也可以…

海康设备接入安防监控系统EasyCVR平台实现语音对讲的必要操作步骤

安防监控系统EasyCVR平台可拓展性强、视频能力灵活,平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析接入等功能。其中,在语音对讲方面,EasyCVR平台目前可兼容海康设备的对讲。…