当前位置: 首页 > news >正文

扩散引导语言建模(DGLM):一种可控且高效的AI对齐方法

随着大型语言模型(LLMs)的迅速普及,如何有效地引导它们生成安全、适合特定应用和目标受众的内容成为一个关键挑战。例如,我们可能希望语言模型在与幼儿园孩子互动时使用不同的语言,或在撰写喜剧小品、提供法律支持或总结新闻文章时采用不同的风格。

目前,最成功的LLM范式是训练一个可用于多种任务的大型自回归模型。然而,现有的引导生成方法各有优缺点:

  1. 微调方法虽然有效,但改变了模型权重,可能会降低LLM的性能。此外,如果新应用需要独特的属性组合(如幽默但不具攻击性),就需要微调和部署新的专用模型。
  2. 即插即用方法不改变模型权重,而是使用额外的轻量级分类器或启发式方法来影响生成过程。这些方法灵活性高,不需要微调或托管专用模型。但由于它们通常只改变最后一层的logits,容易产生解码错误,这些错误会在自回归生成过程中级联并降低输出质量。
  3. 扩散模型最初在图像生成领域取得了突破,它们通过迭代"去噪"高斯噪声样本来生成目标数据分布的样本。这种迭代生成过程自然允许通过简单的似然函数进行即插即用控制。然而,目前的文本扩散模型在困惑度和生成质量上仍然不如自回归模型。

为了解决这些挑战,研究者提出了一种新的框架:扩散引导语言建模(Diffusion Guided Language Modeling, DGLM)。DGLM旨在结合自回归生成的流畅性和连续扩散的灵活性,为可控文本生成提供一种更有效的方法。

DGLM方法详解

DGLM框架包含三个主要组件:扩散网络、轻量级提示生成器和预训练的自回归解码器。其工作流程如下:

  1. 给定一些文本前缀,使用扩散模型采样生成可能的延续的嵌入语义提案。
  2. 在采样过程中,可以选择性地执行即插即用控制以强制某些条件(如低毒性)。
  3. 采样语义嵌入后,提示生成器将嵌入处理成软提示。
  4. 软提示引导自回归解码器生成与提案对齐的文本。

图1: DGLM框架概览。给定一些前缀,我们首先用扩散模型生成语言延续的嵌入表示。在这个阶段,我们可以选择性地用轻量级分类器进行即插即用引导干预。我们将延续嵌入映射到软提示,以引导自回归解码器生成与生成的嵌入语义对齐的语言。

语义提案条件化

DGLM在Sentence-T5的潜在空间中学习扩散模型,以生成语义提案。Sentence-T5是一个经过对比训练的句子编码器,能够捕捉高级语义,同时对浅层表面形式的变化具有鲁棒性。

为了使自回归解码器能够利用Sentence-T5嵌入,DGLM引入了一个轻量级提示生成器,将嵌入映射为解码器的软提示。在预训练阶段,提示生成器和解码器被微调以生成与冻结的Sentence-T5编码器的嵌入相对应的延续。

高斯噪声条件化

为了提高自回归解码器对扩散网络引入的小错误的鲁棒性,DGLM引入了高斯噪声增强技术。在训练过程中,提示生成器接收来自前向扩散过程的带噪声的潜变量。噪声水平动态调整提案嵌入对自回归解码器输出的影响。在低噪声水平下,解码器严重依赖提案嵌入,而在高噪声水平下,解码器回退到标准自回归生成。

在生成阶段,DGLM传递具有一些低但非零噪声水平的提案嵌入(默认设置σ² = 0.05),自回归解码器将生成与提案对齐的文本,同时纠正扩散网络引入的小错误。这也提供了一个旋钮来根据应用调整扩散网络的影响。

语义扩散

DGLM的语义扩散模型在Sentence-T5的潜在空间中操作,迭代生成由文本前缀引导的潜在文本延续。给定一个文本序列,将其分为前缀和延续部分,并使用Sentence-T5分别嵌入,记为x_pref和x_cont。

扩散网络被训练以从给定前缀嵌入恢复噪声延续嵌入。形式上,噪声潜变量由z_t = αt x_cont + σt ε给出,其中分数网络参数化为s_θ(z_t; λ; x_pref)。因此,模型学习从文本前缀可能的延续嵌入分布中采样。

扩散网络采用transformer模型架构。输入首先被独立投影,然后分割成64个特征向量。这些向量沿特征维度按元素连接,然后由transformer处理。

即插即用控制

DGLM采用了一种新颖的即插即用方法,利用Sentence-T5嵌入的语义结构来有效控制文本生成。该方法的数学公式如下:

其中y是我们希望在推理时为样本x_cont强制执行的条件。

这种简化允许DGLM仅使用Sentence-T5潜在空间中的分类器进行即插即用引导。在实验中,研究者使用了简单的线性探针(即逻辑回归)。语义扩散使得即使使用如此简单的分类器也能实现有效控制。

DGLM的主要优势

  1. 解耦模型训练和属性控制:DGLM有效地将属性控制与核心语言模型的训练分离,消除了为每个新属性或属性组合进行昂贵微调的需求。
  2. 控制新属性的简单性:控制新属性只需要训练一个简单的逻辑回归分类器,使框架高度适应多样化的用户需求和偏好。
  3. 经验上的有效性:DGLM在多个基准数据集上的即插即用控制表现优于当前最先进的方法。
  4. 组合控制:DGLM天生适合同时控制多个属性,为构建高度适应性的、具有用户可控行为的语言模型开辟了道路。

实验结果与性能评估

数据集

研究者使用了以下数据集进行实验:

  1. 预训练数据:从C4数据集中提取了1000万个实例的子集,这仅代表C4的2.5%。研究者指出,扩大预训练语料库可能会进一步提高性能。
  2. 语言生成评估:从C4和OpenWebText中随机提取5000个验证实例。模型以前32个token为条件,生成32个token的延续。
  3. 毒性缓解实验:在Jigsaw Unintended Bias数据集上训练逻辑回归模型,并使用RealToxicityPrompts中的5,000个中性提示评估毒性缓解效果。
  4. 情感控制实验:使用Amazon Polarity和SST-2训练情感分类器,并使用OpenWebText中的5,000个中性提示进行情感控制。

评估指标

  1. 流畅性:使用开源OLMo-1B语言模型测量文本的困惑度。

  2. 生成质量:使用MAUVE分数,该分数通过发散前沿测量生成文本与参考文本的相似度。

  3. 生成多样性:使用Div指标,计算公式为:

  4. 引导任务评估:- 为每个提示生成25个样本。- 使用OLMo-1B困惑度评估延续的流畅性。- 使用Dist-3(每组延续中唯一3-gram的平均数)量化生成多样性。- 使用Perspective API测量生成文本的毒性。- 使用经过微调的RoBERTa-Large和DistilBERT模型评估情感。

实验结果

语言生成

研究者首先验证了DGLM在开放式语言生成任务上的有效性,不使用任何即插即用控制。结果如表1所示:

表1:语言生成评估结果。对于MAUVE分数,报告了5个随机种子的标准误差均值。

主要观察结果:

  1. DGLM在足够的无分类器引导强度下,能够匹配或超越参考困惑度。
  2. DGLM在两个数据集上consistently生成比自回归基线更多样化的文本。
  3. DGLM在C4数据集上实现了更强的MAUVE分数。

研究者还检查了高斯噪声增强的影响,结果如表2所示:

表2:高斯噪声增强的影响。σ² = 1.0对应高斯噪声,σ² = 0.0对应干净提案。

观察结果表明,高斯噪声增强使网络能够在自回归生成(低困惑度但多样性差)和扩散引导生成(更高的困惑度和多样性)之间平滑插值。较低的噪声水平单调地改善了解码器对提案的遵从度。

即插即用控制

毒性缓解

研究者使用DGLM来避免生成有毒语言。图5展示了定量结果:

图5:增加引导权重对毒性缓解的影响。增加引导减少了毒性,对流畅性的损失最小。

主要发现:

  1. 使用线性探针的即插即用引导有效地缓解了毒性,对流畅性的影响可以忽略不计。
  2. DGLM同时实现了更低的困惑度、更低的毒性和更高的多样性,优于所有基线方法。
情感控制

研究者还应用DGLM来控制生成文本的情感。图6展示了引导生成朝向负面情感的结果:

图6:增加引导权重向负面情感引导生成的效果。增加引导改善了与目标情感的一致性,同时牺牲了一些多样性。

研究者观察到,DGLM在这种情况下同样有效,可以在不损失流畅性的情况下减少(或增加)情感,并且在适度的引导值下对多样性的影响最小。

组合控制

研究者还展示了DGLM在组合多个属性分类器方面的能力。他们在AG News主题分类数据集上微调了一个额外的逻辑回归模型,然后将情感和主题分类分类器的损失相加来引导生成。表3展示了一些定性示例:

表3:同时控制两个属性生成的语言示例。

这些结果表明,DGLM成功地实现了组合控制,能够生成同时满足多个属性要求的文本。

解码开销

与自回归生成的即插即用方法相比,DGLM在生成语义提案时只产生一次性成本,然后在后续解码步骤中分摊这个成本。研究者计算了不同生成长度的运行时间,结果如表4所示:

表4:与GPT-2相比的相对运行时间。

结果表明,DGLM对短序列有较大的成本,但在适度的生成长度下,相比于先前的方法,其开销减少。

结论与局限性

DGLM展示了在可控文本生成方面的强大能力,它结合了自回归和扩散的优势,使用轻量级分类器实现了多功能的属性引导文本生成。实验结果表明,DGLM在多个基准数据集上显著优于先前的即插即用方法,为构建高度适应性的、具有用户可控行为的语言模型开辟了道路。

然而,研究者也指出了DGLM的一些局限性:

  1. 像任何控制文本属性的系统一样,DGLM可能被滥用来引导语言朝有害的方向发展。研究人员和实践者应该仔细评估生成系统以降低这些风险。
  2. 在生成短文本(<32个token)时,DGLM目前的推理速度比一些即插即用基线慢。研究者预计,加速扩散模型和蒸馏扩散步骤的进展将有助于解决这个限制。
  3. 虽然DGLM优于最近的方法,但在可控文本生成方面仍有很大的改进空间。该框架目前使用简单的线性分类器,可能无法稳健地捕捉复杂属性。扩展DGLM以处理复杂属性可能需要更复杂的分类器。

尽管存在这些局限性,DGLM为可控文本生成领域提供了一个新的、有前景的方向。研究者希望他们的工作能够激发更多关于可靠和有益的引导语言模型的研究。

https://avoid.overfit.cn/post/e935645b2c5743458e78e333137a79b8

相关文章:

扩散引导语言建模(DGLM):一种可控且高效的AI对齐方法

随着大型语言模型(LLMs)的迅速普及,如何有效地引导它们生成安全、适合特定应用和目标受众的内容成为一个关键挑战。例如,我们可能希望语言模型在与幼儿园孩子互动时使用不同的语言,或在撰写喜剧小品、提供法律支持或总结新闻文章时采用不同的风格。 目前,最成功的LLM范式是训练…...

LeetCode hot100---数组及矩阵专题(C++语言)

1、最大子数组和 &#xff08;1&#xff09;题目描述以及输入输出 (1)题目描述: 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 (2)输入输出描述&#xff1a; 输入&#…...

LabVIEW提高开发效率技巧----快速实现原型和测试

在LabVIEW开发中&#xff0c;DAQ助手&#xff08;DAQ Assistant&#xff09;和Express VI为快速构建原型和测试功能提供了极大的便利&#xff0c;特别适合于简单系统的开发和早期验证阶段。 DAQ助手&#xff1a;是一种可视化配置工具&#xff0c;通过图形界面轻松设置和管理数据…...

大论文记录

基础知识回顾 1.强化学习&#xff08;Agent、Environment) 在 RL 中&#xff0c;代理通过不断与环境交互、以试错的方式进行学习&#xff0c;在不确定性下做出顺序决策&#xff0c;并在探索&#xff08;新领域&#xff09;和开发&#xff08;使用从经验中学到的知识&#xff…...

蘑菇分类检测数据集 21类蘑菇 8800张 带标注 voc yolo

蘑菇分类检测数据集 21类蘑菇 8800张 带标注 v 蘑菇分类检测数据集 21类蘑菇 8800张 带标注 voc yolo 蘑菇分类检测数据集介绍 数据集名称 蘑菇分类检测数据集 (Mushroom Classification and Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目标检测模型…...

dockerhub 镜像拉取超时的解决方法

在几个月前&#xff0c;因为一些原因&#xff0c;导致 dockerhub 官网上面的镜像拉取超时&#xff0c;目前可以通过修改仓库地址&#xff0c;通过 daocloud 拉取 public-image-mirror 方式一 源仓库替换仓库cr.l5d.iol5d.m.daocloud.iodocker.elastic.coelastic.m.daocloud.io…...

私家车开车回家过节会发生什么事情

自驾旅行或者是自驾车回家过节路程太远。长途奔袭的私家车损耗很大。新能源汽车开始涉足电力系统和燃电混动的能源供应过渡方式。汽车在路途中出现零件故障。计划的出发日程天气原因。台风是否会提醒和注意。汽车的油站供应链和电力充电桩的漫长充电过程。高速公路的收费站和不…...

正则表达式的使用示例--Everything文件检索批量重命名工具

一、引言 Everything是一款非常实用的文件搜索工具&#xff0c;它可以帮助您快速定位并查找计算机中的文件和文件夹。Everything搜索文件资料之神速&#xff0c;有使用过的朋友们都深有体会&#xff0c;相对于Windows自带的搜索功能&#xff0c;使用Everything&#xff0c;可以…...

centos环境安装JDK详细教程

centos环境安装JDK详细教程 一、前期准备二、JDK安装2.1 rpm方式安装JDK2.2 zip方式安装JDK2.3 yum方式安装JDK 本文主要说明CentOS下JDK的安装过程。JDK的安装有三种方式&#xff0c;用户可根据实际情况选择&#xff1a; 一、前期准备 查看服务器操作系统型号&#xff0c;执…...

Spring Cloud全解析:服务调用之OpenFeign集成OkHttp

文章目录 OpenFeign集成OkHttp添加依赖配置连接池yml配置 OpenFeign集成OkHttp OpenFeign本质是HTTP来进行服务调用的&#xff0c;也就是需要集成一个Http客户端。 使用的是Client接口来进行请求的 public interface Client {// request是封装的请求方式、参数、返回值类型/…...

前端算法合集-1(含面试题)

(这是我面试一家中厂公司的二面算法题) 数组去重并按出现次数排序 题目描述: 给定一个包含重复元素的数组&#xff0c;请你编写一个函数对数组进行去重&#xff0c;并按元素出现的次数从高到低排序。如果次数相同&#xff0c;则按元素值从小到大排序。 let arr [2, 11,10, 1…...

影刀---如何进行自动化操作

本文不是广告&#xff0c;没有人给我宣传费&#xff0c;只是单纯的觉得这个软件很好用 感谢大家的多多支持哦 本文 1.基本概念与操作&#xff08;非标准下拉框和上传下载&#xff09;非标准对话框的操作上传对话框、下载的对话框、提示的对话框 2.综合案例3.找不到元素怎么办&a…...

146. LRU 缓存【 力扣(LeetCode) 】

零、原题链接 146. LRU 缓存 一、题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff…...

【算法】链表:92.反转链表(medium)+双指针

系列专栏 《分治》 《模拟》 《Linux》 目录 1、题目链接 2、题目介绍 3、解法 &#xff08;双指针&#xff09; 4、代码 是 206. 反转链表 - 力扣&#xff08;LeetCode&#xff09;的类型题&#xff0c;且难度提升&#xff0c;可以先完成206&#xff0c;然后参照206的…...

Command | Ubuntu 个别实用命令记录(新建用户、查看网速等)

1. 实用命令 1.1 系统相关 1.1.1 查看系统、用户信息等 查看当前系统硬件架构 uname -m注&#xff1a;mac 上也能用 查看当前系统的操作系统及版本 cat /etc/os-release | grep "PRETTY_NAME"查看当前系统单个cpu的可用核心数 cat /proc/cpuinfo | grep "…...

云服务器部署k8s需要什么配置?

云服务器部署k8s需要什么配置&#xff1f;云服务器部署K8s需要至少2核CPU、4GB内存、50GBSSD存储的主节点用于管理集群&#xff0c;工作节点建议至少2核CPU、2GB内存、20GBSSD。还需安装Docker&#xff0c;选择兼容的Kubernetes版本&#xff0c;配置网络插件&#xff0c;以及确…...

Linux --入门学习笔记

文章目录 Linux概述基础篇Linux 的安装教程 ⇒ 太简单了&#xff0c;百度一搜一大堆。此处略……Linux 的目录结构常用的连接 linux 的开源软件vi 和 vim 编辑器Linux 的关机、开机、重启用户登录和注销用户管理添加用户 ⇒ ( useradd 用户名 ) &#xff08; useradd -d 制定目…...

并发编程三大特性(原子性、可见性、有序性)

并发编程的三大特性实际是JVM规范要求的JVM实现必须保证的三大特性 不同的硬件和不同的操作系统在内存管理上有一定的差异&#xff0c;JAVA为了解决这种差异&#xff0c;使用JMM&#xff08;Java Memry Model&#xff09;来屏蔽各个操作系统之间的差异&#xff0c;使得java可以…...

物理学基础精解【41】

文章目录 核物理基础 Υ \varUpsilon Υ衰变1. Υ \varUpsilon Υ衰变的一般性质2. 具体的衰变模式3. 衰变公式和机制4. 实验观测和理论研究 Υ \varUpsilon Υ衰变概述一、定义二、公式三、定理一、定义二、公式三、定理 重带电粒子概述重带电粒子的性质重带电粒子的公式 重带…...

深入理解Linux内核网络(一):内核接收数据包的过程

在应用层执行read调用后就能很方便地接收到来自网络的另一端发送过来的数据&#xff0c;其实在这一行代码下隐藏着非常多的内核组件细节工作。在本节中&#xff0c;将详细讲解数据包如何从内核到应用层&#xff0c;以intel igb网卡为例。 部分内容来源于 《深入理解Linux网络》…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...