Diffusion-LM Improves Controllable Text Generation 扩散语言模型改善可控文本生成

这篇具有很好参考价值的文章主要介绍了Diffusion-LM Improves Controllable Text Generation 扩散语言模型改善可控文本生成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Diffusion-LM Improves Controllable Text Generation 扩散语言模型改善可控文本生成
论文链接:https://arxiv.org/abs/2205.14217
代码链接:https://github.com/XiangLi1999/Diffusion-LM

一、简介

无需重训模型控制语言模型的表现是自然语言生成(NLG)的一个重要开放问题,近期工作已经在简单句子属性控制生成上取得了一定的进展,但是在复杂的、细粒度的控制上的进展还远远不够。作者指的更复杂,更细粒度的控制:
Diffusion-LM Improves Controllable Text Generation 扩散语言模型改善可控文本生成
为了解决这一挑战,我们提出了一个基于连续扩散模型的非自回归语言模型,我们称之为Diffusion-LM。Diffusion-LM是在连续空间上使用扩散模型,将随机噪声逐渐还原成词向量。连续的层级式的中间隐空间可以通过简单的梯度回传方法实现复杂的可控生成任务。实验表明,Diffusion-LM在六个细粒度控制任务上取得领先的效果。

传统的自回归语言模型可以生成高质量文本,但是生成的结果一般都是随机不可控的,现实情况下往往需要生成可控的文本。一个最直接的方法就是通过有标签数据微调语言模型,但是这种方法针对不同的可控任务需要不同的标注数据和重训模型。所以针对这一缺陷,应运而生了即插即用式的可控文本生成任务。

扩散模型已经在图像生成上取得了优秀的性能,但是很少使用在NLP领域,主要是因为文本模态的离散性。为了解决这一问题,文章提出在隐空间上进行扩散模型的加噪和去噪,在隐空间和词向量之间采用round的方法,将隐空间估计到词向量空间。

实验证明使用扩散模型进行即插即用的文本可控生成可以取得更优的性能,并且支持更多复杂的可控生成任务。

至于选择扩散模型的原因,根据文章总结为以下几点:

  1. 中间变量的连续且分层的特性使得简单的梯度算法就可以实现复杂且可控的生成任务。

  2. 由于文本通常是离散的,因此运用离散的扩散模型具有极大的困难,因此作者对标准的扩散模型进行了改造: 在传统的步骤上添加了embedding step和rounding step,设计了学习embedding的训练目标,并且提出了提升rounding表现的方法。

  3. 之前的控制生成方法,通常基于自回归语言模型,只能从左至右生成。这导致PPLM无法修复在之前步中的错误。

二、相关工作

文本领域扩散模型。扩散模型被证明在连续空间上有较好的生成效果,但是文本模态天然的与图像、音频不同,是连续的语言符号表征的语义信息。为了处理离散数据,之前的工作有研究离散状态空间的扩散模型,方法是在离散数据上采用一个破坏过程(每个token有一定概率被删除或者被替换)。本文聚焦在文本领域上的连续扩散模型,文章提出的Diffusion-LM在连续的隐空间上进行扩散过程,其可以有效地使用梯度回传方法进行可控生成。
自回归和非自回归语言模型。很多的预训练语言模型都是从左至右自回归形式的,如GPT-3、PaLM等,固定的生成顺序将会限制可控生成的灵活性,尤其那种左右上下文全局都相关的可控任务。因为自回归模型无法利用右侧上下文信息作为先验条件,之前很多工作在这些控制任务上采用了特殊的训练和解码技术,比如Qin等人提出了将离散的语言模型输出到连续的变量中,然后采用右侧上下文回传梯度信息。Diffusion-LM的优势就是可以在复杂的、全局的句子属性上以任意的分类器为条件进行可控生成。此外,还有一些在机器翻译和语音识别任务上的非自回归语言模型,但是这些方法都是对机器翻译和语言识别任务定制的,都无法成功对语言建模。
即插即用的可控文本生成。即插即用的可控文本生成旨在将语言模型冻结,使用势函数引导输出的方向。通过给定概率势函数来衡量生成文本是否符合控制要求,并且生成的文本优化的方向不仅要符合控制要求,还要保证语言的通顺性。自回归模型上已有很多种即插即用的可控生成方法。比如FUDGE通过每个token对整个句子的部分控制进行重新赋权重,根据候选挑选最好的控制结果,GeDi对每个token采用一个更小的语言模型微调来达到可控生成的效果。与本文方法最接近的方法是PPLM,它是一种在隐空间上升高梯度以满足控制方向的一种方法,但是PPLM控制是根据自回归语言模型方向从左到右的控制token的生成,所以在某些复杂的任务上表现并不理想,比如句法结构控制,Diffusion-LM在隐空间上进行可控生成缓解了PPLM的这一问题。

三、问题陈述和背景

3.1、文本的生成模型和可控生成

文本生成是指从训练好的语言模型 p l m ( w ) p_{lm}(\mathbf{w}) plm(w)中取样 w \mathbf{w} w的任务,其中 w = [ w 1 ⋅ ⋅ ⋅ w n ] \mathbf{w}= [w_1···w_n] w=[w1wn]是离散词的序列, p l m ( w ) p_{lm}(\mathbf{w}) plm(w)是词的序列的概率分布。可控文本生成的任务是从条件分布 p ( w ∣ c ) p(\mathbf{w}|\mathbf{c}) p(wc)中抽取 w \mathbf{w} w,其中 c \mathbf{c} c表示一个控制变量。对于句法控制, c \mathbf{c} c可以是一个目标句法树,而对于情感控制, c \mathbf{c} c可以是一个期望的情感标签。可控生成的目标是生成满足控制目标 c \mathbf{c} c w \mathbf{w} w

考虑即插即用的可控生成设置:我们得到一个从大量未标注文本数据中训练出来的语言模型 p l m ( w ) p_{lm}(\mathbf{w}) plm(w),对于每个控制任务,我们得到一个从较小数量的标注文本数据中训练出来的分类器 p ( c ∣ w ) p(\mathbf{c}|\mathbf{w}) p(cw)(例如,对于句法控制,分类器是一个概率分析器)。目标是利用这两个模型,通过贝叶斯规则 p ( w ∣ c ) ∝ p l m ( w ) ⋅ p ( c ∣ w ) p(\mathbf{w}|\mathbf{c})∝p_{lm}(\mathbf{w})·p(\mathbf{c}|\mathbf{w}) p(wc)plm(w)p(cw)从后验 p ( w ∣ c ) p(\mathbf{w}|\mathbf{c}) p(wc)中近似取样。这里, p l m ( w ) p_{lm}(\mathbf{w}) plm(w)鼓励w流畅,而 p ( c ∣ w ) p(\mathbf{c}|\mathbf{w}) p(cw)鼓励 w \mathbf{w} w履行控制。

3.2、自回归语言模型

语言模型的典型方法将 p l m p_{lm} plm纳入自回归左至右的mannar, p l m ( w ) = p l m ( w 1 ) ∏ i = 2 n p l m ( x i ∣ x < i ) p_{lm}(\mathbf{w})=p_{lm}(w_1)\prod_{i=2}^np_{lm}(x_i|x_{<i}) plm(w)=plm(w1)i=2nplm(xix<i) 。在这种情况下,文本生成被简化为以迄今为止生成的部分序列为条件反复预测下一个token的任务。下一个token的预测 p l m ( x i ∣ x < i ) p_{lm}(x_i|x_{<i}) plm(xix<i)通常由Transformer架构来参数化。

3.3、连续域的扩散模型

扩散模型是一个潜变量模型,它将数据 x 0 ∈ R d \mathbf{x}_0∈\mathbb{R}^d x0Rd建模为马尔可夫链 x T . . . x 0 \mathbf{x}_T...\mathbf{x}_0 xT...x0,每个变量的维度是 d d d x T \mathbf{x}_T xT是一个高斯分布。扩散模型对潜在变量 x T : 1 \mathbf{x}_{T:1} xT:1的序列进行增量降噪,以接近目标数据分布的样本(图2)。初始状态 p θ ( x T ) ≈ N ( 0 , I ) p_θ(\mathbf{x}_T)≈\mathcal{N}(0,I) pθ(xT)N(0,I),每个降噪过渡 x t → x t − 1 \mathbf{x}_t→\mathbf{x}_{t-1} xtxt1由模型 p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; µ θ ( x t , t ) , Σ θ ( x t , t ) ) p_θ(\mathbf{x}_{t-1}|\mathbf{x}_t)=\mathcal{N}(\mathbf{x}_{t-1};µ_θ(\mathbf{x}_t,t),Σ_θ(\mathbf{x}_t,t)) pθ(xt1xt)=N(xt1;µθ(xt,t),Σθ(xt,t))来参数化。例如, μ θ μ_θ μθ Σ θ Σ_θ Σθ可以由U-Net或Tranformer来计算。
Diffusion-LM Improves Controllable Text Generation 扩散语言模型改善可控文本生成
为了训练扩散模型,我们定义了一个构建中间潜变量 x 1 : T \mathbf{x}_{1:T} x1:T的前向过程。前向过程逐步向数据 x 0 \mathbf{x}_0 x0添加高斯噪声,直到在扩散步骤 T T T,样本 x T \mathbf{x}_T xT是近似高斯的。每个过渡 x t − 1 → x t \mathbf{x}_{t-1}→\mathbf{x}_t xt1xt的参数为 q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(\mathbf{x}_t|\mathbf{x}_{t-1})=\mathcal{N}(\mathbf{x}_t;\sqrt{1-β_t}\mathbf{x}_{t-1},β_t\mathbf{I}) q(xtxt1)=N(xt;1βt xt1,βtI),其中超参数 β t β_t βt是在扩散步骤 t t t添加的噪声量。这个前向过程 q q q的参数化不包含可训练的参数,允许我们定义一个训练目标,包括根据预先定义的前向过程 q q q生成噪声数据,并训练一个模型来逆转这个过程并重建数据。
扩散模型的训练是为了最大化数据的边际似然 E x 0 ∼ p d a t a [ log ⁡ p θ ( x 0 ) ] \mathbb{E}_{\mathbf{x}_0∼p_{data}}[\log p_θ(\mathbf{x}_0)] Ex0pdata[logpθ(x0)],目标是 log ⁡ p θ ( x 0 ) \log p_θ(\mathbf{x}_0) logpθ(x0)的变分下限: L v l b ( x 0 ) = E q ( x 1 : T ∣ x 0 ) [ log ⁡ q ( x T ∣ x 0 ) p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x 0 , x t ) p θ ( x t − 1 ∣ x t ) − log ⁡ p θ ( x 0 ∣ x 1 ) ] \mathcal{L}_{vlb}(\mathbf{x}_0)=\mathbb{E}_{q(\mathbf{x}_{1:T}|\mathbf{x}_0)}\left[\log\frac{q(\mathbf{x}_T|\mathbf{x}_0)}{p_{\theta}(\mathbf{x}_T)}+\sum_{t=2}^T\log\frac{q(\mathbf{x}_{t-1}|\mathbf{x}_0,\mathbf{x}_t)}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_t)}-\log p_{\theta}(\mathbf{x}_0|\mathbf{x}_1)\right] Lvlb(x0)=Eq(x1:Tx0)[logpθ(xT)q(xTx0)+t=2Tlogpθ(xt1xt)q(xt1x0,xt)logpθ(x0x1)]然而,这个目标可能是不稳定的,需要许多优化技巧来稳定。为了规避这个问题,Ho等人设计了一个简单的代理目标,对 L v l b \mathcal{L}_{vlb} Lvlb中的每个KL-散度项进行扩展和重新加权,以获得一个均方误差损失,我们将其称为 L s i m p l e \mathcal{L}_{simple} Lsimple。对于第 t t t个KL散度,有 E q ( x 1 : T ∣ x 0 ) [ log ⁡ q ( x t − 1 ∣ x 0 , x t ) p θ ( x t − 1 ∣ x t ) ] = E q ( x 1 : T ∣ x 0 ) [ 1 2 σ t 2 ∣ ∣ μ θ ( x t , t ) − μ ^ ( x t , x 0 ) ∣ ∣ 2 ] + C \mathbb{E}_{q(\mathbf{x}_{1:T}|\mathbf{x}_0)}\left[\log\frac{q(\mathbf{x}_{t-1}|\mathbf{x}_0,\mathbf{x}_t)}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_t)}\right]=\mathbb{E}_{q(\mathbf{x}_{1:T}|\mathbf{x}_0)}\left[\frac{1}{2\sigma^2_t}||\mu_{\theta}(\mathbf{x}_t,t)-\hat{\mu}(\mathbf{x}_t,\mathbf{x}_0)||^2\right]+C Eq(x1:Tx0)[logpθ(xt1xt)q(xt1x0,xt)]=Eq(x1:Tx0)[2σt21μθ(xt,t)μ^(xt,x0)2]+C其中 μ ^ ( x t , x 0 ) \hat{\mu}(\mathbf{x}_t,\mathbf{x}_0) μ^(xt,x0)是后验 q ( x t − 1 ∣ x 文章来源地址https://www.toymoban.com/news/detail-405562.html

到了这里,关于Diffusion-LM Improves Controllable Text Generation 扩散语言模型改善可控文本生成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【文生图】DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation

    论文地址:https://arxiv.org/abs/2208.12242v1 项目地址:https://dreambooth.github.io/ DreamBooth 主要的工作目的是实现保留主体的细致特征的情况下使用文本对其进行环境等编辑。整体方法为给定一个主体的3-5个图像和文本提示作为输入,微调预训练的文生图模型(Imagen,但不限于特定模型

    2024年02月05日
    浏览(35)
  • tune a video:one-shot tuning of image diffusion models for text-to-video generation

    【Diffusion Models】新加坡国立大学、腾讯强强联手Tune-A-Video:One-Shot微调图像扩散模型用于文本到图像的生成!_哔哩哔哩_bilibili 【Diffusion Models】新加坡国立大学、腾讯强强联手Tune-A-Video:One-Shot微调图像扩散模型用于文本到图像的生成!共计2条视频,包括:[论文代码阅读]T

    2023年04月11日
    浏览(47)
  • 【论文笔记】End-to-End Diffusion Latent Optimization Improves Classifier Guidance

    Classifier guidance为图像生成带来了控制,但是需要训练新的噪声感知模型(noise-aware models)来获得准确的梯度,或使用最终生成的一步去噪近似,这会导致梯度错位(misaligned gradients)和次优控制(sub-optimal control)。 梯度错位(misaligned gradients):通过噪声感知模型指导生成模型时,两个

    2024年02月02日
    浏览(50)
  • 关于Text Generation的GenerationCoinfig参数

    在使用“Text Generation”时会用到.generation方法,这里记录一下所有可能用到的参数。 首先需要一个 起始行的参数 ,即给定一个主题。如:“|endoftext|” max_length :即限定生成的最大长度,这里的长度指的token的长度。并且是最大的长度,在这个长度之内的其他长度的句子也是

    2024年02月08日
    浏览(41)
  • Text-to-3D Generation

    1)《Zero-shot text-guided object generation with dream fields》【CVPR 2023】 Project: https://ajayj.com/dreamfields Device: 未公布 前置知识: 伪影(Artifacts) 是指本不存在却出现在的影像片子上的一种成像。在图像生成领域中,可以理解是合成图片中,不自然的、反常的、能让人看出是人为处理过

    2024年02月06日
    浏览(54)
  • text-generation-webui大模型部署

    text-generation-webui是一个挺好用的大模型部署UI,提供了很多便于交互的接口,安装部署好之后将model放置到对应的位置即可在网页访问,若是在服务器部署也可以通过ssh端口转发至公网服务器进行访问。 其中, 模型的下载 可参考这个教程,比较有效的是利用镜像网站和下载脚

    2024年04月14日
    浏览(45)
  • 大模型 web ui 界面 text-generation-webui

    目录 前言 web ui ValueError: When localhost is not accessible 使用 text-generation-webui 生成大模型界面,这个是专门用于文本对话生成的 web ui 界面 GitHub - oobabooga/text-generation-webui: A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models.  克隆或下载到本地,

    2024年04月26日
    浏览(30)
  • text-generation-Webui-AI本地部署踩坑记录

    下载源码 text-generation-Webui 下载模型 chinese-alpaca-2-7b-hf下载完成的模型需要放置在项目下的models目录下 安装conda Free Download | Anaconda 安装python ​ python 设置环境变量 下载最新的显卡驱动 英伟达2060显卡驱动需要与自己显卡匹配 查看显卡驱动版本 创建conda环境 初始化 激活 安装

    2024年02月02日
    浏览(44)
  • 第十一篇-Tesla P40+Text-Generation-Webui

    这里的安装需要访问github,注意自己网络可以访问github, 如果不能或者超时请重试 或者改用相应国内github镜像 把下载好的模型文件夹放到models目录下 通过不同文件夹区别模型 可以创建软连接 https://github.com/oobabooga/text-generation-webui 在安装text-generation-webui时如果出现cmake,gcc

    2024年02月09日
    浏览(32)
  • LLMs:Text generation web UI/text-generation-webui(一款帮助LLMs实现本地化部署和微调的GUI界面式工具,非CLI式)的简介、安装、使用方法之详细攻略

    LLMs:Text generation web UI/text-generation-webui(一款帮助LLMs实现本地化部署和模型微调的GUI界面式工具,非CLI式)的简介、安装、使用方法之详细攻略 目录 Text generation web UI的简介 Text generation web UI的安装 第一步、安装程序

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包