【极速前进】20240415-20240421:TR-DPO、压缩与智能的线性关系、模拟伪代码改善算术能力、Many-shot、合成数据综述

一、TR-DPO:更新reference模型能实现更好的对齐

论文地址:https://arxiv.org/pdf/2404.09656.pdf

​ 语言模型对齐的训练目标是:
max ⁡ π θ E x ∼ D , y ∼ π θ ( y ∣ x ) [ r ϕ ( x , y ) ] − β D KL [ π θ ( x , y ) ∥ π ref ( x , y ) ] (1) \max_{\pi_\theta}\mathbb{E}_{x\sim\mathcal{D},y\sim\pi_{\theta}(y|x)}\Big[r_{\phi}(x,y)\Big]-\beta\mathbb{D}_{\text{KL}}\Big[\pi_{\theta}(x,y)\parallel\pi_{\text{ref}}(x,y)\Big] \tag{1}\\ πθmaxExD,yπθ(yx)[rϕ(x,y)]βDKL[πθ(x,y)πref(x,y)](1)
其中 D \mathcal{D} D是训练数据的集合, π θ \pi_{\theta} πθ是待优化的策略, π ref \pi_{\text{ref}} πref是reference模型。 r ϕ ( x , y ) r_{\phi}(x,y) rϕ(x,y)是基于人类偏好训练的奖励模型。

​ 最初求解该目标是通过强化学习方法,而目前的方法省去了奖励模型,直接训练。损失函数为:
L DPO ( π θ , π ref ) = − E ( x , y w , y l ) ∼ D [ log ⁡ σ ( β log ⁡ π θ ( y w ∣ x ) π ref ( y l ∣ x ) π ref ( y w ∣ x ) π θ ( y l ∣ x ) ) ] (2) \mathcal{L}_{\text{DPO}}(\pi_{\theta},\pi_{\text{ref}})=-\mathbb{E}_{(x,y_w,y_l)\sim\mathcal{D}}\Big[\log\sigma(\beta\log\frac{\pi_{\theta}(y_w|x)\pi_{\text{ref}}(y_l|x)}{\pi_{\text{ref}}(y_w|x)\pi_{\theta}(y_l|x)}) \Big]\tag{2} \\ LDPO(πθ,πref)=E(x,yw,yl)D[logσ(βlogπref(ywx)πθ(ylx)πθ(ywx)πref(ylx))](2)
其中 D \mathcal{D} D是由元组 ( x , y w , y l ) (x,y_w,y_l) (x,yw,yl)构成的, x x x表示文本提示, y w y_w yw y l y_l yl是人类的偏好。

​ 本文的优化目标主要是将训练过程中的reference模型从静态变为动态。具体来说,有两种更新的reference模型的方法。

​ 第一种是"软更新(soft update)",
π ref ← α π θ + ( 1 − α ) π ref prev \pi_{\text{ref}}\leftarrow\alpha\pi_{\theta}+(1-\alpha)\pi_{\text{ref}_{\text{prev}}} \\ πrefαπθ+(1α)πrefprev
其中 α ∈ [ 0 , 1 ] \alpha\in[0,1] α[0,1]是权重因子。

​ 第二种方法是硬更新,每 τ \tau τ个训练步会执行
π ref ← π θ \pi_{\text{ref}}\leftarrow\pi_{\theta} \\ πrefπθ
其表示经过若干次迭代后直接替换模型,能够对reference模型进行更明显且偶然的调整。

​ 提出的方法称为TR-DPO,整体来说效果均优于原始的DPO。

二、压缩与智能的线性关系

论文地址:https://arxiv.org/pdf/2404.09937.pdf

语言的无损压缩 p data p_{\text{data}} pdata是生成文本序列数据的潜在分布。给定一个文本序列 x 1 : n x_{1:n} x1:n,无损压缩的目标是将文本编码至 C ( x 1 : n ) C(x_{1:n}) C(x1:n)中,其要比原文小但是所有原始信息都得以保存。 C C C通常使用二进程bit来编码字符。根据编码理论,最优编码器的期望bit数为 E x ∼ p data [ − log ⁡ 2 p data ] \mathbb{E}_{x\sim p_{\text{data}}}[-\log_2 p_{\text{data}}] Expdata[log2pdata]

压缩同语言模型的关系。通常 p data p_{\text{data}} pdata是未知的,使用 p model ( x ) p_{\text{model}}(x) pmodel(x)来高效的压缩 x x x。通过 p model p_{\text{model}} pmodel能够实现的最优期望编码长度为
E x ∼ p data [ ∑ i = 1 n − log ⁡ 2 p model ( x i ∣ x 1 : i − 1 ) ] \mathbb{E}_{x\sim p_{\text{data}}}\Big[\sum_{i=1}^n-\log_2 p_{\text{model}}(x_i|x_{1:i-1})\Big] \\ Expdata[i=1nlog2pmodel(xix1:i1)]
这样就能建立起 p model p_{\text{model}} pmodel和压缩器之间的关系。为了能够实现高效的压缩,就需要优化 p model p_{\text{model}} pmodel来实现最小化平均编码长度。上式也是自回归语言模型训练的损失函数。

评估压缩和智能的关系

  • 评估智能:评估下游任务的效果,主要评估能力包括知识和常识、代码、数学推理。

  • 评估压缩:
    BPC = − log ⁡ 2 p model ( X ) T = ∑ i = 1 N − log ⁡ 2 p model ( x i ∣ x 1 : i − 1 ) T \text{BPC}=\frac{-\log_2 p_{\text{model}}(X)}{T}=\frac{\sum_{i=1}^N-\log_2 p_{\text{model}}(x_i|x_{1:i-1})}{T} \\ BPC=Tlog2pmodel(X)=Ti=1Nlog2pmodel(xix1:i1)
    X X X是待压缩的语料, N N N X X X中的总token数, T T T X X X中的总字符数。该评估指标等价于 X X X中每个字符的平均损失值。

​ **结论:**压缩程度与智能程度呈现线性关系。

三、模拟伪代码执行改善LM算术推理

论文地址:https://arxiv.org/pdf/2404.02575.pdf

核心思想。先前有一些研究通过使用编程语言来表达算术推理中的必要逻辑,但是构造可执行且无错误的代码是否存在必要性。本文通过构造伪代码的方式来改进算术推理的效果。

执行步骤。

  • 使用两个语言模型,分别是指令语言模型 I \mathcal{I} I和推理语言模型 R \mathcal{R} R
  • 先让 I \mathcal{I} I分析具体的任务,然后基于分析生成解决任务的伪代码。
  • R \mathcal{R} R基于任务解决方案的伪代码进行推理并给出最终结果。

四、Many-Shot In-Context Learning

论文地址:https://arxiv.org/pdf/2404.11018.pdf

​ 先前都是few-shot in-context learning。最近,LLM能够处理更长的上下文,本文尝试评测many-shot in-context learning。由于可以放入更多的样本,这使得某些任务可以不进行微调或者仅进行少量微调。此外,添加更多的样本能够带来更好的泛化性,并且能够处理更复杂的任务。

1. 特定任务的Many-shot

​ 在机器翻译、摘要、计划生成和代码验证等任务上,many-shot都能够改善整体的准确率。但是,准确率的改善和示例样本的增长并不是线性关系,改善很难说是巨大的。

2. 使用非人类撰写的rationales进行Many-shot

​ 提出两种不需要人类参与构造示例的方式:a. Reinforced ICL:使用模型自己生成的rationales;b. Unsupervised ICL:完全去掉rationales,prompt中仅保留输入。

​ (1) 在MATH和GSM8K任务上,Reinforced ICL和Unsupervised ICL都优于人类撰写样本的ICL,并且具有泛化能力。

​ (2) 在GPQA任务上,在少于125-shot的情况下,Reinforced ICL和Unsupervised ICL优于标准ICL。125-shot情况下,Reinforced ICL和标准ICL相当。

​ (3) Big-Bench Hard任务上,Reinforced ICL在所有任务上都几乎优于标准ICL。

3. Many-shot ICL分析

​ (1) 随着示例样本的增加,模型可以克服预训练中的偏差。

​ (2) 测试模型通过数值输入学习抽象数学函数能力,结果表明其能够改善非语言领域任务的效果。

​ (3) 在Many-shot场景下,示例样本的顺序仍然是有显著影响的。

五、语言模型合成数据的最佳实践和经验教训

论文地址:https://arxiv.org/pdf/2404.07503.pdf

1. 训练中的合成数据

(1) 推理

数学。数学方面的合成数据主要包括预训练数据合成和微调数据合成。预训练数据合成的代表为Minerva、DeepSeekMath等。微调数据合成的话,WizardMath利用GPT-3.5增加问题的复杂度;MetaMath通过不同的方式重写问题;GAIR-Abel发现答案的格式至关重要;Xwin-Math将合成数据增加至1百万,发现LLaMA-2-7B仍然可以收益;AlphaGeometry通过将合成数据和严格的验证过程相结合,实现了与人类奥赛金牌得主相当的能力。

代码。CodeRL提出的actor-critic使用合成代码的反馈信号来改善模型;Haluptzok等人提出的自改善方法,让模型生成合成数据然后在验证过滤;Shypula等人提出利用模拟环境和自适应策略进行代码优化;InterCode提出框架来增强代码生成和强化学习环境的交互,其中代码作为动作,执行反馈作为观察;Reflexion利用外部或者内部模拟的语言反馈信号提高代码推理能力。WizardCoder通过Code Evol-Instruct来指导ChatGPT来增强合成数据的复杂度和多样性。

(2) 工具使用和计划

通过合成轨迹来学习工具使用。LaMDA的训练数据中包含了众包的交互数据和合成数据,从而使其能够调用合适的工具;Toolformer通过模板生成数据上进行训练来决定使用何种API;ToolAlpaca通过构建多智能体模拟环境来自动生成多样的工具使用语料;

在合成环境中学习规划。Inner Monologue利用由模拟环境生成的自然语言反馈来教基于LLM的机器人进行规划,能够显著提高模拟环境和现实环境的指令完成率;VIMA创建了多模态模拟环境VIMA-Bench,支持对象和纹理扩展;在《我的世界》游戏中,Voyager部署了一些基于GPT-4的Agent与环境交互,发现这些Agent在合成反馈的帮助下更快解锁新技能并完成规划。

(3) 多模态

从视觉到文本的反向渲染。网络收集的图文对中通常包含噪音且语言描述粒度太粗,在文档、屏幕、图形和图表等领域,可以很方便从图像渲染引擎的合成管道中获得细粒度的对齐。PixStruct使用web server将HTML代码渲染为屏幕截图;MatCha和DePlot使用Python绘图库来渲染表格数据,然后通过图像和数据来预训练基础模型;

多模态指令遵循。LLaVA通过使用现有的图像字幕来提出GPT-4撰写多样且长格式的问答对。

(4) 多语言(略)

(5) 对齐

指令遵循。Self-instruct和Alpaca均使用LLM来生成指令遵循数据,其通过提供"种子指令"并要求LLM模拟格式来生成更多的样本;合成数据的复杂度和多样性至关重要,Evol-Instruct通过prompt方式为指令增加复杂度;Mukherjee等人利用LLM修改指令和应答,可以提高许多NLP的任务;UltraChat利用ChatGPT生成多轮对话数据集。

缓解幻觉。合成数据虽然能够改善LLM各项能力,但是其包含的错误数据会导致模型产生幻觉。此外,也可以使用合成数据来缓解幻觉,例如使用合成幻觉数据进行强化学习。Jone等人设计了一种可以轻易评估幻觉的合成任务,利用这个任务来微调LLM。由于缺乏对幻觉进行分级评估的合成任务,通过合成数据缓解幻觉的研究仍然受到一些限制。

对齐人类共同偏好和价值观。在RLHF中,近期研究提出将合成数据和人类数据结合的方法来训练更稳健的奖励模型。Constitutional AI提出使用一小套原则来引导AI生成评判和反馈,然后使用这种合成数据来代替RLHF中的人类数据。RLAIF训练的模型展现出与RLHF相似的性能。合成数据为人类价值观和偏好对齐提供了大规模、多样化且可控的生成方面。

2. 评估中的合成数据

​ 合成数据广泛用于不同方面的评估:

事实。Feng等人在知识图谱合并LLM生成和随机游走来生成合成评估数据,用于评估事实性。Wei等人创建LongFact来评估长格式事实。

安全。略

辅助人类评估。在许多情况下,LLM的评估可以看做是人类评估的合格、快速且低成本的替代方案。

3. 合成数据的挑战和局限性

合成数据导致错误信息泛滥。(略)

合成数据导致AI对齐的模糊。AI对齐的目标是确保AI系统符合人类的价值观和意图。合成数据不是从真实世界收集,可能无法准确地代表人的价值观和偏好。导致AI系统学习有偏见的数据等问题。

使用合成数据训练导致评估困难

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

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

相关文章

JavaEE 初阶篇-深入了解 File 文件操作(实现文件搜索、非空文件夹删除)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 File 文件概述 2.0 创建 File 类对象的方法 2.1 判断文件类型、获取文件信息的方法 2.2 创建文件、删除文件的方法 2.3 遍历文件夹的方法 3.0 文件搜索与删除 3.1…

OSPF面试题收集

第一章:基础理论部分 基础部分面试官主要是问一些简单得原理,口头描述的东西。不会涉及到报文的参数属性等。 OSPF是什么 定义也就是链路状态协议和距离矢量协议的区别区别。 开放式最短路径优先协议 路由是以自己为根,根据数据库计算去往所有树枝节点的最佳路径放进自己…

WebSocket 快速入门 - springboo聊天功能

目录 一、概述 1、HTTP(超文本传输协议) 2、轮询和长轮询 3、WebSocket 二、WebSocket快速使用 1、基于Java注解实现WebSocket服务器端 2、JS前端测试 三、WebSocket进阶使用 1、如何获取当前用户信息 2、 后端聊天功能实现 一、概述 HTTP…

PVE grub resue错误修复 lvmid BUG

服务器断电后启动不起来,显示grub resue 找了半天没有找到修复方法。看官方文档有一处Recovering from grub “disk not found” error when booting from LVM 极为类似。https://pve.proxmox.com/wiki/Recover_From_Grub_Failure 下面是处理过程。 使用PVE 6.4启…

Leetcode算法训练日记 | day33

专题九 贪心算法 一、跳跃游戏 1.题目 Leetcode:第 55 题 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 …

机器学习(二)之监督学习

前言: 上一节大概讲解了几种学习方式,下面几张就具体来讲讲监督学习的几种算法。 以下示例中和都是权重的意思!!! 注:本文如有错误之处,还请读者指出,欢迎评论区探讨! 1…

MATLAB实现图片栅格化

MATLAB实现图片栅格化 1.读取图片:首先,你需要使用imread函数读取要栅格化的图片。 2.设置栅格大小:确定你希望将图片划分成的栅格大小,即每个栅格的宽度和高度。 3.计算栅格数量:根据图片的总尺寸和栅格大小&#…

搜索+剪枝,LeetCode 216. 组合总和 III

目录 一、题目 1、题目描述 2、接口描述 python3 cpp 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 python3 cpp 一、题目 1、题目描述 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多…

Compose 布局

文章目录 Compose 布局ColumnColumn属性使用 RowRow属性使用 BoxBox属性使用 ConstraintLayoutLazyColumnLazyColumn属性使用使用多类型使用粘性标题回到顶部 LazyRowLazyRow属性使用 LazyVerticalGridLazyVerticalGrid属性使用 Compose 布局 Column Compose中的”垂直线性布…

F-logic DataCube3 SQL注入漏洞复现(CVE-2024-31750)

0x01 产品简介 F-logic DataCube3是一款用于光伏发电系统的紧凑型终端测量系统。 0x02 漏洞概述 F-logic DataCube3 /admin/pr_monitor/getting_index_data.php 接口处存在SQL注入漏洞,未经身份验证的攻击者可通过该漏洞获取数据库敏感信息,深入利用可控制整个web服务器。 …

计算机图形学:直线生成算法—DDA

DDA(Digital Differential Analyzer,数字差分分析器)算法是一种基本的直线生成算法,通常用于计算机图形学中。它通过将直线划分为若干个等间隔的小线段,然后在每个小线段中选择一个像素点进行绘制,从而近似…

R-Tree:空间索引技术原理及实现详解

R-Tree:空间索引技术原理及实现详解 一、引言 在空间数据库中,如何高效地查询和处理空间数据一直是研究的热点。R-Tree作为一种重要的空间索引结构,在地理信息系统(GIS)、空间数据库管理系统等领域得到了广泛应用。本…

三十二章、Cesium从入门到精通;

一、打造第一个Cesium程序; 1、基础概念; 父子组件之间可以传递数据:props、回传事件; 使用Redux使用场景:兄弟; 2、代码样例; 11111111 二、Cesium基础设置; 三、讲解viewer…

产品原型图概念

产品原型图概念 产品原型图作用 如下图: 产品原型图的三种分类 线框图 通过【线段色块文字】描述产品页面。优点:制作快速。 缺点:传递信息容易遗漏。 应用:早期方案讨论,需要快速输出的场景,团队配合…

Java算法必备之快读

背景: 在一些算法题中,由于数据量过大,可能会出现卡输入输出时间的问题 原理: 在Java中,输入通常是使用Scanner,输出使用System.out,先说输入 Scanner in new Scanner(System.in);慢的原因有两方面: System.in在读取的时候是字节流进行读取,是一个字节一个字节读取的,在读取…

【工作杂记】groupBy排序-操作word

1.stream 流 groupBy 排序 stream流groupBy默认使用的HashMap&#xff0c;无序的&#xff0c;想要实现有序&#xff0c;需要手动指定接收的map类型 例子&#xff1a; Map<Date, List<OrderVo>> dataMap voList.stream().sorted(Comparator.comparing(OrderVo::ge…

华为OD-C卷-执行任务赚积分[100分]C++ 100%

题目描述 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。 输…

Learn ComputeShader 01 First Computer Shader

使用Unity版本&#xff1a;2019.4.12f1 整体流程&#xff1a; 1添加一个quad object并添加一个无光照材质 2.相机投影模式设置为正交 3.调整quad使其完全显示在相机内 4.创建脚本并且使用计算着色器覆盖quad的纹理 5.创建一个compute shader 前三步完成以后结果应该是这…

网络基础先导

前言&#xff1a;最好在牢固前面几大件&#xff08;编程语言、数据结构、操作系统&#xff09;&#xff0c;并且您有一个服务器的基础上&#xff08;我使用的是腾讯云中配置最低的服务器&#xff09;再来学习本系列的网络知识。 1.网络发展简要 下面就是简单提及一些概念而已&…

多线程(64)如何设计一个高性能的订单处理系统

设计一个高性能的订单处理系统需要考虑多个方面&#xff0c;包括但不限于系统架构、数据一致性、可伸缩性、容错性以及性能优化。以下是设计这样一个系统的一些关键考虑因素和实现策略。 系统架构 微服务架构&#xff1a;将订单系统分解成独立的微服务&#xff0c;例如订单创建…