WebGPT与WebGLM

WebGPT

  • paper: WebGPT:Browser-assisted question-answering with human feedback
  • Demo: https://openaipublic.blob.core.windows.net/webgpt-answer-viewer/index.html

img

webgpt的论文发表最早,但论文本身写的比较"高山仰止",可能先读完webcpm再来读webgpt,会更容易理解些,只看收集交互式搜索数据使用的界面,就会发现二者非常相似。

webgpt的问题以ELI5为主,混合了少量TriviaQA,AI2,手写问题等其他问题。搜索引擎也是使用了Bing API。和webcpm相同,为了避免直接找到答案简化搜索流程,webgpt过滤了Reddit,quora等类知乎的站点信息,提高任务难度。

多数细节和webcpm比较类似,最大的不同是webgpt除了使用指令微调,还加入了强化学习/拒绝采样的偏好打分方案。

数据收集

webgpt的数据收集分成两部分:

  • Demonstrations:和webcpm的全流程搜索数据类似,从键入query,搜索,摘要,到问题回答,收集人类的交互数据,这里不再细说
  • Comparison: 同一个query模型生成的两个回答的偏好数据,用于训练偏好模型。webgpt开源了这部分的数据

以下我们细说下Comparison的数据集构建。为了降低偏好标注的噪音,和人类偏好主观性的影响,webgpt只使用引用源来判断模型回答的优劣,具体标注步骤如下

  • Flags:剔除不合理,争议性问题
  • Trustworthiness:先对模型引用的数据源进行标注:分为Trustworthy,Netural, Suspicious三挡,区分不同网页的权威性和真实性
  • Annotations:选定模型回答的每一个观点(高亮),根据该观点是否有引用支持,以及支持该观点的引用在以上的权威性分类中属于哪一档,来综合评价每个观点。也分为三挡strong support, weak support, no support。同时需要标注每个观点对于回答最终提问的重要性,有core,side,irrelevant三挡。
  • Ratings:分别对模型采样生成的AB两个答案标注完以上3步之后,才到对比打分的环节。webgpt给出了很详细的如何综合每个观点的重要性和是否有支撑,对AB答案进行觉得打分,再对比两个打分得到相对打分,此处有无数人工智能中智能的人工…详见论文中的标注文档链接~

img

训练

对应上面的数据收集,webgpt的训练过程和InstructGPT基本是一致的。先使用Demonstration数据进行指令微调,论文称之为Behaviour Cloning,顾名思义模仿人类的搜索过程(BC)。再基于BC模型,使用Comparison对比数据训练偏好模型(RM)。最后基于偏好模型使用PPO算法微调BC模型得到强化微调后的模型(RL)。训练细节可以直接参考InstructGPT。

在解密Prompt7. 偏好对齐RLHF-OpenAI·DeepMind·Anthropic对比分析中我们讨论过强化学习的本质之一其实就是拒绝采样,论文也对比了使用BC/RL模型为基座,加入拒绝采样,随机采样4/16/64个模型回答,从中选取偏好模型打分最高的回答作为结果的方案。论文中效果最好的方案是BC+Best of 64拒绝采样。RL模型相比BC略有提升,但提升幅度没有拒绝采样来的高。

评估方案,论文把webgpt生成的结果,和Eli5数据集的原始结果(Reddit上的高赞答案),以及Demonstration中人工标注的答案进行偏好对比,让标注同学选择更偏好的答案。效果上,175B的微调模型,在64个回答中采样RM打分最高的答案,效果上是可以显著超越人工回答的。

img

WebGLM

  • paper: WebGLM: Towards An Efficient Web-Enhanced Question Answering System with Human Preferences
  • github: https://github.com/THUDM/WebGLM

webglm介于二者中间,是用google search api, 英文数据做的项目。整个项目数据集构建过程自动化程度更高,人工标注依赖更少,性价比更高一些。这里主要介绍数据集构建上的一些差异,架构和前两者差不多。

img

Retriever

和webcpm使用抽取的方案来定位网页内容中和qurery相关的部分不同,webglm采取了先对网页进行分段,然后每个段落和query计算相似度,通过相似度来筛选相关内容的方案。作者选取了基于对比学习的Contriever预训练模型,不过评估准确率只有不到70%。

因此这里使用大模型的阅读理解能力来补充构建了query*reference样本对。论文使用GPT-3 1-shot 。也就是给一个相关段落抽取的case,让大模型来从众多段落中筛选和query相关的。并对模型构建的样本集过滤query-reference相关度较低,大概率是模型发挥的低质量样本。

然后基于大模型构造的样本,使用query和reference embedding的内积作为相似度打分,微调目标是拟合相似度打分的MSE Loss。

synthesis

sysnthesis,也就是基于引用内容,大模型进行QA问答的部分,webglm使用davinci-003来进行样本生成, 这里主要包含四个步骤

  1. 大模型生成指令:这里作者使用了APE的方案,不熟悉的同学看这里# APE+SELF=自动化指令集构建代码实现。输入是Question+Refernce,输出是Answer, 问大模型,什么样的指令可以更好描述这类LFQA任务。大模型给出的指令是:Read the Refernces Provided and answer the corresponding question
  2. few-shot构造样本:基于生成的instruction,人工编写几个few-shot样本,给大模型更多的query+Reference,让davinci-003来构建推理样本
  3. 引用校准:论文发现模型生成结果存在引用内容正确,但是引用序号错误的情况,这里作者用Rouge-1进行相似度判断,校准引用的Reference。
  4. 样本过滤:再强的大模型也是模型,davinci-003造的样本质量参差不齐,部分模型会自己发挥。因此加入了质量过滤模块,主要过滤引用占比较低,引用太少,以及以上引用需要错误率较高的。

通过以上的生成+过滤,最终从模型生成的83K样本过滤得到45K质量更高的LFQA样本用于推理部分的模型微调

RM模型

webglm没有像webgpt一样使用人工标注对比偏好数据,而是使用线上QA论坛的点赞数据作为偏好数据,高赞的是正样本。并通过过滤掉回答较少的问题,对长文本进行截断,以及使用点赞数差异较大的回答构建对比样本对,等数据预处理逻辑,得到质量相对较高,偏好差异较大,长度相对无偏的偏好样本。整体量级是93K个问题,249K个样本对。

其实现在大模型的样本构建往往有两种方案,一个是高质量小样本,另一个就是中低质量大样本,前者直接告诉模型如何做,后者是在质量参差不齐的样本中不断求同存异中让模型抽取共性特征。webglm是后者,而webgpt是前者。

其次RL的初始模型,对标以上webgpt的BC模型。在之前RL的博客中我们有提到过,初始模型需要是有能力生成人类偏好答案的对齐后的模型。这里webglm直接使用Reddit的摘要数据,通过指令微调得到,也没有使用人工标注数据,考虑摘要任务也属于阅读理解的子任务。

在线教程

  • 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程
  • 人工智能入门 – 人工智能基础学习。Peter Norvig举办的课程
  • EdX 人工智能 – 此课程讲授人工智能计算机系统设计的基本概念和技术。
  • 人工智能中的计划 – 计划是人工智能系统的基础部分之一。在这个课程中,你将会学习到让机器人执行一系列动作所需要的基本算法。
  • 机器人人工智能 – 这个课程将会教授你实现人工智能的基本方法,包括:概率推算,计划和搜索,本地化,跟踪和控制,全部都是围绕有关机器人设计。
  • 机器学习 – 有指导和无指导情况下的基本机器学习算法
  • 机器学习中的神经网络 – 智能神经网络上的算法和实践经验
  • 斯坦福统计学习
    有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

请添加图片描述

人工智能书籍

  • OpenCV(中文版).(布拉德斯基等)
  • OpenCV+3计算机视觉++Python语言实现+第二版
  • OpenCV3编程入门 毛星云编著
  • 数字图像处理_第三版
  • 人工智能:一种现代的方法
  • 深度学习面试宝典
  • 深度学习之PyTorch物体检测实战
  • 吴恩达DeepLearning.ai中文版笔记
  • 计算机视觉中的多视图几何
  • PyTorch-官方推荐教程-英文版
  • 《神经网络与深度学习》(邱锡鹏-20191121)

  • 在这里插入图片描述

第一阶段:零基础入门(3-6个月)

新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。

第二阶段:基础进阶(3-6个月)

熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。

第三阶段:工作应用

这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。

有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汇报工作时,你的工作会让领导满意吗?

当前你正在做的事 众所周知,跟领导汇报,第一件事需着重汇报你正在做的事,否则领导会感觉你无所事事。 举个例子: 完成了某某项目,在这项目中我负责:协调不同科室之间的纠纷,并把问题集中上报给…

《春山》中的贝叶斯统计——白敬亭衣服合理概率及决策比重。

目录 1. 全身黑衣服合理概率2. 真的是导演组允许?3. 粉丝的证据是否站得住?4.总结 感谢up主链接: 【理工春山学】只谈事实 从统计角度深度剖析春山学,她使用贝叶斯统计合理分析了在舞台中白敬亭、双魏、导演组出错的概率。接下来我采用一个新…

Acwing---846. 树的重心

树的重心 1.题目2.基本思想3.代码实现 1.题目 给定一颗树,树中包含 n n n 个结点(编号 1 ∼ n 1∼n 1∼n)和 n − 1 n−1 n−1 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 …

百度云AI

百度云AI概述 Face腾讯优图科大讯飞 百度人脸识别基于深度学习的人脸识别方案,准确识别图片中的人脸信息,提供如下功能: 人脸检测:精准定位图中人脸,获得眼、口、鼻等72个关键点位置,分析性别、年龄、表…

【JAVA-Day89】Java字符串和XML数据结构的转换

Java字符串和XML数据结构的转换 Java字符串和XML数据结构的转换,高效灵活转变数据摘要引言一、什么是XML二、XML格式的应用场景三、XML字符串转对象3.1 使用 DOM 解析器实现 XML 字符串转对象3.2 使用 JAXB 实现 XML 字符串转对象 四、XML对象转字符串4.1 使用 DOM …

【实战】一、Jest 前端自动化测试框架基础入门(一) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(一)

文章目录 一、前端要学的测试课1.前端要学的测试2.前端工程化的一部分3.前端自动化测试的例子4.前端为什么需要自动化测试?5.课程涵盖内容6.前置技能7.学习收获 二、Jest 前端自动化测试框架基础入门1. 自动化测试背景及原理前端自动化测试产生的背景及原理 2.前端自…

Linux中sigaction函数和SIGCHLD信号的使用

sigaction函数: 函数说明:注册一个信号处理函数 函数原型:int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 函数参数: signum:捕捉的信号act:传入参数,…

IDEA工程与模块管理

一、IDEA项目结构 层级关系: project(工程) - module(模块) - package(包) - class(类)具体的: 一个project中可以创建多个module一个module中可以创建多个package一个package中可以创建多个class二、Project和Module的概念 在 IntelliJ IDEA 中&…

HTTP特性

大家好我是苏麟 , 今天说说HTTP特性. 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 到目前为止,HTTP 常见到版本有 HTTP/1.1,HTTP/2.0,HTTP/3.0,不同版本的 HTTP 特性是不一样的。 这里先用 HTTP/1.1 版本给大家介…

第6讲自定义icon实现

自定义icon实现 component下新建SvgIcon目录&#xff0c;再新建index.vue 定义svg-icon组件 <template><svg class"svg-icon" aria-hidden"true"><use :xlink:href"iconName"></use></svg> </template>&…

Kafka King 推荐一款漂亮、现代、实用的kafka客户端

Kafka King 一个漂亮、现代、实用的kafka客户端&#xff0c;使用python flet、flutter构建。 Github主页&#xff1a;https://github.com/Bronya0/Kafka-King 下载&#xff1a;https://github.com/Bronya0/Kafka-King/releases 功能清单 查看集群节点列表创建主题&#xf…

Spring Resource

java.net.URL 类可用于访问带有各种URL前缀的资源&#xff0c;但是对于访问一些资源还是不够方便。比如不能从类路径或者相对于ServletContext来获取资源。而Spring 的Resource接口&#xff0c;则可以通过类路径等方式来访问资源。 1 Resource接口 图 Resource接口及方法 getI…

Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(上)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

数学建模:BP神经网络(含python实现)

原理 BP 神经网络&#xff0c;也称为多层感知机&#xff08;Multilayer Perceptron&#xff0c;MLP&#xff09;&#xff0c;是一种常见的神经网络模型&#xff0c;用于解决各种机器学习问题&#xff0c;包括分类和回归。BP 代表“反向传播”&#xff08;Backpropagation&#…

使用redis-insight连接到服务器上的redis数据库

一、安装redis&#xff1a; 安装 Redis。你可以通过运行下面的命令来使用 yum 安装 Redis&#xff1a; sudo yum install redis 启动 Redis 服务。安装完成后&#xff0c;你可以通过运行下面的命令来启动 Redis 服务&#xff1a; sudo systemctl start redis 设置 Redis 服务…

【C++】static静态关键字

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Rust 数据结构与算法:4栈:用栈实现进制转换

2、进展转换 将十进制数转换为二进制表示形式的最简单方法是“除二法”&#xff0c;可用栈来跟踪二进制结果。 除二法 下面实现一个将十进制数转换为二进制或十六进制的算法&#xff0c;代码如下&#xff1a; #[derive(Debug)] struct Stack<T> {size: usize, // 栈大…

【机器学习笔记】5 机器学习实践

数据集划分 子集划分 训练集&#xff08;Training Set&#xff09;&#xff1a;帮助我们训练模型&#xff0c;简单的说就是通过训练集的数据让我们确定拟合曲线的参数。 验证集&#xff08;Validation Set&#xff09;&#xff1a;也叫做开发集&#xff08; Dev Set &#xf…

【C++】 为什么多继承子类重写的父类的虚函数地址不同?『 多态调用汇编剖析』

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 前言 本篇文章主要是为了解答有…

LeetCode Python -18.四数之和

目录 题目答案运行结果 题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#x…