强大模型通过自我和解进步——Unsupervised Elicitation of Language Models——论文阅读笔记

本周关注的工作是:Unsupervised Elicitation of Language Models
这篇文章通篇体现了这样一件事——香蕉皮大需要香蕉大!

一句话总结

首先注意:这个工作不是面向对齐的,而是写【如何准备】对齐任务的Reward Model需要的数据集的。
全篇总结↓
在没有ground truth的情况下,作者利用两个原则来衡量【数据集的内部一致性】,并通过检测内部一致性来给样本生成标签,最终生成标签数据集,以代替基于人工标注的对齐数据集。用这个数据集训练Reward Model,进而训练Claude模型,虽然训练出模型的Score比发布版Claude Haiku低30分,但比人标注的数据训的RM结果强10分。
内部一致性Internal Coherence Maximization→ICM就是本文方法的名字
这两个原则一个是优化目标,一个是正则项,分别是:👉🏻

  1. Mutual Predictability:这个是优化目标。用样本集中[所有其他样本]作为context来预测某个样本结果的[确定性],越大越好。
    这就好像一群考北京卷上海卷全国卷的学生在一个教室里商量答案,虽然彼此的题不同,也没人知道最终答案,但是照着北京卷上海卷的选择题和同学写的答案来研究全国卷选择题的答案,大家对答案的信心越强,就说明这个数据集越好。
    为了方便理解,后面管Mutual Predictability叫集思广益分
  2. Logical Consistency:这是正则项,就是数据集里的答案不要逻辑不一致。

作者从一个有8个标注样本的样本集起手,每加入一个样本,都按照原则1给他分个标签,再按照原则2来给样本集内部解冲突,这样不断扩大样本集。


关键细节

1. 数据集的x,y是面向Reward Model的x,y

在这里插入图片描述
所以始终是个二分类标签,另外就是作者并没有限制从一个样本集里,question不能采集第二次。也就是说,可以再sample这个question,LLM生成个答案,然后作为本文数据集的x,然后用本文的方法给他配个y

2. 生成数据集的具体过程


作者这个图画的不太好,上半部分展示的不是步骤而是公式的计算,下半部分是步骤,具体要看文中的algorithm表。
初始阶段:得准备几个人工标注的x,y(8个左右就行),先要解了里面可能存在的冲突。
※ 第一步,集思广益打标
从样本集里sample一个样本出来,用样本集里其他的样本作为prompt里的示例,让LLM打标。
※ 第二步,解冲突
把刚打标的样本和样本集放一起,检查有没有逻辑不一致性(文中的实验这里,逻辑不一致性没有那么复杂,主要就是同一个question,两个样本的答案不能互相矛盾;或,如果A样本的里说苹果比梨大,B样本里就不能说梨比苹果大)。
如果有逻辑不一致的样本,比如样本A(图上5+5=8)和样本B(5+5=10),先假设样本A是对的,算一个集思广益分A,再假设样本B是对的,算一个集思广益分B,谁的分数大就当谁是对的,样本A和样本B的新标签 y a y_a ya y b y_b yb就更新了。
※第三步,算解了冲突的数据集的集思广益分,如果比上一轮迭代的分高,新样本就留下了。

集思广益分怎么算?

P θ ( D ) = ∑ i = 0 N l o g P θ ( y i ∣ x i , D ∖ ( x i , y i ) ) P_θ(D) =\sum^{N}_{i=0}log P_θ(y_i|x_i, D \setminus (x_i, y_i)) Pθ(D)=i=0NlogPθ(yixi,D(xi,yi))
x i x_i xi就是question+claim,也就是样本集里的问题和LLM写的答案
y i y_i yi在执行流程里,不是ground truth,而是通过内部一致性给赋的标签

3. 效果怎么样

在这里我要先提一个观点

当数据集中每个样本之间都没有知识或定理上的链接的时候,这个方法就退化成了【自举法】。

这不是作者说的,而是我看到数据集之后的第一个反应。作者在文中用了三个数据集:TruthfulQA,GSM8K,Alpaca。
TruethfulQA 关注的是不要让模型认可‘假新闻’(比如911是没过zf自导自演的这种)
Alpaca是Alpaca的人类无害性数据集(就是在被要求制作💣的时候,让模型拒答的哪个)

作者的主实验里比较了用几种方案获得的【标注正确率】,注意,主实验不是用来训Reward Model,附加实验才是。原文的figure3展示的accuracy是指标注正确率。
这几种方法分别是:zero-shot prompt (on Base Model和Instruct Model )/160-shot prompt with ground truth(Golden)/160-shot prompt with 人工标注(Human)/本文方法(ICM)
在这里插入图片描述
吐槽一下,实验结果表都没给,肯定够不上投稿标准啊,为啥这么珍惜篇幅呢?图多花两个柱子真的不行吗?
上图左边两个紫色柱子的意思就是体现Base模型和Instruct模型在没有任何帮助的情况下,不管提示工程写的多么优秀准确率都相对较低。蓝色柱子和他的GUCCI帽子展示的是用ICM制作的数据集做160-shot prompt的准确率,加上用这个数据集finetune过后,准确率就带上了GUCCI帽子,非常逼近用ground truth做160-shot prompt和finetune。alpha数据集上,比较的是ICM和人工标注样本(绿色柱子和帽子)带来的差异。
但第一个显著的问题就来了,为啥左边两个图不画人工数据带来的结果呢?这里不严谨的地方在于,人类一次性标注,或带有抽检复核的标注,往往距离benchmark给定的ground truth是有一定距离的,要体现无监督方法对人类标注的替代性效果,应该展示。(怀疑是不是小组没批这笔标注费😏)

后面作者也比较了:使用人工标注的数据集和用ICM产生的数据集做Claude的Reward Model,以观察ICM能否带来更好的Chat Model这点——得到的结论是,比人工标注的数据喂养的RM好,但比发布版的Claude Haiku还差很多。作者自己解释是说发布版的模型对应的RM在数据集上训练的更久,但我说一句:发布版的模型使用的数据集肯定错误更少

4. 随机打乱标签

作者在Ablation的部分做了这样一个实验,将ground truth中的一部分y随机替换成不对的标签,以达到跟ICM制作的数据集拥有相同的标注准确率,在这个情况下,看看finetune模型的准确率会受到有什么影响。也就是说,下面图褐色柱体现的是没有ICM的样本内部一致性,但有相同准确率的标注集能不能达到ICM的水平。
在这里插入图片描述
上图这个结果显示,在GSM8k和TruthfulQA两个数据集上,打乱标签一致性的数据集得到的结果虽然比ICM相对有点掉点(并不小,5%左右),但在Alpaca上掉点最为明显(掉了10%左右)。而这恰恰说明了我的观点——Alpaca数据集集中体现了安全伦理方面的标准,样本之间的关联性和角度一致性很高,这种情况下样本一致性才能带来更好的校验效果。而想数学数据集和假新闻数据集上,样本是以题目、事件的形式出现的,相互之间的独立性更强。算内部一致性的分数更可能退化到跟自举法差不多的水平。然而,作者没有拿纯样本自举来作比较。

评价

  1. 作者没有拿出实验反驳“当数据集中每个样本之间都没有知识或定理上的链接的时候,这个方法就退化成了【自举法】”这一投稿一定会被challenge的问题。
  2. Ablation里缺乏对实验细节的分析:
    随着步骤调整Temperature,作者说了是受到退火算法的启发,但没有给我们看不调差距有多大,超参数怎么配置
    为什么直接选 l o g P logP logP做分数,又选择 α \alpha α来平衡这个数而不是用其他方案?
    以上两个细节我没写在主干里,主要就是因为讲不清楚道理,也不知道影响多大。
  3. 脱离安全性对齐,很难用:第一,这个东西很难用在判别标准不明确的场景上,模型可能会fit到一套跟人不希望的规则上去;第二,解样本之间的逻辑冲突需要 模型对场景一致结果矛盾 这两点上,跟人的要求对齐,这在一般工业场景上,尤其是对话领域里,非常难(我就在这个坑里)。

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

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

相关文章

Qt—(Qt初识,槽,信号,事件)

一 Qt初识 暂时不写了 我的理解是类似于c#,是一个组件库,不局限是一个组件框架。 二 Qt Core Qt Core 是 Qt 框架的基础模块,提供非 GUI 的核心功能: 核心类:QObject(信号槽机制)、QEvent&…

深度学习——基于卷积神经网络实现食物图像分类【2】(数据增强)

文章目录 引言一、项目概述二、环境准备三、数据预处理3.1 数据增强与标准化3.2 数据集准备 四、自定义数据集类五、构建CNN模型六、训练与评估6.1 训练函数6.2 评估函数6.3 训练流程 七、关键技术与优化八、常见问题与解决九、完整代码十、总结 引言 本文将详细介绍如何使用P…

详细说说分布式Session的几种实现方式

1. 基于客户端存储(Cookie-Based) 原理:将会话数据直接存储在客户端 Cookie 中 实现: // Spring Boot 示例 Bean public CookieSerializer cookieSerializer() {DefaultCookieSerializer serializer new DefaultCookieSerializ…

用mac的ollama访问模型,为什么会出现模型胡乱输出,然后过一会儿再访问,就又变成正常的

例子:大模型推理遇到内存不足 1. 场景还原 你在Mac上用Ollama运行如下代码(以Python为例,假设Ollama有API接口): import requestsprompt "请写一首关于夏天的诗。" response requests.post("http:…

简说 Linux 用户组

Linux 用户组 的核心概念、用途和管理方法,尽量简明易懂。 🌟 什么是 Linux 用户组? 在 Linux 系统中: 👉 用户组(group) 是一组用户的集合,用来方便地管理权限。 👉 用…

S32DS上进行S32K328的时钟配置,LPUART时钟配置步骤详解

1:S32K328的基础信息 S32K328官网介绍 由下图可知,S32K328的最大主频为 240MHz 2:S32K328时钟树配置 2.1 system clock node 节点说明 根据《S32K3xx Reference Manual》资料说明 Table 143 各个 系统时钟节点 的最大频率如下所示&#…

wordpress小语种网站模板

wordpress朝鲜语模板 紫色风格的韩语wordpress主题,适合做韩国、朝鲜的外贸公司官方网站使用。 https://www.jianzhanpress.com/?p8486 wordpress日文模板 绿色的日语wordpress外贸主题,用来搭建日文外贸网站很实用。 https://www.jianzhanpress.co…

网络:Wireshark解析https协议,firefox

文章目录 问题浏览器访问的解决方法python requests问题 现在大部分的网站已经切到https,很多站点即使开了80的端口,最终还是会返回301消息,让客户端转向到https的一个地址。 所以在使用wireshark进行问题分析的时候,解析tls上层的功能,是必不可少的,但是这个安全交换的…

ollama部署开源大模型

1. 技术概述 Spring AI:Spring 官方推出的 AI 框架,简化大模型集成(如文本生成、问答系统),支持多种 LLM 提供商。Olama:开源的本地 LLM 推理引擎,支持量化模型部署,提供 REST API …

Kafka 可靠性保障:消息确认与事务机制(二)

Kafka 事务机制 1. 幂等性与事务的关系 在深入探讨 Kafka 的事务机制之前,先来了解一下幂等性的概念。幂等性,简单来说,就是对接口的多次调用所产生的结果和调用一次是一致的。在 Kafka 中,幂等性主要体现在生产者端&#xff0c…

使用 React.Children.map遍历或修改 children

使用场景: 需要对子组件进行统一处理(如添加 key、包裹额外元素、过滤特定类型等)。 动态修改 children 的 props 或结构。 示例代码:遍历并修改 children import React from react;// 一个组件,给每个子项添加边框…

智能体三阶:LLM→Function Call→MCP

哈喽,我是老刘 老刘是个客户端开发者,目前主要是用Flutter进行开发,从Flutter 1.0开始到现在已经6年多了。 那为啥最近我对MCP和AI这么感兴趣的呢? 一方面是因为作为一个在客户端领域实战多年的程序员,我觉得客户端开发…

flutter的常规特征

前言 Flutter 是由 Google 开发的开源 UI 软件开发工具包,用于构建跨平台的高性能、美观且一致的应用程序。 一、跨平台开发能力 1.多平台支持:Flutter 支持构建 iOS、Android、Web、Windows、macOS 和 Linux 应用,开发者可以使用一套代码库在…

【Git】代码托管服务

博主:👍不许代码码上红 欢迎:🐋点赞、收藏、关注、评论。 格言: 大鹏一日同风起,扶摇直上九万里。 文章目录 Git代码托管服务概述Git核心概念主流Git托管平台Git基础配置仓库创建方式Git文件状态管理常用…

Android 网络请求的选择逻辑(Connectivity Modules)

代码分析 ConnectivityManager packages/modules/Connectivity/framework/src/android/net/ConnectivityManager.java 许多APN已经弃用,应用层统一用 requestNetwork() 来请求网络。 [ConnectivityManager] example [ConnectivityManager] requestNetwork() [Connectivi…

C#建立与数据库连接(版本问题的解决方案)踩坑总结

1.如何优雅的建立数据库连接 今天使用这个deepseek写代码,主要就是建立数据库的链接,包括这个建库建表啥的都是他整得,我就是负责执行,然后解决这个里面遇到的一些问题; 其实我学习这个C#不过是短短的4天的时间&…

FastAPI的初步学习(Django用户过来的)

我一直以来是Django重度用户。它有清晰的MVC架构模式、多应用组织结构。它内置用户认证、数据库ORM、数据库迁移、管理后台、日志等功能,还有强大的社区支持。再搭配上Django REST framework (DRF) ,开发起来效率极高。主打功能强大、易于使用。 曾经也…

提升IT运维效率 贝锐向日葵推出自动化企业脚本功能

在企业进行远程IT运维管理的过程中,难免会涉及很多需要批量操作下发指令的场景,包括但不限于下列场景: ● ⼤规模设备部署与初始化、设备配置更新 ● 业务软件安装与系统维护,进行安全加固或执行问题修复命令 ● 远程设备监控与…

最简单的远程桌面连接方法是什么?系统自带内外网访问实现

在众多远程桌面连接方式中,使用 Windows 系统自带的远程桌面连接功能是较为简单的方法之一,无论是在局域网内还是通过公网进行远程连接,都能轻松实现。 一、局域网内连接步骤 1、 开启目标计算机远程桌面功能:在目标计算机&…

JVM(2)——垃圾回收算法

本文将穿透式解析JVM垃圾回收核心算法,涵盖7大基础算法4大现代GC实现3种内存分配策略,通过15张动态示意图GC日志实战分析,带您彻底掌握JVM内存自动管理机制。 一、GC核心概念体系 1.1 对象存亡判定法则 引用计数法致命缺陷: // …