【极速前进】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

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参