扩散引导语言建模(DGLM):一种可控且高效的AI对齐方法
随着大型语言模型(LLMs)的迅速普及,如何有效地引导它们生成安全、适合特定应用和目标受众的内容成为一个关键挑战。例如,我们可能希望语言模型在与幼儿园孩子互动时使用不同的语言,或在撰写喜剧小品、提供法律支持或总结新闻文章时采用不同的风格。
目前,最成功的LLM范式是训练一个可用于多种任务的大型自回归模型。然而,现有的引导生成方法各有优缺点:
- 微调方法虽然有效,但改变了模型权重,可能会降低LLM的性能。此外,如果新应用需要独特的属性组合(如幽默但不具攻击性),就需要微调和部署新的专用模型。
- 即插即用方法不改变模型权重,而是使用额外的轻量级分类器或启发式方法来影响生成过程。这些方法灵活性高,不需要微调或托管专用模型。但由于它们通常只改变最后一层的logits,容易产生解码错误,这些错误会在自回归生成过程中级联并降低输出质量。
- 扩散模型最初在图像生成领域取得了突破,它们通过迭代"去噪"高斯噪声样本来生成目标数据分布的样本。这种迭代生成过程自然允许通过简单的似然函数进行即插即用控制。然而,目前的文本扩散模型在困惑度和生成质量上仍然不如自回归模型。
为了解决这些挑战,研究者提出了一种新的框架:扩散引导语言建模(Diffusion Guided Language Modeling, DGLM)。DGLM旨在结合自回归生成的流畅性和连续扩散的灵活性,为可控文本生成提供一种更有效的方法。
DGLM方法详解
DGLM框架包含三个主要组件:扩散网络、轻量级提示生成器和预训练的自回归解码器。其工作流程如下:
- 给定一些文本前缀,使用扩散模型采样生成可能的延续的嵌入语义提案。
- 在采样过程中,可以选择性地执行即插即用控制以强制某些条件(如低毒性)。
- 采样语义嵌入后,提示生成器将嵌入处理成软提示。
- 软提示引导自回归解码器生成与提案对齐的文本。

图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的主要优势
- 解耦模型训练和属性控制:DGLM有效地将属性控制与核心语言模型的训练分离,消除了为每个新属性或属性组合进行昂贵微调的需求。
- 控制新属性的简单性:控制新属性只需要训练一个简单的逻辑回归分类器,使框架高度适应多样化的用户需求和偏好。
- 经验上的有效性:DGLM在多个基准数据集上的即插即用控制表现优于当前最先进的方法。
- 组合控制:DGLM天生适合同时控制多个属性,为构建高度适应性的、具有用户可控行为的语言模型开辟了道路。
实验结果与性能评估
数据集
研究者使用了以下数据集进行实验:
- 预训练数据:从C4数据集中提取了1000万个实例的子集,这仅代表C4的2.5%。研究者指出,扩大预训练语料库可能会进一步提高性能。
- 语言生成评估:从C4和OpenWebText中随机提取5000个验证实例。模型以前32个token为条件,生成32个token的延续。
- 毒性缓解实验:在Jigsaw Unintended Bias数据集上训练逻辑回归模型,并使用RealToxicityPrompts中的5,000个中性提示评估毒性缓解效果。
- 情感控制实验:使用Amazon Polarity和SST-2训练情感分类器,并使用OpenWebText中的5,000个中性提示进行情感控制。
评估指标
-
流畅性:使用开源OLMo-1B语言模型测量文本的困惑度。
-
生成质量:使用MAUVE分数,该分数通过发散前沿测量生成文本与参考文本的相似度。
-
生成多样性:使用Div指标,计算公式为:

-
引导任务评估:- 为每个提示生成25个样本。- 使用OLMo-1B困惑度评估延续的流畅性。- 使用Dist-3(每组延续中唯一3-gram的平均数)量化生成多样性。- 使用Perspective API测量生成文本的毒性。- 使用经过微调的RoBERTa-Large和DistilBERT模型评估情感。
实验结果
语言生成
研究者首先验证了DGLM在开放式语言生成任务上的有效性,不使用任何即插即用控制。结果如表1所示:

表1:语言生成评估结果。对于MAUVE分数,报告了5个随机种子的标准误差均值。
主要观察结果:
- DGLM在足够的无分类器引导强度下,能够匹配或超越参考困惑度。
- DGLM在两个数据集上consistently生成比自回归基线更多样化的文本。
- DGLM在C4数据集上实现了更强的MAUVE分数。
研究者还检查了高斯噪声增强的影响,结果如表2所示:

表2:高斯噪声增强的影响。σ² = 1.0对应高斯噪声,σ² = 0.0对应干净提案。
观察结果表明,高斯噪声增强使网络能够在自回归生成(低困惑度但多样性差)和扩散引导生成(更高的困惑度和多样性)之间平滑插值。较低的噪声水平单调地改善了解码器对提案的遵从度。
即插即用控制
毒性缓解
研究者使用DGLM来避免生成有毒语言。图5展示了定量结果:

图5:增加引导权重对毒性缓解的影响。增加引导减少了毒性,对流畅性的损失最小。
主要发现:
- 使用线性探针的即插即用引导有效地缓解了毒性,对流畅性的影响可以忽略不计。
- DGLM同时实现了更低的困惑度、更低的毒性和更高的多样性,优于所有基线方法。
情感控制
研究者还应用DGLM来控制生成文本的情感。图6展示了引导生成朝向负面情感的结果:

图6:增加引导权重向负面情感引导生成的效果。增加引导改善了与目标情感的一致性,同时牺牲了一些多样性。
研究者观察到,DGLM在这种情况下同样有效,可以在不损失流畅性的情况下减少(或增加)情感,并且在适度的引导值下对多样性的影响最小。
组合控制
研究者还展示了DGLM在组合多个属性分类器方面的能力。他们在AG News主题分类数据集上微调了一个额外的逻辑回归模型,然后将情感和主题分类分类器的损失相加来引导生成。表3展示了一些定性示例:

表3:同时控制两个属性生成的语言示例。
这些结果表明,DGLM成功地实现了组合控制,能够生成同时满足多个属性要求的文本。
解码开销
与自回归生成的即插即用方法相比,DGLM在生成语义提案时只产生一次性成本,然后在后续解码步骤中分摊这个成本。研究者计算了不同生成长度的运行时间,结果如表4所示:

表4:与GPT-2相比的相对运行时间。
结果表明,DGLM对短序列有较大的成本,但在适度的生成长度下,相比于先前的方法,其开销减少。
结论与局限性
DGLM展示了在可控文本生成方面的强大能力,它结合了自回归和扩散的优势,使用轻量级分类器实现了多功能的属性引导文本生成。实验结果表明,DGLM在多个基准数据集上显著优于先前的即插即用方法,为构建高度适应性的、具有用户可控行为的语言模型开辟了道路。
然而,研究者也指出了DGLM的一些局限性:
- 像任何控制文本属性的系统一样,DGLM可能被滥用来引导语言朝有害的方向发展。研究人员和实践者应该仔细评估生成系统以降低这些风险。
- 在生成短文本(<32个token)时,DGLM目前的推理速度比一些即插即用基线慢。研究者预计,加速扩散模型和蒸馏扩散步骤的进展将有助于解决这个限制。
- 虽然DGLM优于最近的方法,但在可控文本生成方面仍有很大的改进空间。该框架目前使用简单的线性分类器,可能无法稳健地捕捉复杂属性。扩展DGLM以处理复杂属性可能需要更复杂的分类器。
尽管存在这些局限性,DGLM为可控文本生成领域提供了一个新的、有前景的方向。研究者希望他们的工作能够激发更多关于可靠和有益的引导语言模型的研究。
https://avoid.overfit.cn/post/e935645b2c5743458e78e333137a79b8
相关文章:
扩散引导语言建模(DGLM):一种可控且高效的AI对齐方法
随着大型语言模型(LLMs)的迅速普及,如何有效地引导它们生成安全、适合特定应用和目标受众的内容成为一个关键挑战。例如,我们可能希望语言模型在与幼儿园孩子互动时使用不同的语言,或在撰写喜剧小品、提供法律支持或总结新闻文章时采用不同的风格。 目前,最成功的LLM范式是训练…...
LeetCode hot100---数组及矩阵专题(C++语言)
1、最大子数组和 (1)题目描述以及输入输出 (1)题目描述: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 (2)输入输出描述: 输入&#…...
LabVIEW提高开发效率技巧----快速实现原型和测试
在LabVIEW开发中,DAQ助手(DAQ Assistant)和Express VI为快速构建原型和测试功能提供了极大的便利,特别适合于简单系统的开发和早期验证阶段。 DAQ助手:是一种可视化配置工具,通过图形界面轻松设置和管理数据…...
大论文记录
基础知识回顾 1.强化学习(Agent、Environment) 在 RL 中,代理通过不断与环境交互、以试错的方式进行学习,在不确定性下做出顺序决策,并在探索(新领域)和开发(使用从经验中学到的知识ÿ…...
蘑菇分类检测数据集 21类蘑菇 8800张 带标注 voc yolo
蘑菇分类检测数据集 21类蘑菇 8800张 带标注 v 蘑菇分类检测数据集 21类蘑菇 8800张 带标注 voc yolo 蘑菇分类检测数据集介绍 数据集名称 蘑菇分类检测数据集 (Mushroom Classification and Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目标检测模型…...
dockerhub 镜像拉取超时的解决方法
在几个月前,因为一些原因,导致 dockerhub 官网上面的镜像拉取超时,目前可以通过修改仓库地址,通过 daocloud 拉取 public-image-mirror 方式一 源仓库替换仓库cr.l5d.iol5d.m.daocloud.iodocker.elastic.coelastic.m.daocloud.io…...
私家车开车回家过节会发生什么事情
自驾旅行或者是自驾车回家过节路程太远。长途奔袭的私家车损耗很大。新能源汽车开始涉足电力系统和燃电混动的能源供应过渡方式。汽车在路途中出现零件故障。计划的出发日程天气原因。台风是否会提醒和注意。汽车的油站供应链和电力充电桩的漫长充电过程。高速公路的收费站和不…...
正则表达式的使用示例--Everything文件检索批量重命名工具
一、引言 Everything是一款非常实用的文件搜索工具,它可以帮助您快速定位并查找计算机中的文件和文件夹。Everything搜索文件资料之神速,有使用过的朋友们都深有体会,相对于Windows自带的搜索功能,使用Everything,可以…...
centos环境安装JDK详细教程
centos环境安装JDK详细教程 一、前期准备二、JDK安装2.1 rpm方式安装JDK2.2 zip方式安装JDK2.3 yum方式安装JDK 本文主要说明CentOS下JDK的安装过程。JDK的安装有三种方式,用户可根据实际情况选择: 一、前期准备 查看服务器操作系统型号,执…...
Spring Cloud全解析:服务调用之OpenFeign集成OkHttp
文章目录 OpenFeign集成OkHttp添加依赖配置连接池yml配置 OpenFeign集成OkHttp OpenFeign本质是HTTP来进行服务调用的,也就是需要集成一个Http客户端。 使用的是Client接口来进行请求的 public interface Client {// request是封装的请求方式、参数、返回值类型/…...
前端算法合集-1(含面试题)
(这是我面试一家中厂公司的二面算法题) 数组去重并按出现次数排序 题目描述: 给定一个包含重复元素的数组,请你编写一个函数对数组进行去重,并按元素出现的次数从高到低排序。如果次数相同,则按元素值从小到大排序。 let arr [2, 11,10, 1…...
影刀---如何进行自动化操作
本文不是广告,没有人给我宣传费,只是单纯的觉得这个软件很好用 感谢大家的多多支持哦 本文 1.基本概念与操作(非标准下拉框和上传下载)非标准对话框的操作上传对话框、下载的对话框、提示的对话框 2.综合案例3.找不到元素怎么办&a…...
146. LRU 缓存【 力扣(LeetCode) 】
零、原题链接 146. LRU 缓存 一、题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中ÿ…...
【算法】链表:92.反转链表(medium)+双指针
系列专栏 《分治》 《模拟》 《Linux》 目录 1、题目链接 2、题目介绍 3、解法 (双指针) 4、代码 是 206. 反转链表 - 力扣(LeetCode)的类型题,且难度提升,可以先完成206,然后参照206的…...
Command | Ubuntu 个别实用命令记录(新建用户、查看网速等)
1. 实用命令 1.1 系统相关 1.1.1 查看系统、用户信息等 查看当前系统硬件架构 uname -m注:mac 上也能用 查看当前系统的操作系统及版本 cat /etc/os-release | grep "PRETTY_NAME"查看当前系统单个cpu的可用核心数 cat /proc/cpuinfo | grep "…...
云服务器部署k8s需要什么配置?
云服务器部署k8s需要什么配置?云服务器部署K8s需要至少2核CPU、4GB内存、50GBSSD存储的主节点用于管理集群,工作节点建议至少2核CPU、2GB内存、20GBSSD。还需安装Docker,选择兼容的Kubernetes版本,配置网络插件,以及确…...
Linux --入门学习笔记
文章目录 Linux概述基础篇Linux 的安装教程 ⇒ 太简单了,百度一搜一大堆。此处略……Linux 的目录结构常用的连接 linux 的开源软件vi 和 vim 编辑器Linux 的关机、开机、重启用户登录和注销用户管理添加用户 ⇒ ( useradd 用户名 ) ( useradd -d 制定目…...
并发编程三大特性(原子性、可见性、有序性)
并发编程的三大特性实际是JVM规范要求的JVM实现必须保证的三大特性 不同的硬件和不同的操作系统在内存管理上有一定的差异,JAVA为了解决这种差异,使用JMM(Java Memry Model)来屏蔽各个操作系统之间的差异,使得java可以…...
物理学基础精解【41】
文章目录 核物理基础 Υ \varUpsilon Υ衰变1. Υ \varUpsilon Υ衰变的一般性质2. 具体的衰变模式3. 衰变公式和机制4. 实验观测和理论研究 Υ \varUpsilon Υ衰变概述一、定义二、公式三、定理一、定义二、公式三、定理 重带电粒子概述重带电粒子的性质重带电粒子的公式 重带…...
深入理解Linux内核网络(一):内核接收数据包的过程
在应用层执行read调用后就能很方便地接收到来自网络的另一端发送过来的数据,其实在这一行代码下隐藏着非常多的内核组件细节工作。在本节中,将详细讲解数据包如何从内核到应用层,以intel igb网卡为例。 部分内容来源于 《深入理解Linux网络》…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
