解密prompt系列43. LLM Self Critics
前一章我们介绍了基于模型自我合成数据迭代,来提升LLM生成更合理的自我推理思考链路。但在模型持续提升的道路上,只提升Generator能力是不够的,需要同步提升Supervisor、Verifier的能力,才能提供有效的监督优化信号。
人类提供的监督信号有几类,包括人工直接生成最优回答(Demonstration), 人工提供偏好对比(Preference),人工给出优化建议(Critique)等几种,论文中曾提及以上几类信号的难易程度
The Evaluation of AI output is typically faster and easier for humans than the demonstration of ideal output
所以RLHF阶段的引入,除了降低模型模仿,提升泛化,增加更高水平的对齐,其实也有一部分原因是人类生成golden answer的上限是比较低的,毕竟不能雇佣一堆各领域专家来给你生成最优回答,所以训练也就从人类标注转移到了人类评估。
而现在当大模型能力提升到一定水平后,不仅是Demonstration,连Prefernce和Critique也会遇到瓶颈。当前阻碍模型智能进一步提升的一个核心问题就是评估水平的上限,而这时就需要模型评估的辅助,尤其是生成式评估能力的加持,下面我们看两篇OpenAI在生成式评估上的论文。
22年:Self-critiquing models for assisting human evaluators
比较早的这篇论文我们主要看下结论,毕竟模型更大更强了,训练范式也在这两年发生了转变。论文的核心就是机器辅助人类进行标注。可能早在22年之前,OpenAI就已经到了大模型在复杂问题上输出结果接近人类标注员的水平,所以才早早开始研究这个方向。
这里标注的任务已经脱离了早期descriminative的NLP任务,例如多项选择,分类等判断模型,而是已经聚焦在了对生成式模型的输出进行广泛评估。并且机器辅助也并非简单的对/错的分类判别,而是分类判别(critiqueable)、生成式评估(critique)、基于评估的条件优化(refinement)的结合体,如下

论文评估用模型辅助人类标注,得到了以下结论
- 生成式评估可以帮助标注员发现更多模型回答问题(人机协同,相比各自单打独斗能发现更多模型回答的问题)

- 随着模型规模提升,模型的回答会更难被发现问题(critiqueability),但同时模型自我评估的能力也会随之提升(fraction helpful)

- 足够大的模型可以通过自己评估自己的回答,来优化答案生成,通过拒绝采样得到更准确的critique,可以进一步提升效果

24年: LLM Critics Help Catch LLM Bugs
如果说22年初的论文还只是针对在部分人类难以评估的领域,例如生成式摘要上,使用人机协同评估带来的增益。24年的这篇论文就更广泛地讨论Scalable Oversight问题。这是Anthropic也在22年提出的概念,就是当模型能力在多数任务上超越人类时,人类该如何继续为模型提供有效的对齐信号,如下图

论文给出方案就是训练CriticGPT,使用模型生成式评估来辅助人类标注员。并同时给出了在推理时可以平衡问题发现的准召比例的推理方案Force Sampling Beam Search。论文评估在CriticGPT模型的帮助下,人工标注的效果会有显著的提升。下面我们分别讲下训练和推理部分。

数据和训练
论文选择了Coding,这个任务复杂度上限很高,相对容易验证且客观的任务场景。训练的核心在于代码标注RLHF数据集的构建,包括偏好标注标准和数据集组成。什么样的模型标注是好标注?什么样的模型代码样本能让偏好标注的一致性更高,同时数据集足够全面?
先说数据标注标准,论文综合召回和准确给出了4条衡量模型标注优劣的标准
- 召回率:模型的标注评论是否发现了回答中的所有Bug
- 核心召回率(CBI):模型的标注评论是否发现了回答中的核心Bug
- 准确率:模型的标注评论是无中生有,或者鸡蛋里挑骨头
- 综合召回+准确:模型标注评论整体的有用性
人工标注员除了需要对每条模型评论针对以上标准进行打分外,还需要对4条模型标注的整体效果进行对比,最终是使用对比结果来作为RLHF的训练标签,考虑在标注时绝对打分的一致性要远远低于相对打分的一致性。
再说数据构成,整个RLHF的数据集包含两个部分
- 人工在模型回答中注入Bug,再让模型进行评论
- 模型回答自带Bug

人工数据部分就是论文的一个亮点,上图就是人工数据构建的过程,既人工在模型回答中加入Bug(Tampering),给出注入Bug的相关解释。之后模型需要在人工修改过的答案上进行标注评论,同时标注员也会依赖Bug说明,来衡量模型生成的多条标注的效果。
这类构造数据在RLHF数据集中占比更高,原因在于相比自带Bug的天然数据,这类加工数据,不仅Bug更加复杂,同时因为自带golden answer,所以在人工标注阶段能得到更一致,准确率更高的标注结果,在偏好数据的标注过程中,审核一致性是非常重要的。同时在收集数据过程中,论文还使用了多个版本,多个大小的模型,来丰富整个RLHF数据集的分布覆盖度。两类数据的占比分布如下

偏好数据收集完,后面就是比较常规的训练Reward模型,再基于reward模型,使用PPO训练CriticGPT。
推理和效果
推理时,论文采用了Reward模型和推理搜索结合的方式,目标是提高模型标注的长度,并降低回答幻觉。其实也很简单就是在单纯reward 打分的基础上,加了一个模型引用源代码段落数的得分。
模型标注的推理格式是引用一段源代码,再分析一下这段代码的问题,所以在打分中加入代码数可以鼓励模型推理对更多的源代码片段进行分析,从而发现更多的Bug,而reward打分则用于控制幻觉,这样既保质也保量。
效果上,有模型标注协同,人工标注可以显著发现更多的bug,并且相比单纯使用criticGPT进行机器标注,会有显著更低的幻觉比例。整体上criticGPT配合人工标注是更加balance的模型标注方案。


想看更全的大模型论文·微调预训练数据·开源框架·AIGC应用 >> DecryPrompt
解密prompt系列43. LLM Self Critics的更多相关文章
- 解密Prompt系列6. lora指令微调扣细节-请冷静,1个小时真不够~
上一章介绍了如何基于APE+SELF自动化构建指令微调样本.这一章咱就把微调跑起来,主要介绍以Lora为首的低参数微调原理,环境配置,微调代码,以及大模型训练中显存和耗时优化的相关技术细节 标题这样写 ...
- 解密prompt系列5. APE+SELF=自动化指令集构建代码实现
上一章我们介绍了不同的指令微调方案, 这一章我们介绍如何降低指令数据集的人工标注成本!这样每个人都可以构建自己的专属指令集, 哈哈当然我也在造数据集进行时~ 介绍两种方案SELF Instruct和A ...
- 解密Prompt系列3. 冻结LM微调Prompt: Prefix-Tuning & Prompt-Tuning & P-Tuning
这一章我们介绍在下游任务微调中固定LM参数,只微调Prompt的相关模型.这类模型的优势很直观就是微调的参数量小,能大幅降低LLM的微调参数量,是轻量级的微调替代品.和前两章微调LM和全部冻结的pro ...
- 解密Prompt系列2. 冻结Prompt微调LM: T5 & PET & LM-BFF
这一章我们介绍固定prompt微调LM的相关模型,他们的特点都是针对不同的下游任务设计不同的prompt模板,在微调过程中固定模板对预训练模型进行微调.以下按时间顺序介绍,支持任意NLP任务的T5,针 ...
- 解密Prompt系列4. 升级Instruction Tuning:Flan/T0/InstructGPT/TKInstruct
这一章我们聊聊指令微调,指令微调和前3章介绍的prompt有什么关系呢?哈哈只要你细品,你就会发现大家对prompt和instruction的定义存在些出入,部分认为instruction是promp ...
- .NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书
简介 加解密现状,编写此系列文章的背景: 需要考虑系统环境兼容性问题(Linux.Windows) 语言互通问题(如C#.Java等)(加解密本质上没有语言之分,所以原则上不存在互通性问题) 网上资料 ...
- Java 加解密技术系列文章
Java 加解密技术系列之 总结 Java 加解密技术系列之 DH Java 加解密技术系列之 RSA Java 加解密技术系列之 PBE Java 加解密技术系列之 AES Java 加解密技术系列 ...
- 11.Java 加解密技术系列之 总结
Java 加解密技术系列之 总结 序 背景 分类 常用算法 原理 关于代码 结束语 序 上一篇文章中简单的介绍了第二种非对称加密算法 — — DH,这种算法也经常被叫做密钥交换协议,它主要是针对密钥的 ...
- 10.Java 加解密技术系列之 DH
Java 加解密技术系列之 DH 序 概念 原理 代码实现 结果 结束语 序 上一篇文章中简单的介绍了一种非对称加密算法 — — RSA,今天这篇文章,继续介绍另一种非对称加密算法 — — DH.当然 ...
- 9.Java 加解密技术系列之 RSA
Java 加解密技术系列之 RSA 序 概念 工作流程 RSA 代码实现 加解密结果 结束语 序 距 离上一次写博客感觉已经很长时间了,先吐槽一下,这个月以来,公司一直在加班,又是发版.上线,又是新项 ...
随机推荐
- Chrome扩展插件的开发--获取网页Cookies
Chrome扩展插件的开发--获取网页Cookies Chrome浏览器在浏览器类应用软件中一直居于榜首,很多人选择Chrome浏览器不仅仅是因为它的稳定,还有它丰富的可拓展性.那么有没有想自己开发一 ...
- CSS – Reset CSS / Base CSS
前言 许多 element tag 都有自带的 style. 比如 h1 默认 font-size 是 2 em anchor 默认颜色是 blue 大部分默认 style 并不会是开发人员期望的效果 ...
- Email 关于 POP3 IMAP SMTP office365 Outlook Gmail G-Suit shared mailbox小小理解
Outlook 是微软的一个 email 软件, 管理 email 的 UI. Gmail 是 google 的 office365 是一个配套, 里面有 email, one drive, exce ...
- Centos7 阿里云镜像 2207-02 下安装docker-compose后,docker-compose version 命令失效问题
吐槽下,按照官方教程和网上各种教程折腾了很久,最后试出来的. 首先找到docker-compose被安装到那里 whereis docker --输出示例,cd命令进入各自目录查看docker-com ...
- nuxt(搁置)
https://nuxt.com.cn/docs/getting-started/installation 开始使用 全栈Web应用和网站 Nuxt使用约定和一套规范的目录结构来自动化重复的任务,让开 ...
- QT数据可视化框架编程实战之三维曲面图QML组件 使用高度图生成三维曲面图 补天云QT技术培训专家
QT数据可视化框架编程实战之三维曲面图 使用高度图生成三维曲面图 补天云QT技术培训专家 简介 本文将介绍如何使用QT数据可视化框架中的QT三维曲面图QML组件,通过一幅高度图的图片来生成三维曲面图. ...
- USB LFPS是什么?
USB LFPS:低功耗状态下的高速数据传输 什么是USB LFPS? USB LFPS(Low-Power Signaling)指的是USB接口在低功耗状态下的一种高速数据传输技术.传统上,USB接 ...
- docker发布ASPNETCore项目 yum
docker手动发布ASP.NET Core7 一.环境准备环节 1.准备Linux系统 Linux系统-CentOS7---基于虚拟机来安装 IP:192.168.1.97 2.安装docker环境 ...
- element 的 表单 搜索 和 重置按钮换行问题 ? inline
想要: 但是: 加上
- 0404-Tensor的持久化和向量化
0404-Tensor的持久化和向量化作 目录 一.持久化 1.1 保存模型 1.2 加载模型 二.向量化 三.注意事项 四.第四章总结 pytorch完整教程目录:https://www.cnblo ...