【文献综述】扩散模型在文本生成中的进展

【文献综述】扩散模型在文本生成中的进展

Diffusion models in text generation: a survey

Diffusion models

摘要:

扩散模型是一种基于数学的模型,最初应用于图像生成。最近,他们对自然语言生成(NLG)产生了广泛的兴趣,这是自然语言处理(NLP)的一个子领域,因为他们能够生成各种高质量的文本输出。本文对扩散模型在文本生成中的应用进行了全面的综述。

我们将文本生成分为三个部分(分别为有条件无约束多模式文本生成),并提供了详细的介绍。此外,考虑到基于自回归的预训练模型(autoregressive-based pre-training models,PLMs)最近主导了文本生成,我们在多个维度上对扩散模型和PLMs进行了详细的比较,突出了它们各自的优点和局限性。

我们认为,将PLMs整合到扩散中是一条有价值的研究途径。我们还讨论了扩散模型在文本生成中面临的当前挑战,并提出了未来潜在的研究方向,例如提高采样速度以解决可扩展性问题,探索多模态文本生成。通过提供全面的分析和展望,这项调查将为有兴趣利用扩散模型进行文本生成任务的研究人员和从业者提供有价值的参考。

Introduction

基于扩散的生成

随着人工智能的发展,人们不再满足于仅仅对数据进行分类,而是开始探索如何生成新的数据。目前,最流行的深度学习生成模型包括变分自编码器(variational autoencoders, VAE) (Kingma&Welling,2013)、生成对抗网络(generative adversarial networks, GAN) (Goodfellow等人,2014)、基于流的生成模型(flow-based generative models, Dinh,Krueger&Bengio,2014)以及在过去2年中广泛使用的扩散模型(diffusion models)深度生成模型的本质是生成与给定训练数据的分布尽可能相似的新数据样本(Harshvardhan等人,2020)。在上述三种模型类型中,VAE必须选择变分后验分布GAN需要训练额外的鉴别器基于流的生成模型要求模型是一个可逆函数

是否存在一种深度生成模型,只需要训练生成器,而不需要额外训练其他网络或其他此类限制?扩散模型提供了一个答案。

  • 起源(2015年) : 扩散模型的概念最早可以追溯到2015年,当时Sohl-Dickstein等人提出了扩散概率模型(DPM)。然而,在接下来的几年中,这些模型并没有得到广泛的开发和应用。

  • 图像生成领域的突破(2020年):Google的研究者在2020年对模型的细节进行了改进,引入了去噪扩散概率模型(DDPM),并将它们应用于图像生成领域,逐渐将扩散模型引入了研究者的视野。

  • 进一步的改进(2020年后):在DDPM之后,去噪扩散隐式模型(DDIM)进一步改进了DDPM的去噪过程,为后续的扩散模型奠定了基础。

  • 在NLP领域的应用:扩散模型在图像和音频生成领域取得成功后,研究者开始探索将其应用于NLP领域。由于文本数据的离散性与图像数据的连续性不同,研究者提出了两种主要方法来解决这一挑战一种是通过嵌入层将离散文本映射到连续表示空间;另一种是保留文本的离散性,并将扩散模型推广到处理离散数据

  • 文本生成的进展:在过去两年中,扩散模型在文本生成任务中取得了显著的成果。例如,通过条件图像生成方法,Palette展示了扩散模型在图像到图像翻译中的巨大潜力。此外,GLIDE、DALL·E 2和Imagen等模型在文本到图像生成领域取得了新的最先进结果。

​​
文本生成扩散模型的发展
图1:文本生成扩散模型的发展。

本次调查的范围

由于关于扩散文本生成模型的出版物越来越多(见图2),因此有必要进行全面的综述,总结最近的研究方法并预测未来的研究方向。2023年,学者们开始尝试总结扩散模型在NLP中的应用。

  • Zhu和赵(2023)概述了扩散模型在NLP中的应用。虽然该综述讨论了扩散模型在文本生成、文本驱动图像生成、文本到语音等方面的应用,但未能为未来潜在的研究方向提供鼓舞人心的指导。
  • Li等人(2023年)和Čeović等人(2023)回顾了NAR(非自回归)文本生成中扩散模型的最新进展,并讨论了文本扩散模型的优化技术。
  • Zou,Kim&Kang(2023)总结了NLP中的扩散模型方法,并与其他文本生成方法进行了全面比较。

尽管Li等人(2023)、Čeović等人(2023年)和Zou,Kim&Kang(2023年,)都对NLP中的扩散模型算法进行了全面的总结,但不幸的是,他们都专注于将扩散模型应用于文本领域的角度,具体将其分为离散文本扩散模型连续文本扩散模型

在我们的工作中,与之前的相关综述不同,我们引入了一种全新的分类视角,对扩散模型在文本生成任务中的应用研究进行了分类和总结。本文的主要贡献如下:

  • 全面概述当前相关研究的最新进展,帮助研究人员更深入地了解扩散语言模型。

  • 从文本生成任务的新角度对研究进行分类,并对方法进行详细描述。

  • 从不同角度区分扩散模型和预训练的语言模型,为读者提供有见地的比较。

  • 阐述现有的挑战和预期的未来研究方向,为相关领域的研究人员提供见解。

调查方法

关于“文本生成中的扩散模型”这一主题,我们对研究问题进行了广泛的研究,搜索并整理了相关文献。研究方法主要概述了数据来源、搜索策略和文献纳入标准。

研究问题

我们的文献综述旨在解决以下研究问题(RQ):

  • RQ1:扩散模型是如何演变和发展的?

  • RQ2:扩散模型如何应用于各种文本生成任务?

  • RQ3:文本扩散模型和预训练语言模型之间有什么区别?

  • RQ4:文本扩散模型的潜在研究方向是什么?

前两个问题旨在说明扩散模型在文本生成中的应用,第三个问题用于将文本扩散模型与预训练模型进行比较,最后一个问题旨在帮助研究人员提出改进文本扩散模型的潜在方向

数据来源和研究策略

我们利用Google Scholar、IEEE Xplore、WoS、Arxiv等搜索引擎搜索和收集相关文献。用于文献检索的关键字包括“扩散模型”、“文本生成”、“NLP”、“预训练语言模型”等。表1显示了数据来源、搜索字符串和链接。

表1:数据源、搜索字符串和链接的描述。

Search engineSearch stringLinks
Google ScholarDiffusion model AND text generationhttps://scholar.google.com/
IEEE XploreText generation OR pre-trained language modelhttps://ieeexplore.ieee.org/
WoSDiffusion model OR text generationhttps://www.webofknowledge.com/
ArxivDiffusion model AND NLPhttps://arxiv.org/
纳入/排除标准

在查阅相关文献后,我们的研究纳入标准是文章必须用英语撰写,并且应该是研究文章。此外,我们筛选出了专注于扩散模型在文本以外领域(如视觉和音频)应用的研究文章。最后,我们总结了文章的数量,如图2所示,表明文本生成中的扩散模型仍在发展中,具有巨大的增长潜力。

定义
自然语言生成(NLG)

自然文本生成旨在从输入数据中生成流畅、合理和可理解的语言文本(Yu等人,2022b)。这项任务在文献中更正式地称为“自然语言生成”。目前,它是NLP中最重要、最具挑战性的子任务之一。

NLG有两种主要的生成方法:自回归(autoregressive,AR)和非自回归(non-autoregressive, NAR),也称为端到端生成。随着近年来深度学习的兴起,研究人员提出了各种模型来实现语言生成,包括Transformer(Vaswani等人,2017)、BERT(Devlin等人,2018)和GPT(Radford等人,2019),以及基于扩散的文本生成模型。在大型语言模型(LLM)时代,以GPT为例的纯解码器模型已成为文本生成领域的关键技术。此类模型仅通过解码器生成文本,无需专用编码器,并以自回归方式运行,顺序生成离散tokens。基于扩散的模型的引入引导了文本生成领域的发展,使其在各种任务中更全面地利用离散和连续特征

文本生成任务

迄今为止,研究人员已经开发了许多关于文本生成应用程序的技术(Li等人,2021a)。NLG包含许多以各种形式的数据作为输入的下游子任务(Celikyilmaz,Clark&Gao,2020)。示例包括非结构化输入,如句子和段落;结构化输入,如图形和表格;以及多媒体输入,如图像、视频和语音(Li等人,2021b)。图3显示了典型的文本生成任务。

​​
用于文本生成的子任务
图3:用于文本生成的子任务。

扩散模型

扩散模型(Sohl-Dickstein等人,2015;Ho,Jain&Abbeel,2020)最初是为连续数据域设计的潜在变量模型。模型训练过程可分为两个步骤:正向噪声添加过程反向去噪过程

正向过程

从数据 x 0 ∼ q ( x ) x_0\sim q(x) x0q(x)开始,模型根据 x t − 1 x_{t-1} xt1在时间步 t t t添加相对应的噪声,得到输出 x t x_{t} xt。在步 T T T(最终时间步)得到 x T x_T xT,数据被转换成一个不可见的噪声分布。

反向过程

根据给定的条件 x t x_t xt( t t t T T T到0递减),使用贝叶斯定理确定 x t − 1 x_{t-1} xt1。因此,可以通过迭代采样噪声生成目标句子或图像。

具体地,给定一个初始采样 x 0 x_0 x0,在每一个时间步中,根据正向过程 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1),逐渐向样品中注入少量高斯噪声,以扰乱原始数据分布。这个过程 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)的等式表示如下:

q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t|x_{t-1})=N(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_t\mathbf{I}) q(xtxt1)=N(xt;1βt xt1,βtI)

其中 β t = 1 − α t \beta_t=\mathbf{1}-\alpha_t βt=1αt是一个预定义的噪声表。在每个步骤中添加的噪声是独立的,并且遵循正态分布。随着迭代次数的增加,添加的噪声的强度也会增加,需要中间的潜在变量加入更多的噪声来有效地破坏训练数据。因此, β t \beta_t βt将随着时间的推移逐渐增加,最终从 x 0 x_0 x0转变为随机噪声,大致遵循一个正态分布 N ( 0 , I ) N(0,I) N(0,I)

正向过程的每次迭代都会产生一个新的潜在变量 x t x_t xt。因此,扩散模型可以将原始数据 x 0 x_0 x0建模为马尔可夫链 x 0 , x 1 , . . . , x T x_0,x_1,...,x_T x0,x1,...,xT。基于重参数化方法(reparameterization method),模型可以将 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)转换为 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0)以更好地采样:

q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , 1 − α ˉ t I ) q(x_t|x_0)=N(x_t;\sqrt{\bar{\alpha}_t}\mathrm{x}_0,\sqrt{1-\bar{\alpha}_t}\mathbf{I}) q(xtx0)=N(xt;αˉt x0,1αˉt I)

其中 α ˉ = σ i = 1 t α i \bar{\alpha}=\sigma_{i=1}^{t}\alpha_i αˉ=σi=1tαi。由于反向去噪不断接近后验分布 q ( x t − 1 ∣ x t ) q(x_{t-1}|x_t) q(xt1xt),去噪模型利用 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ(xt1xt) x T x_T xT恢复到所需的结果。去噪过程可以公式化如下:

p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , ∑ θ ( x t , t ) ) p_\theta(x_{t-1}|x_t)=N(x_{t-1};\mu_\theta(x_t,t),\sum_\theta(x_t,t)) pθ(xt1xt)=N(xt1;μθ(xt,t),θ(xt,t))

其中 μ θ ( x t , t ) \mu_\theta(x_t,t) μθ(xt,t) ∑ θ ( x t , t ) \sum_\theta(x_t,t) θ(xt,t)可以使用U-Net或Transformer模型进行计算。方差 ∑ θ ( x t , t ) \sum_\theta(x_t,t) θ(xt,t)由一个特定的调度器(scheduler)确定并且保持固定(fixed),因此不需要对其进行预测。训练过程的最终目标是预测 μ θ ( x t , t ) \mu_\theta(x_t,t) μθ(xt,t)

基于已知的 x 0 x_0 x0和正向过程 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1),使用贝叶斯公式可以直接在去噪过程中链接 x t x_t xt x 0 x_0 x0,而不是乏味地使用 x t x_t xt一步一步地预测 x t − 1 x_{t-1} xt1。因此,最终的训练目标可以简化如下:

L s i m p l e = ∑ t = 1 T E q [ ∣ ∣ μ t ( x t , x 0 ) − μ θ ( x t , t ) ∣ ∣ 2 ] L_{simple}=\sum_{t=1}^TE_q[||\mu_t(x_t,x_0)-\mu_\theta(x_t,t)||^2] Lsimple=t=1TEq[∣∣μt(xt,x0)μθ(xt,t)2]

其中 μ t \mu_t μt是后验 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt1xt,x0)的平均值。该模型的目标是使两个分布之间的均方误差最小化

文本生成中的扩散模型

在本节中,我们将依次阐述文本生成领域的扩散模型。我们根据文本生成的任务将其分为三类:有条件文本生成无约束文本生成多模式文本生成。表2提供了本次调查中考虑的所有扩散文本模型的总结和比较。

表2: 文本生成中的扩散模型总结,按类型分组。

ModelNoise scheduleSamplingSpaceGeneration processPretrain
Conditional text generation (Text-driven generation)
DiffuSeqPartial noisingMinimum Bayes RiskCaNARb/
DiffuSumPartial noising/CNAR/
DiffusEREdit-based reconstructionBeam search, 2D Beam search, Nucleus samplingDNAR/
SeqDiffuSeqAdaptive noise scheduleSelf-conditioningCNAR/
Zero-Shot DiffusionPartial noisingClassifier-free conditional denoisingCNAR/
GENIE/Continuous paragraph denoiseCNARArge-scale pretrained diffusion language model
RDMsMaskReparameterized sampling, stochastic routing mechanismDNARPre-trained autoregressive Transformer
Diffusion-NATMaskSelf-promptingDNARBART
CDCDTime warpingInverse transform sampling, time warpingCNARBERT
DiNoiSerManipulated noisesMBRCNAR/
AR-DIFFUSIONSquare-rootMulti-level diffusion strategy, dynamic movement speeds, MBRCAR/
Conditional text generation (Fine-grained control generation)
Diffusion-LMCosineMBRCNAR/
Masked-Diffuse LMStrategically soft-maskingMBRDNARBERT
DifformerSqrt noise2D parallel decodingCNAR/
Text-driven generation and Fine-grained control generation
LDEBM//CNAR/
Unconstrained text generation
D3PMUniform transition matrices/DNAR/
DiffusionBERTSpindle schedule-ParameterizationDNARBERT
Multi-mode text generation
SEDSpan maskingSelf-conditioningCNAREmbedding pretraining
SUNDAEUniform transition matricesUnrolled denoising, low-temperature sampling, argmax-unrolled decoding, updating fewer tokensCNAR/
LD4LGCosineSelf-conditioningCNARBART
SSD-LMLogits-generationSampling, multi-hot and greedyCNAR/

注意:

  • “C”和“D”分别表示连续和离散。

  • “AR”和“NAR”分别代表自回归和非自回归。

有条件文本生成

文本驱动的生成。文本驱动生成的目标是给定一个源句子 x i = x 1 i , x 2 i , . . . , x L i \mathrm{x}^{i}=x_1^{i},x_2^{i},...,x_L^{i} xi=x1i,x2i,...,xLi,以最大化条件概率 P ( y ∣ x ) P(\mathrm{y}|\mathrm{x}) P(yx)为目标,生成目标句子 y = y 1 , y 2 , . . . , y T \mathrm{y}=y_1,y_2,...,y_T y=y1,y2,...,yT。具体地,目标函数可以表示为: argmax θ P ( y ∣ x ; θ ) \text{argmax}_{\theta}P(\mathrm{y}|\mathrm{x};\theta) argmaxθP(yx;θ),其中 θ \theta θ表示模型的参数, P ( y ∣ x ; θ ) P(\mathrm{y}|\mathrm{x};\theta) P(yx;θ)表示给定输入文本 x \mathrm{x} x生成目标文本 y \mathrm{y} y的条件概率。序列到序列条件文本生成(sequence-to-sequence conditional text generation) 通常使用编码器-解码器架构(Lee,Lee&Hwang,2020),如图4所示。目前,基于扩散的文本生成方法主要利用文本驱动的条件生成;下面是对文本驱动生成的扩散模型的详细描述。

​​
文本驱动生成
图4: 文本驱动生成。

  • DiffuSeq( Gong等人,2022)是一种突破性的条件扩散语言模型,它将扩散应用于序列到序列(SEQ2SEQ)文本生成任务。值得注意的是,DiffuSeq引入了部分噪声(partial noising)的概念,该概念有选择地将高斯噪声应用于目标序列,同时保持源句子嵌入的完整性。这种方法允许对目标文本进行受控的破坏,从而增强生成过程。
  • DiffuSum(Zhang,Liu&Zhang,2023)将条件扩散建模的思想扩展到文本摘要的任务中。与在扩散过程中使用部分噪声的DiffuSeq(Gong等人,2022)类似,DiffuSum更进一步,加入了额外的组件,如匹配损耗(matching loss)和多类对比度损耗(multiclass contrast loss)。这项关于DiffuSum的开创性研究代表了首次使用扩散模型对文本摘要进行专门探索。
  • DiffusER(Reid,Hellendoorn&Neubig,2022)在噪声注入方面与传统的扩散模型不同。它将插入、删除和编辑等操作视为噪声的形式,因为高斯噪声和这些编辑操作本质上都在破坏原始数据。这样的操作充分考虑了文本的离散特征,使生成更加灵活。
  • SeqDiffuSeq(Yuan等人,2022)是一种编码器-解码器Transformers架构,它结合了两项关键技术:自适应噪声调度和自调节,大大提高了文本生成的质量和速度。
  • Zero-Shot Diffusion(Nachmani&Dovrat,2021),受编码器-解码器架构的启发,将源语言句子 x x x(即条件)输入到Transformer编码器,将有噪声的目标语言句子 y y y输入到解码器。值得注意的是,这项工作是第一个将扩散模型应用于条件文本生成任务的工作
  • GENIE(Lin等人,2022)以其大规模预训练方法代表了语言建模领域的重大进步。使用掩码源序列 s s s作为编码器的输入,并结合连续段落去噪训练方法,GENIE已经证明了其生成高质量和显著多样性文本的能力。这不仅展示了扩散语言模型的有效性,还为各种自然语言处理任务开辟了新的可能性。
  • RDM(重参数化扩散模型)(Zheng等人,2023)引入了重参数化和随机路由机制,带来了两个显著优势:简化的训练和灵活的采样。然而,目前RDM只能生成固定长度的句子
  • Diffusion-NAT(Zhou等人,2023)将离散扩散模型(DDM)和BART集成到非自回归(NAR)文本生成中,将推理和去噪过程统一到一个掩码令牌恢复任务中。Diffusion-NAT侧重于条件文本生成任务,突出了离散扩散模型和预训练语言模型在增强文本生成方面的协同作用。
  • CDCD( Dieleman等人,2022)通过结合分数插值和时间扭曲技术改进了扩散模型的训练过程,在语言建模和机器翻译任务中取得了优异的性能。
  • DiNoiSer(Ye等人,2023)认为,仅仅通过嵌入将离散标记映射到连续空间不足以完全消除文本的离散性。因此,DiNoiSer利用自适应噪声水平进行反离散训练,并放大噪声尺度以利用源条件,从而在多个条件文本生成任务中实现一致的改进。
  • Difformer( Gao等人,2022)是一种基于Transformer架构的去噪扩散模型,解决了连续嵌入空间中扩散模型的挑战。通过结合锚定损失函数(anchor loss function)、嵌入层的层归一化模块以及高斯噪声的噪声因子,Difformer在机器翻译和文本摘要任务中表现出了显著的优势。
  • AR-DIFFFUSION(Wu等人,2023),与大多数文本扩散模型不同,提出了一种多级扩散策略和动态移动速度来探索自回归文本生成扩散模型,即使在很少的解码步骤下也表现出了很强的性能。

细粒度控制生成。细粒度受控文本生成接受细粒度控制条件(情感、主题、风格等)作为输入,并引入条件变量 c c c,可用于表示控制属性(Hu&Li,2021)。生成过程如图5所示。例如,在情绪控制生成的情况下(Zhu等人,2022), c c c表示不同情绪极性的标签(Li等人,2022b)。可控文本生成的目标是最大化条件概率 P ( x ∣ c ) P(\mathrm{x}|c) P(xc),其表示在给定特定条件 c c c的情况下生成文本序列 x x x的概率。目前,扩散模型在可控文本生成中的应用研究还处于初步探索阶段

细粒度控制生成过程

图5:细粒度控制生成过程。

  • Diffusion-LM(Li等人,2022b)是一种基于连续扩散的可控语言模型,已成功应用于六个细粒度控制生成任务。然而,Diffusion-LM在困惑度、解码速度和收敛速度方面还有很大的优化和改进空间,但它展示了扩散模型在提高文本生成任务中的可控性方面的潜力。

  • Masked Diffuse LM(Chen等人,2023),受语言特征的启发,提出在正向过程中对损坏的文本应用策略性软掩蔽,并通过直接文本预测对其进行迭代去噪。与Diffusion-LM(Li等人,2022b)相比,该模型通过五个可控的文本生成任务具有更低的训练成本和更好的性能。

  • 基于潜在扩散能量的模型Latent Diffusion Energy-Based Model , LDEBM)(Yu等人,2022a)结合了扩散模型和基于潜在空间能量的模型,使用扩散恢复似然学习(diffusion recovery likelihood learning)来解决采样质量差和不稳定的问题。它在条件响应生成和情感可控生成等几个具有挑战性的任务中表现出卓越的可解释文本建模性能。

无约束文本生成

无约束文本生成(Li等人,2022a),也称为无条件文本生成,是指模型基于训练语料库生成没有特定主题或长度限制的文本的过程。目前,扩散模型已被提出并用于无约束文本生成。

  1. D3PM(Discrete Denoising Diffusion Models) Austin等人,2021):

    • D3PM 开发了一种结构化的分类腐败过程,通过使用标记之间的相似性来实现渐进式腐败和去噪。
    • 该模型通过插入(MASK)令牌,以与自回归和基于掩模的生成模型进行比较,实现了在字符级文本生成上的强结果。因此,D3PM在字符级文本生成方面取得了很好的效果,同时在LM1B(十亿个单词的语言模型)上扩展到大型词汇表。
  2. DiffusionBERT(He等人,2023)

    • 创造性地提出使用BERT作为其骨干来执行文本生成,将预训练模型(PLM)与文本吸收状态(the absorption state)的离散扩散模型相结合,以解决非自回归模型的无条件文本生成问题。
    • 无条件文本生成实验表明,与D3PM(Austin等人,2021)和Diffusion-LM(Li等人,2022b)相比,困惑度和BLEU得分有显著提高。
多模态文本生成

多模态文本生成(Multi-mode text generation)是指能够同时处理多种文本生成任务的扩散模型,这些任务可能包括条件文本生成、无约束文本生成,以及其他可能的文本生成模式。以下是论文中提到的多模态文本生成模型的介绍:

  1. Self-conditioned Embedding Diffusion (SED)(Strudel等人,2022)

    1. 自条件嵌入扩散(SED)提出了一种称为自条件嵌入的连续扩散机制,该机制学习了一种灵活且可扩展的扩散模型,适用于有条件和无条件的文本生成。
    2. 值得注意的是,这项研究可以支持文本填充,为探索嵌入空间设计和填充功能奠定了基础。
  2. Step-unrolled Denoising Autoencoder (SUNDAE)(Savinov等人,2021):

    1. 步进展开去噪自编码器(SUNDAE)介绍了基于自编码器的展开去噪训练机制。与通常的去噪方法相比,它需要更少的迭代来收敛,并在机器翻译和无条件文本生成任务中表现出良好的性能。
    2. 此外,它打破了自回归限制,可以填充模板中的任意空白模式,为文本编辑和文本修复的新方法铺平了道路。
  3. Latent Diffusion for Language Generation (LD4LG)(Lovelace等人,2022):

    1. LD4LG与其他通过嵌入将离散文本转移到连续空间的工作不同,它学习了预训练语言模型潜在空间上的扩散过程,并将该框架从无条件文本生成扩展到有条件文本生成。
  4. Semi-autoregressive Simplex-based Diffusion Language Model (SSD-LM)(Han,Kumar&Tsvetkov,2023):

    1. 基于半自回归单纯形的扩散语言模型(SSD-LM)是一种在自然词汇空间上执行扩散的半自回归扩散语言模型,通过这两个关键设计特征实现了灵活的输出长度和模块化控制。在无约束和受控的文本生成任务中,SSD-LM在质量和多样性方面优于自回归基线模型。

文本扩散模型与预训练语言模型的对比

大型预训练语言模型(PLMs)基于以GPT(仅解码器模型)、BERT(仅编码器模型)和T5(编码器-解码器模型)为代表的transformers,为自然语言处理任务提供了坚实的基础。近年来发表的文章中,基于预训练的研究已占据主流地位,因此本综述考察了PLMs与扩散模型的异同。

通过在大规模语料库上的深度学习训练,预训练模型不仅能学习到更丰富和更有针对性的语义信息,还能理解自然语言的语法和上下文,并生成连贯且合乎逻辑的文本。PLMs在许多NLP领域和应用中展示了令人印象深刻的成果。其训练过程可分为:(1)预训练:PLMs首先在大规模文本上训练一个通用的大型语言模型,其中包含丰富的上下文语义信息;(2)微调:根据不同的下游任务,预训练模型在标注数据上进行判别性学习。

在比较自回归模型和扩散模型时,必须在生成速度、多样性等相关因素方面平衡它们的优缺点。此考量有助于根据具体应用场景和任务需求做出明智选择。在本综述中,我们在下表3中所示的四个维度上比较了PLMs和基于扩散的文本生成模型。

生成方法
PLMs

通常采用自回归方法进行文本生成,通过时间序列预测技术生成句子。经过训练的语言模型对离散单词序列进行采样,以根据之前的内容预测下一个可能的单词

自回归语言模型

图6:自回归语言模型。

形式上,该模型通过计算条件概率 P ( x i ∣ x 1 , x 2 , . . . , x i − 1 ) P(x_i|x_1,x_2,...,x_{i-1}) P(xix1,x2,...,xi1)得到单词 x i x_i xi的概率得分(如图5所示)。在原始序列( x 0 , . . . , x i − 1 x_0,...,x_{i-1} x0,...,xi1)后串联 x i x_i xi以获得新的表示( x 0 , . . . , x i − 1 , x i x_0,...,x_{i-1},x_{i} x0,...,xi1,xi),该模型使用新的表示来预测下一个单词 x i + 1 x_{i+1} xi+1的概率得分。这样,下一个单词将在循环中连续生成,直到生成<eos>或另一个约束标记。

  • p ( x i , x i + 1 , . . . , x l ∣ x 0 , x 1 , . . . , x i − 1 ) = ∏ i = t l p ( x i ∣ x 1 , x 2 , . . . , x i − 1 ) p(x_i,x_{i+1},...,x_l|x_0,x_1,...,x_{i-1})=\prod_{i=t}^lp(x_i|x_1,x_2,...,x_{i-1}) p(xi,xi+1,...,xlx0,x1,...,xi1)=i=tlp(xix1,x2,...,xi1)
扩散模型

NLP中扩散模型的生成方法不同于传统的自回归方法。从图7可以看出,它的训练过程从一个原始句子开始。这些模型通过首先不断添加噪声(通常是高斯噪声)来生成句子,以获得完全不可见的噪声分布,然后通过高斯噪声的迭代去噪来生成单词向量。这种生成方法引入了固有的随机性,增强了生成结果的多样性。

基于扩散的生成过程

图7:基于扩散的生成过程。

处理离散文本
PLMs

由于文本的离散特性,将单词放入NLP模型中需要特殊处理,主要包括独热编码、分布式表示、词袋表示和词嵌入表示。

  • one-hot编码:使用完全不同的向量来表示单词,这可能会导致数据稀疏;
  • 分布式表示:基于词的上下文分布来表示词,客观上借鉴了人类的联想能力。然而,仍然存在稀疏性等问题,甚至高频词也会误导计算结果。
  • 词袋表示(bag-of-words):是在无序文本的情况下建立的,它通过将单词的所有对应向量相加来形成最终的文本向量表示。
  • 单词嵌入(word embedding):使用嵌入层将离散特征映射到连续向量空间,其中每个特征值对应一个唯一的向量。同时,嵌入层可以通过预训练或随机初始化来学习,并与其他模型参数一起训练。
扩散模型

尽管PLM在文本生成方面已被证明是成功的,但它们的自回归生成方法遵循从左到右和逐字模式,这在考虑灵活性和可控性时带来了困难。为了解决这些局限性,一些研究人员提出使用扩散模型。然而,一个主要的挑战在于将离散文本纳入模型。目前,在所有基于扩散的模型中,有两种主流方法:

  • 离散文本扩散模型在处理离散扩散模型时,首先将句子细化到标记级别,然后通过建立类别分布函数将不同的标记映射到转移矩阵。例如,He等人(2023)提出了一种吸收状态,要么保持每个令牌不变,要么以一定的概率将其转换为[MASK]令牌,从而形成转移矩阵并训练矩阵收敛,即所有令牌都变为[MASK]。然而,研究人员观察到,在令牌转换过程中有可能生成未知的标记(例如,标签可能会被损坏并以一定的概率随机标记)。
  • 连续文本扩散模型通过一种简单有效的技术避免了上述不稳定性。Qin等人(2022)提出将离散语言模型的输出放宽为连续变量,以帮助更准确地学习语义信息。连续文本扩散模型首先利用“嵌入”技术将离散文本编码为低维、语义丰富的连续变量,然后进行正向扩散和反向去噪,以获得潜在变量。最后,使用舍入方法检索离散文本,将潜在变量映射回单词。

总体而言,根据扩散模型的输入在空间上是否连续,文本生成扩散模型可分为离散文本扩散模型(Austin等人,2021;Reid,Hellendoorn&Neubig,2022;Zheng等人,2023;He等人,2023)和连续文本扩散模型(Li等人,2022b;Savinov等人,2021)。离散文本扩散模型在令牌级别执行扩散过程,其优点是无需额外的嵌入操作即可直接处理离散文本数据。然而,其缺点是难以捕获令牌上下文的语义信息。相比之下,连续文本扩散模型采用了一种更稳定的技术,通过在连续的潜在空间上扩散,可以包含更丰富的文本语义信息。然而,挑战在于将离散的文本数据转换为连续的潜在向量,这可能会导致信息丢失。每种方法都有其独特的优势和挑战,在文本生成领域提供了广泛而深入的研究方向。

时间复杂度
PLMs

预训练的语言模型通常在大量未标记的文本数据上进行预训练,通常是自回归模型。在自回归模型的训练过程中,每个位置的元素都取决于之前生成的元素。预训练语言模型的时间复杂度主要由模型中的层数、隐藏层的大小、注意头的数量和输入序列的长度等因素决定。给定模型的时间复杂度近似为 O ( L N 2 D ) O(LN^{2D}) O(LN2D),其中 L L L表示层数, N N N表示句子长度, D D D表示隐藏层维度。

在生成阶段,自回归模型必须执行采样操作,生成时间复杂度与序列长度呈线性相关。每个位置的正向计算时间复杂度约为 O ( L D N ) O(LDN) O(LDN),其中 L L L是序列长度, D D D是表示每个位置的d-维向量, N N N表示在每个位置执行正向计算的时间成本。

扩散模型

扩散模型的时间复杂度主要取决于采样步骤的数量和每一步的计算复杂度。在扩散模型中,生成过程涉及多次迭代,每次迭代都需要由神经网络(如Transformer)进行预测。因此,扩散模型的时间复杂度可能相对较高,特别是在面临大量采样步骤时。

目前,关于扩散模型的时间复杂性的研究很少。为了更直观地比较扩散模型和PLM之间的时间复杂度,我们参考了现有的工作和实验数据。以基于BERT的扩散模型DiffusionBERT为例,当两种模型都使用64步时,DiffusionBER的推理时间是GPT的两倍多,如表4所示。在RDM中注意到,连续扩散模型的时间复杂度比GPT2高几个数量级。然而,由于实施了各种优化技术,RDM的运行速度比GPT2等规模相当的自回归基线快约10倍。

表4:推理时间比较。

MethodStepInference times (s)
DiffusionBERT644.25
Diffusion-LM2,00083.67
GPT641.55

总之,扩散模型通常表现出更高的时间复杂度,因为它们需要多次迭代才能从噪声中恢复文本。相比之下,PLM的时间复杂度较低,因为它们只需要一次前向传递就可以从上下文中预测下一个单词。选择合适的模型取决于特定的应用场景和要求。例如,在扩散模型中,生成过程通常涉及整个序列的并行生成,而自回归模型必须在每个位置顺序生成元素。因此,在生成长句时,扩散模型可能更有效。

生成结果的多样性
PLMs

对于文本生成任务,我们通常使用BLEU(Papineni等人,2002)、ROUGE(Lin,2004)和MAUVE(Darling等人,2004)等评估指标来衡量生成文本的质量。在表5中,我们总结了不同模型在IWSLT14(Cettolo等人,2014)、WMT14(Bojar等人,2014年)和WMT16(Bojar等,2016)数据集上的BLEU和SacreBLEU评估结果。从现有的研究中可以看出,基于扩散的模型生成的文本质量与自回归语言模型的文本质量相当在某些情况下,基于扩散模式生成的文本甚至超过了自回归语言模式

表5:对IWSLT14、WMT14和WMT16数据集的BLEU和SacreBLEU评估。

|Models|IWSLT14 DE-EN|WMT14 EN-DE|WMT16 EN-RO||||

BLEUSacreBLEUBLEUSacreBLEUBLEUSacreBLEU
Transformer32.6233.6126.3726.8532.7632.86
CMLM26.4129.4125.9423.2232.1331.26
DiffuSeq27.0313.7315.3723.3725.45
SeqDiffuSeq28.6514.3717.1423.9826.17
Difformer32.1826.523.832.52
CDCD2019.7
AR-DIFFUSION35.6232.35
DiNoiSER31.6125.8832.84

结果多样性对不同类型任务的影响各不相同。对于聊天机器人和故事生成等生成任务,生成结果的多样性可以增强交互性和创造力,改善用户体验。为了评估生成文本的多样性,GENIE(Lin等人,2022)、AR-DIFFFUSION(Wu等人,2023)和DiffusionBERT(He等人,2023年)利用SELF-BLEU(Zhu等人,2018)(分数越低,表示生成文本的差异性越高)作为评估指标,而DIFFUSION NAT采用Distinct-1/2(Li等人,2015)(分数越多,表示生成的文本的差异越大)作为指标。图8显示了一些模型的多样性比较结果。从结果多样性的角度来看,扩散模型比预训练的语言模型具有显著的优势。例如,如图8A所示,AR-DIFFFUSION和GENIE生成的文本多样性明显高于BART(Lewis等人,2020)模型。这是因为PLM是通过大规模文本数据的自监督学习获得的,这往往会生成更常见的短语和句子,从而产生类似的结果。然而,扩散模型通过噪声注入和随机采样等技术增强了生成的随机性,从而增加了生成文本的丰富性和多样性。总之,这些实验结果共同表明,扩散语言模型生成的文本在保持质量的同时呈现出丰富的多样性

基于扩散的生成过程

图8:基于扩散的生成过程。

一般来说,扩散模型和PLM在文本生成领域都有其独特的优势和局限性。在文本质量方面,这两种模型都可以生成平滑、连贯和有意义的文本。然而,扩散模型在产生多样性方面表现出色,能够创建不同风格、情感和主题的文本。值得注意的是,扩散模型可能更倾向于生成偏离常识或逻辑的内容,而预先训练的语言模型可能倾向于生成重复或无关的文本。关于生成速度,扩散模型相对较慢,需要多次迭代才能获得最终结果。为了提高生成速度,扩散模型可以采用各种加速技术,如并行化。此外,扩散模型提供了可插拔可控性的能力。总之,它们各有优缺点,可以相互启发,在发电效率和用户体验之间实现更好的平衡。

因此:

  • PLMs:由于倾向于选择概率高的词,可能产生相对保守和相似的生成结果
  • 扩散模型:通过引入更多的随机性,生成的文本倾向于展示多样性。
生成方向
  • PLMs:自回归模型按照从左到右、逐词的模式生成文本。
  • 扩散模型:生成过程从一个原始句子开始,通过添加噪声和迭代去噪来生成句子,这种方法引入了固有的随机性,增强了生成结果的多样性。

潜在研究方向

虽然扩散模型在文本生成方面取得了进展,但仍然存在各种潜在的挑战,如收敛缓慢和训练时间长。为了应对这些挑战,研究人员提出了一系列旨在提高扩散模型性能的方法和技术。然而,扩散模型在文本生成领域仍具有巨大的发展潜力,仍有许多探索有待进行。在本节中,我们将探讨文本生成领域扩散模型的几个潜在研究方向。

零样本任务(Zero-shot tasks)

扩散模型是一种基于概率推理的生成模型,它通过对数据的概率分布和随机抽样进行建模来生成新的样本。面对零样本问题,扩散模型可以利用学习到的数据分布特征和来自训练阶段的先验知识来生成新的样本。在计算机视觉领域,研究表明扩散模型具有处理零样本问题的能力(Xu et al.,2023a;Wang et al.,2021)。同样,在NLP领域,零样本扩散的开发者(Nachmani&Dovrat,2021)发现扩散模型可以解决零样本翻译问题。未来,在可控文本生成中,将有可能控制生成样本的特定属性以满足特定条件。此外,扩散模型生成的数据表现出多样性,使用扩散模型进行数据增强可以在一定程度上解决数据有限的问题

多模态扩散模型(Multimodal diffusion models)

多模态已成为一种趋势,并在各个领域显示出巨大的潜力(Zhu等人,2023)。扩散模型已经可以处理来自不同模态(文本、图像、音频等)的数据,如果可以构建一个统一的多模态扩散模型,可以探索模态之间的互补性和相关性,以获得更准确和全面的信息,准确理解文本,并提高情感分析、视觉问答和图像描述等任务的性能。目前,许多研究已经成功地实现了从一种模态到另一种模态的生成扩散模型。例如,研究人员在文本到音频(Yang等人,2023;Huang等人,2023b,2023a)、文本到图像(Zhang,Rao&Agrawala,2023;Ruiz等人,2023)和图像到文本(Fujitake,2023)方面取得了重大进展。除了对单跨模态转换的研究外,还有大量研究提出了多模态相互引导的生成方法(Huang等人,2022;Yang,Chen&Liao,2023;Ma等人,2023)。例如,Huang等人(2022)采用图像和文本模态共同指导图像的生成,实现了更高程度的可控性。此外,一些研究提出了统一的扩散框架,如UniDiffuser(Bao等人,2023)和Versatile diffusion(Xu等人,2023b)。UniDiffuser不仅包含图像和文本协同生成、图像和文本重写等多种功能,还实现了各种模态之间的模态间转换。对于文本生成任务,统一的多模态扩散模型可以探索模态之间的互补性和相关性,从而获得更准确、更全面的信息,准确理解文本,提高情感分析、视觉问答和图像描述等任务的性能。

与预训练语言模型的结合(Combination with PLMs)

预训练和微调是当前研究中广泛采用的,是NLP领域不可或缺的关键技术。它们可以捕获丰富的语义信息,减少计算资源的消耗。目前,一些研究将扩散模型与预训练语言模型BERT相结合(Dieleman等人,2022;Chen等人,2023;He等人,2023)。这主要是因为预训练的语言模型是在大型文本语料库上训练的,具有语言建模能力,同时也可以加速推理。在未来的工作中,可以考虑将扩散模型与预训练模型集成的更有效的方法,例如结合上下文学习、即时学习和其他技术。

加速采样过程(Speeding up sampling)

在扩散模型中,生成样本通常需要多次迭代计算。一些研究,如SED(Strudel等人,2022),指出了扩散模型中低采样效率的局限性,这确实是扩散模型的一个缺点。为了解决这个问题,在计算机视觉领域,有一些研究提出了不同的有效采样策略(Bond-Taylor等人,2022;Xiao,Kreis&Vahdat,2022;Watson等人,2022)。这些方法在许多情况下证明了将采样速度加倍的能力。未来,我们相信,除了设计专门的采样策略外,还可以从计算机视觉中成功的采样策略中汲取灵感,并将其应用于NLP领域。

设计嵌入空间(Designing embedding space)

为了在连续空间上使用扩散模型,通常使用嵌入将离散文本映射到连续空间。嵌入空间在训练过程中是可学习的,嵌入的目标是通过学习数据的表示将输入数据映射到低维向量空间。然而,在训练过程中,为了最小化损失函数,嵌入可能会将所有输入数据映射到类似的嵌入空间,导致损失函数崩溃。这将导致模型无法区分不同的样本。因此,有必要采取一定的策略来指导嵌入空间的学习,并设计更好的嵌入空间,以确保原始数据得到适当的表示。

除了上述探索点,扩散模型在文本生成上还有以下探索空间:

  • 模型可解释性:提高扩散模型的可解释性,使其生成过程更加透明,用户能够理解模型的决策过程。
  • 控制生成质量:研究如何在保持生成多样性的同时,提高生成文本的准确性和一致性。
  • 跨语言和跨文化适应性:探索扩散模型在不同语言和文化背景下的适应性和生成能力。
  • 长期依赖问题:解决在长文本生成中保持长期依赖关系的问题,确保文本的连贯性和逻辑性。
  • 实时交互应用:针对实时交互式应用(如聊天机器人),优化扩散模型以满足低延迟和高响应性的需求。

扩散模型在文本生成上的研究仍处于相对早期阶段,未来有很多机会可以进一步探索和发展。随着技术的进步和新算法的提出,扩散模型有望在多种文本生成任务中发挥更大的作用。

结论

本文研究了文本扩散模型的最新进展。首先,我们简要介绍了文本生成及其子任务,并详细阐述了扩散模型的公式。其次,我们回顾了将扩散模型应用于条件文本生成、受控文本生成和无约束文本生成任务的文章。第三,我们对扩散模型和当前主流模型(PLM)进行了全面比较,探讨了它们在多个维度上的差异,并强调了扩散模型在文本生成方面的强大优势。

对扩散模型的调查全面概述了有条件和无约束文本生成的任务。同时,我们还提出了扩散模型可能面临的挑战和未来的研究方向。我们希望这项调查能够促进扩散模型在NLP领域的进展。

扩散模型的其他应用

  • 文本生成,Li X L, Thickstun J, Gulrajani I, et al. Diffusion-LM Improves Controllable Text Generation[J]. arXiv preprint arXiv:2205.14217, 2022.

  • 少样本条件生成,Sinha A, Song J, Meng C, et al. D2c: Diffusion-decoding models for few-shot conditional generation[J]. Advances in Neural Information Processing Systems, 2021, 34: 12533-12548.

  • 翻译,Nachmani E, Dovrat S. Zero-Shot Translation using Diffusion Models[J]. arXiv preprint arXiv:2111.01471, 2021.

  • 对话生成,Liu S, Chen H, Ren Z, et al. Knowledge diffusion for neural dialogue generation[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2018: 1489-1498.

  • 视频生成,Ho J, Salimans T, Gritsenko A, et al. Video diffusion models[J]. arXiv preprint arXiv:2204.03458, 2022.

  • 音乐生成,Mittal G, Engel J, Hawthorne C, et al. Symbolic music generation with diffusion models[J]. arXiv preprint arXiv:2103.16091, 2021.

  • 手写生成,Luhman T, Luhman E. Diffusion models for handwriting generation[J]. arXiv preprint arXiv:2011.06704, 2020.

  • 跨模态条件生成,Zhu Y, Wu Y, Olszewski K, et al. Discrete Contrastive Diffusion for Cross-Modal and Conditional Generation[J]. arXiv preprint arXiv:2206.07771, 2022.

  • 语音生成,Jeong M, Kim H, Cheon S J, et al. Diff-tts: A denoising diffusion model for text-to-speech[J]. arXiv preprint arXiv:2104.01409, 2021.
    Popov V, Vovk I, Gogoryan V, et al. Grad-tts: A diffusion probabilistic model for text-to-speech[C]//International Conference on Machine Learning. PMLR, 2021: 8599-8608.

  • 少样本,Giannone G, Nielsen D, Winther O. Few-Shot Diffusion Models[J]. arXiv preprint arXiv:2205.15463, 2022.

  • 检索增强的扩散模型,Blattmann A, Rombach R, Oktay K, et al. Retrieval-Augmented Diffusion Models[J]. arXiv preprint arXiv:2204.11824, 2022.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894085.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一起搭WPF架构之livechart的MVVM使用介绍

一起搭WPF架构之livechart使用介绍 前言ModelViewModelView界面设计界面后端 效果总结 前言 简单的架构搭建已经快接近尾声了&#xff0c;考虑设计使用图表的形式将SQLite数据库中的数据展示出来。前期已经介绍了livechart的安装&#xff0c;今天就详细介绍一下livechart的使用…

03 设计模式-创造型模式-单例模式

单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建…

HarmonyOS开发(State模型)

一、State模型概述 FA&#xff08;Feature Ability&#xff09;模型&#xff1a;从API 7开始支持的模型&#xff0c;已经不再主推。 Stage模型&#xff1a;从API 9开始新增的模型&#xff0c;是目前主推且会长期演进的模型。在该模型中&#xff0c;由于提供了AbilityStage、Wi…

【MR开发】在Pico设备上接入MRTK3(二)——在Unity中配置Pico SDK

上一篇文档介绍了 【MR开发】在Pico设备上接入MRTK3&#xff08;一&#xff09;在Unity中导入MRTK3依赖 下面将介绍在Unity中导入Pcio SDK的具体步骤 在Unity中导入Pico SDK 当前Pico SDK版本 Unity交互SDK git仓库&#xff1a; https://github.com/Pico-Developer/PICO-Un…

基于SpringBoot+Vue+uniapp微信小程序的垃圾分类系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

面试题:Redis(七)

1. 面试题 2. 缓存预热 当Redis暂时没有数据&#xff0c;但MySQL中有数据时&#xff0c;由程序员、中间件、写段程序提前访问该数据&#xff0c;使得数据进行回写进Redis&#xff0c;从而达到缓存预热的效果&#xff0c;这样可以使得一开始访问页面程序的用户也没有卡顿&#x…

机器学习核心:监督学习与无监督学习

个人主页&#xff1a;chian-ocean 文章专栏 监督学习与无监督学习&#xff1a;深度解析 机器学习是现代人工智能的核心支柱&#xff0c;已广泛应用于从数据挖掘到计算机视觉再到自然语言处理的诸多领域。作为机器学习最主要的两大类型&#xff0c;监督学习&#xff08;Super…

自定义注解和组件扫描在Spring Boot中动态注册Bean(一)

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 在Spring Boot中&#xff0c;自定义注解和组件扫描是两种强大的机制&#xff0c;它们允许开发者以声明性的方式动态注册Bean。这种方式不仅提高了代码的可读性和可维护性&#xff0c;还使得Spring Boot应用的…

【Windows】Devops jenkins pipeline调用powershell脚本 New-PSSession报错 连接到远程服务器 失败 拒绝访问

错误 powershell.exe : New-PSSession : [192.168.1.1] 连接到远程服务器 192.168.1.1 失败&#xff0c;并显示以下错误消息: 拒绝访问 原因 Windows 平台默认安装的jenkins启动用用户是SYSTEM 创建一个用户&#xff08;如&#xff1a; yeqiang&#xff09;隶属于Administra…

嵌入式职业规划

嵌入式职业规划 在嵌入式的软件开发中&#xff0c;可以分为&#xff1a; 嵌入式MCU软件开发工程师&#xff1b; 嵌入式Linux底层&#xff08;BSP&#xff09;软件开发工程师&#xff1b; 嵌入式Linux应用开发工程师&#xff1b; 嵌入式FPGA算法开发工程师 对于前两个阶段 …

FastGPT本地开发 之 通过Navicat管理MongoDB、PostgreSQL数据库

1. 背景 前期已经完成FastGPT的本地化部署工作&#xff0c;通过Docker启动FastGPT的相关容器即可运行。&#xff08;共6个容器&#xff09; 2.本地化开发 2.1 前置依赖 2.2 源码拉取 git clone gitgithub.com:labring/FastGPT.git2.3 数据库管理 本地化运行的FastGPT使用…

实践甘肃数据挖掘挑战赛作物与杂草的智能识别,基于YOLOv7全系列【tiny/l/x】参数模型开发构建田间低头作物杂草智能化检测识别模型

一、背景 田间杂草的有效管理是现代农业生产中面临的重要挑战之一。杂草不仅竞争作物的养分、 水分和阳光&#xff0c;还可能成为害虫和病原体的寄主&#xff0c;从而降低农作物的产量和品质。因此&#xff0c;开发 高效、精确的杂草检测和管理系统对于提高农业生产效率、降低化…

闺蜜机为什么会火?

闺蜜机作为一种集娱乐、学习、健身等多功能于一体的家居设备&#xff0c;近年来逐渐受到消费者的青睐。以下是对闺蜜机的详细介绍&#xff1a; 一、定义与特点 定义&#xff1a;闺蜜机是一种屏幕尺寸介于18~32英寸之间、可触屏、自带支架且支持多个角度调节、底部自带滑轮可移…

ROS理论与实践学习笔记——6 ROS机器人导航(仿真)

在 ROS 中&#xff0c;机器人导航&#xff08;Navigation&#xff09;是由多个功能包组合而成的系统&#xff0c;统称为导航功能包集&#xff08;navigation stack&#xff09;。它提供了一个全面的框架&#xff0c;使得移动机器人能够自主导航到指定目标点&#xff0c;同时避开…

分析调优、性能测试曲线图

目录 一、分析调优 性能测试分析的关键指标 分析步骤 收集数据&#xff1a; 找到瓶颈&#xff1a; 性能调优策略 调优硬件资源&#xff1a; 数据库调优&#xff1a; 持续监控和改进 二、性能测试曲线图 1. 轻负载阶段&#xff08;Light Load&#xff09; 2. 重负载…

非淘系阿里231滑块 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我删…

Leetcode—1188. 设计有限阻塞队列【中等】(多线程)

2024每日刷题&#xff08;183&#xff09; Leetcode—1188. 设计有限阻塞队列 C实现代码 class BoundedBlockingQueue { public:BoundedBlockingQueue(int capacity) {sem_init(&enSem, 0, capacity);sem_init(&deSem, 0, 0);}~BoundedBlockingQueue() {sem_destroy(…

WordPress 禁用上传媒体图片自动生成缩略图及多尺寸图片教程

一、在 设置-媒体-媒体设置 中几个尺寸大小的设置不勾选或设置为 0&#xff0c;如下图&#xff1a; 二、找到主题文件 function.php 文件&#xff0c;打开后&#xff0c;在 <?php 后面添加如下代码&#xff1a; function.php 文件路径一般为&#xff1a;WordPress网站根目录…

Nginx - 实现 TCP/DUP流量的按 IP 动态转发

文章目录 需求背景需求目标&#xff1a;使用场景&#xff1a;成功标准&#xff1a;技术要求&#xff1a; Ng配置测试验证 需求 Nginx Stream TCP 协议按 IP 转发 背景 为了优化网络性能和提升服务的可用性&#xff0c;我们需要在 Nginx 中配置 stream 模块&#xff0c;使其根…

力扣题解(鸡蛋掉落)

887. 鸡蛋掉落 已解答 困难 相关标签 相关企业 给你 k 枚相同的鸡蛋&#xff0c;并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 0 < f < n &#xff0c;任何从 高于 f 的楼层落下的鸡蛋都会碎&#xff0c;从 f 楼层或比它…