原文链接:https://www.techbeat.net/article-info?id=4323
作者:seven_

最近AIGC社区中有趣的工作可谓是层出不穷,这都得益于扩散模型(Diffusion Models)的成功,扩散模型作为生成式AI模型中的一个新兴话题,已经给我们带来了很多惊喜。但是需要注意的是,目前的文本到图像扩散模型需要大规模的文本-图像对数据集进行预训练,因此想将已有的模型扩展到缺乏标记数据的新领域中,难度非常大。这其实是基于数据驱动模型老生常谈的问题,因而本文作者建议在扩散模型领域中引入大规模检索方法来帮助模型训练,具体来说,作者结合传统的k-Nearest-Neighbors(kNN)提出了一种KNN-Diffusion模型,该模型相比普通的扩散模型具有以下几个新的功能:

  1. KNN-Diffusion可以在没有任何文本的情况下训练一个非常小且高效的文本到图像的扩散模型。
  2. KNN-Diffusion可以在推理时简单地交换检索数据库中的图像来生成分布外(unseen,增强泛化能力)的图像。
  3. KNN-Diffusion可以在执行文本驱动的局部语义操作时同时保留原本图像的整体语义
    以上三个功能一方面提升了扩散模型的数据利用效率,也在某些层面增强了模型对未知领域的泛化能力,另一方面通过所提出的文本驱动的局部语义操作机制,可以赋予模型进行细粒度图像编辑的能力

论文链接:

https://arxiv.org/abs/2204.02849

展示一些KNN-Diffusion的文本图像生成效果:

上图左侧展示了KNN-Diffusion的文本到图像效果,右侧展示了文本驱动的局部语义编辑效果,可以看到,当我们给模型输入“With a bow tie(打领带)”,模型可以非常精确地给豌豆人装上一个卡通领带。此外为了证明本文方法的鲁棒性,作者还将kNN方法应用于两个目前较为先进的扩散主干模型上,都得到了非常满意的效果。

一、引言

虽然目前大规模的文本图像扩散模型在图像生成、图像编辑甚至视频生成等任务中展现出来优秀的创造力,但是为了扩散模型的不断发展,是时候考虑如何降低扩散模型的上手难度了。目前扩散模型仍然面临几个重大挑战:

  1. 大规模的配对数据需求,为了获得高质量的生成结果,目前的扩散模型仍受限于已有的文本-图像对大规模数据集

  2. 计算成本和效率较高,在高度复杂的自然图像分布上训练扩散模型通常需要非常大的模型容量、数据、批量大小和训练时间,这对于一般的科研人员不太友好,导致扩散模型社区的成长受限。

为了解决以上问题,本文提出了一种结合传统检索方法的KNN-Diffusion模型,KNN-Diffusion可以利用KNN方法在进行大规模检索获得数据,以便于在没有任何文本数据的情况下来训练模型。具体来说,KNN-Diffusion具有两种形式的输入:

  1. 图像嵌入(在训练时)或文本嵌入(在推理时),使用多模态CLIP[1]编码器获得

  2. kNN嵌入,代表k个最相似的CLIP潜在空间中的图像。这样就可以在缺少文本的情况下,仅通过CLIP生成的嵌入进行文本图像对训练。

在模型推理阶段,只需要将输入的文本转换为kNN嵌入就可以完成新域的图像生成推理。此外作者借助CLIP模型提出了一种文本驱动的局部语义操作方法,而无需之前方法中手动指定的掩码,大大提高了图像编辑效率。下图展示了该方法的示例效果,给模型指定修改命令后,KNN-Diffusion可以自动定位到要修改的目标区域,合成一个高分辨率的图像,同时原有图像的身份语义可以被保留,而其他对比方法例如Text2Live[2]和Textual Inversion[3]可能会改变原本图像的身份信息。

二、本文方法

KNN-Diffusion模型主要由三个主要模块构成,如下图所示,(1)一个多模态文本-图像编码器,这里直接使用CLIP模型。(2)一个检索模型,由一种可以包含图像嵌入的数据结构构成它可以作为kNN搜索算法的索引向量。(3)一个图像生成网络,该网络以检索向量作为条件,并以基于扩散的图像生成模型作为backbone。在模型的训练和推理阶段,图像生成网络以k个图像嵌入作为条件,并使用检索模型进行搜索和选择以确保训练和推理中的条件分布相似,下面我们将详细介绍以上这些模块的实现细节。

2.1 检索模型

检索模型中包含有三个不可训练的模块:一个预训练的文本编码器 ftxtf_{txt}ftxt​ ,一个预训练的图像编码器 fimgf_{img}fimg​ 和一个索引 HHH 。编码器将文本描述和图像样本映射到一个联合的多模态 ddd 维特征空间Rd\mathbb{R}^{d}Rd 中。索引 HHH 中存储了一个已有数据集中的有效图像表示 H:={fimg(i)∈Rd∣i∈I}\mathcal{H}:=\left\{f_{i m g}(i) \in \mathbb{R}^{d} \mid i \in \mathcal{I}\right\}H:={fimg​(i)∈Rd∣i∈I},其中 III 表示该数据集。在训练过程中,作者使用这些索引有效地提取给定图像嵌入所处特征空间中的最近的 kkk 个邻居:

fimg(I)∈Rd−knnimg(I,k):=arg⁡min⁡h∈Hks(fimg(I),h)f_{i m g}(\mathrm{I}) \in \mathbb{R}^{d}-\text{knn}_{i m g}(\mathrm{I}, k):=\arg \min _{h \in \mathcal{H}}^{k} \mathbf{s}\left(f_{i m g}(\mathrm{I}), h\right)fimg​(I)∈Rd−knnimg​(I,k):=argminh∈Hk​s(fimg​(I),h)

其中 sss 是一个距离函数。集合 {fimg(I),knnimg(I,k)}\left\{f_{i m g}(\mathrm{I}), \text{knn}_{i m g}(\mathrm{I}, k)\right\}{fimg​(I),knnimg​(I,k)} 随后被用来作为生成模型的条件。在推理过程中,只需给定一个查询文本 ttt ,模型就会提取一个嵌入 ftxt(t)f_{t x t}(t)ftxt​(t) 。此时生成模型的条件就是这个嵌入与它在数据集 III 中的 kkk 个最近的邻居。

2.2 图像生成网络

为了证明本文方法的鲁棒性,作者将KNN-Diffusion应用于两种不同的扩散backbone中。分别是离散型扩散模型[4]和连续型扩散模型[5],虽然这两种模型在实际实现中有很大不同,但其都具有相同的理论基础。假设 x0∼q(x0)x_{0} \sim q\left(x_{0}\right)x0​∼q(x0​) 是我们图像分布中的一个样本。扩散模型q(xn∣xn−1)q\left(x_{n} \mid x_{n-1}\right)q(xn​∣xn−1​) 的正向过程是一个马尔可夫链,每一步都会增加噪声。反向过程 pθ(xn−1∣xn,x0)p_{\theta}\left(x_{n-1} \mid x_{n}, x_{0}\right)pθ​(xn−1​∣xn​,x0​) 则是一个去噪过程,从初始化的噪声状态中去除噪声。在推理阶段,该模型可以产生一个输出,从噪声开始,用 pθp_{\theta}pθ​ 逐渐的消除噪声。作者经过实验证明,在这两种扩散模型范式上,使用kNN方法都可以得到较为鲁棒的生成效果。

2.3 文本驱动的局部语义操作

之前的方法为了实现图像的局部语义编辑,往往需要依赖于用户输入的区域掩码。要么仅限于全局编辑。此外这些方法还存在其他缺陷,例如它们只能够实现局部的纹理编辑,而无法修改复杂的图像结构。而且绝大多数方法在进行编辑时会丢失掉原本图像中的身份信息


本文作者通过扩展KNN-Diffusion来解决这些问题,实现在不提供任何掩码的情况下进行局部和语义感知的图像编辑操作。上图展示了该方法的整体流程,为了实现这项任务,作者采用了一种反向思维方式,即训练模型从已编辑版本生成回原始图像。具体来说,先创建图像的编辑版本,该版本只在某些局部区域与原始图像不同。
例如给定图像 III 中一个随机的局部区域 MMM ,选取其最近的邻居区域Imanip=I⋅(1−M)+nnimg(I,1)⋅M\mathrm{I}_{manip}=\mathrm{I} \cdot(1-M)+\mathrm{nn}_{i m g}(\mathrm{I}, 1) \cdot MImanip​=I⋅(1−M)+nnimg​(I,1)⋅M 替换该区域来构建图像的编辑版本Imanip\mathbf{I}_{manip}Imanip​

其中 nnimg(I,1)n\mathrm{nn}_{i m g}(\mathrm{I}, 1)nnnimg​(I,1)n 是使用对齐算法将其与 III 对齐后得到的最近邻居。然后模型以图像的编辑版本,以及原始图像中局部区域的CLIP嵌入 fimg(I⋅M)f_{i m g}(\mathrm{I} \cdot M)fimg​(I⋅M) 作为共同输入。这个CLIP嵌入包含了当前图像所需的修改命令,可以直接应用在图像的编辑版本上,来反推回原始图像。经过这样的训练,KNN-Diffusion可以通过CLIP嵌入来精确的定位要编辑的目标区域。在推理阶段,可以将用户输入的编辑命令文本转换为CLIP嵌入输入到模型中,此时图像的编辑版本和局部区域的CLIP嵌入同事作为模型的输入条件,进而完成编辑操作。

三、实验结果

本文的实验部分在MS-COCO、LN-COCO、CUB和Public Multimodal Dataset(PMD)等多个数据库上进行,前三个数据集用来作为普通定性和定量实验的比较,而PMD数据集用来进行图像逼真度(photo-realistic)实验。为了证明本文方法的优势,作者先将KNN-Diffusion应用在其他两个扩散backbone上来展示模型的对分布外图像的处理效果。下表展示了本文方法在三个不同数据集上zero-shot设置下的实验结果。

可以看到KNN-Diffusion在所有实验场景下都获得了最低的FID分数,其他两个对比方法分别是LAFITE和FuseDream,作者为了进一步证明在文本到图像生成任务中使用检索方法的优势,作者还训练了一个模型变体no-kNN,该变体仅在图像嵌入(省略kNN索引嵌入)上进行训练,而在推理过程中,图像是使用文本嵌入生成的。可以看到缺少检索引导,模型的性能会大幅下降。

下图中作者展示了本文方法与其他方法的定性生成对比,其中第一行图像是从PMD数据集中选取的与输入文本最接近的真实图像,可以观察到,KNN-Diffusion的生成结果更加逼真也更能保留真实图像的身份内容信息。

为了进一步证明本文方法的有效性,作者在下图中展示了本文模型与目前较为流行的9种文本图像生成扩散模型进行了对比,其中包括DALL·E、CogView、VQ-Diffusion、GLIDE、Latent Diffusion(LDM)、Make-A-Scene、DALL·E2、Parti和Imagen。实验结果如下图所示。其中横轴为每个模型的参数量,纵轴为该模型在当前实验数据集上的FID指标。可以看出,尽管KNN-Diffusion是在缺乏文本数据的数据集上进行训练的,但其计算成本却显着低于使用全文本图像对(例如LDM、GLIDE)训练的模型。这表明,利用外部检索数据库可以让本文的方法在性能和模型效率之间进行权衡,特别是在减少模型中的参数数量方面。

四、总结

在论文的结尾,作者致敬了苏格兰哲学家大卫·休谟,大卫·休谟在1748年提出“我们总会发现,我们迸发出的每一个想法都是从脑海中相似的印象中复制的”,这也可以看做是本文方法的核心灵感来源。在本文中,作者建议使用大规模的检索方法,以便在没有任何文本数据的情况下训练一个新的文本到图像模型。作者通过大量的实验表明,使用外部知识库可以减轻模型学习新概念的难度,从而可以得到相对较小且高效率的模型。此外,它还为模型提供了学习适应新样本的能力。最后,作者提出了一种新的技术,利用检索方法进行文本驱动的语义操作,无需用户提供的掩码,这对于文本图像编辑领域也具有一定的启发。希望KNN-Diffusion的提出可以激发社区更多的关注如何快速降低扩散模型的使用成本,实现更多的落地应用。

参考

[1] A. Radford, J. W. Kim, C. Hallacy, A. Ramesh, G. Goh, S. Agarwal, G. Sastry, A. Askell, P. Mishkin, J. Clark, G. Krueger, and I. Sutskever, “Learning transferable visual models from natural language supervision,” in Proceedings of the 38th International Conference on Machine Learning, ICML 2021.

[2] Omer Bar-Tal, Dolev Ofri-Amar, Rafail Fridman, Yoni Kasten, and Tali Dekel. Text2live: Text driven layered image and video editing. arXiv preprint arXiv:2204.02491, 2022.

[3] Rinon Gal, Yuval Alaluf, Yuval Atzmon, Or Patashnik, Amit H Bermano, Gal Chechik, and Daniel Cohen-Or. An image is worth one word: Personalizing text-to-image generation using textual inversion. arXiv preprint arXiv:2208.01618, 2022.

[4] Shuyang Gu, Dong Chen, Jianmin Bao, Fang Wen, Bo Zhang, Dongdong Chen, Lu Yuan, and Baining Guo. Vector quantized diffusion model for text-to-image synthesis. ArXiv, abs/2111.14822, 2021

[5] Alex Nichol, Prafulla Dhariwal, Aditya Ramesh, Pranav Shyam, Pamela Mishkin, Bob McGrew, Ilya Sutskever, and Mark Chen. Glide: Towards photorealistic image generation and editing with text-guided diffusion models. arXiv preprint arXiv:2112.10741, 2021.

Illustration by Iconscout Store from IconScout

-The End-

关于我“门”

将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门-TechBeat技术社区以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com

扩散模型训练太难?来看看Meta AI最新提出的KNN-Diffusion相关推荐

  1. 模型训练太慢?显存不够用?这个算法让你的GPU老树开新花

    一只小狐狸带你解锁NLP/ML/DL秘籍 作者:小鹿鹿鹿,夕小瑶 老板,咱们就一台Titan Xp,训不动BERT呀 没钱买机器,自己想办法. 委屈T^T 我听说混合精度训练可以从算法上缓解这个问题? ...

  2. 模型训练太慢?显存不够?这个方法让你的GPU联手CPU

    随着深度学习模型复杂度和数据集规模的增大,计算效率成为了不可忽视的问题.GPU凭借强大的并行计算能力,成为深度学习加速的标配.然而,由于服务器的显存非常有限,随着训练样本越来越大,显存连一个样本都容不 ...

  3. 【NLP】大模型训练之难,难于上青天?预训练易用、效率超群的「李白」模型库来了!...

    机器之心发布 机器之心编辑部 LiBai(李白)模型库覆盖了 Hugging Face.Megatron-LM.DeepSpeed.FairSeq 这些所有主流 Transformer 库的优点,让大 ...

  4. VLM:Meta AI CMU提出任务无关视频语言模型视频理解预训练VLM,代码已开源!(ACL 2021)...

    关注公众号,发现CV技术之美 本文分享 ACL 2021 论文『VLM: Task-agnostic Video-Language Model Pre-training for Video Under ...

  5. python模型训练框架_以Python撰写 AI模型框架

    以Python撰写 AI模型框架 by 高焕堂 1. 前言: 在AI(人工智慧)方面,由于当今的机器学习本质是一种<大数据相关性支撑的>归纳性推理.软体框架的复用(Reuse)性愈高,对于 ...

  6. 太难了,斯坦福AI报告曝光!全球190万会AI,中国有5万

    就在最近,斯坦福大学AI研究所发布了< 2019 年 AI 指数报告>,其中一条数字让笔者震惊: 58% 的受访大公司表示,2019 年至少在一个业务部门采用了 AI 那就是说,近半数以上 ...

  7. 李沐论文精读系列五:DALL·E2(生成模型串讲,从GANs、VE/VAE/VQ-VAE/DALL·E到扩散模型DDPM/ADM)

    文章目录 一. 前言 1.1 DALL·E简介 1.2 DALL·E2简介 1.3 文生图模型进展 二. 引言 2.1 摘要 2.2 引言&模型结构 三. 算法铺垫 3.1 GANs 3.2 ...

  8. Stable diffusion扩散模型相关

    时隔两年半(2年4个月),我又回来研究生成技术了.以前学习研究GAN没结果,不管是技术上,还是应用产品上,结果就放弃了,现在基于diffusion的技术又把生成技术带上了一个新的高度.现在自己又来研究 ...

  9. 扩散模型探索:DDIM 笔记与思考

    DIFFUSION系列笔记|DDIM 数学.思考与 ppdiffuser 代码探索 论文:DENOISING DIFFUSION IMPLICIT MODELS 该 notebook 主要对 DDIM ...

  10. 扩散模型爆火,这是首篇综述与Github论文分类汇总

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 编译:机器之心 本文首次对现有的扩散生成模型(diffusion model)进行了全面 ...

最新文章

  1. codeception (4)Yii2下创建Acceptance Tests(验收测试)
  2. 计算机组成原理知识点概叙--计算机系统简介
  3. java怎么不增加临时变量交换值
  4. python打印log重复问题
  5. OC__part11.2
  6. Conway#39;s law(康威定律)
  7. IDEA换行CRLF, LF, CR的解释和默认设置
  8. 关于Linux开源项目基础组件make编译流程
  9. eclipse中的JSP项目连接mysql报错,找不到jdbc驱动,java项目却没问题
  10. 动态规划 —— 求解通配符问题(wildcard)
  11. 第二章 ASP.NET MVC (视图传值到控制器)
  12. java企业员工管理系统_java企业员工考勤管理系统
  13. Python 使用pip下载失败的解决方案
  14. 如何从零起步开发一款App
  15. 常用地图经纬度转换,以及遇到的问题和解决方式
  16. Prolog编程求解图搜索问题
  17. 鹰眼系统原理_飞思卡尔智能车一:山外鹰眼摄像头使用原理
  18. No symbols loaded
  19. SOT-23封装如何查找元件型号
  20. 计算机word文档无法工作,word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料)...

热门文章

  1. Thinkphp 5.x远程命令执行漏洞
  2. 工业机器人导轨 百度文库_最新工业机器人复习资料
  3. 蓝牙耳机连接笔记本音量大的问题
  4. java线上文件图片资源存储方案,定时清理垃圾文件
  5. python中Blowfish加密解密
  6. newifi mini php,NewFi(newifi mini华硕固件)
  7. 儿童节html模板,六一儿童节作文350字满分模板
  8. 函数式编程(lambda表达式)
  9. 会议审批 查询会议签字
  10. 前端获取本地ip地址