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

本文主要是介绍【极速前进】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系统学习有偏见的数据等问题。

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

这篇关于【极速前进】20240415-20240421:TR-DPO、压缩与智能的线性关系、模拟伪代码改善算术能力、Many-shot、合成数据综述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/926628

相关文章

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求