用图 2 的风格画图 1 的猫猫并给它戴上一顶帽子。谷歌新计划的一种图象生成模型已经能做到这一点了!通过引入指令微调技术,多模态大模型可以根据文本指令描述的目标和多张参照图象准确生成新图象,效果堪比 PS 大神抓着你的手助你 P 图。
在利用大型说话模型(LLM)时,我们都已经见证过了指令微调的重要性。如果应用得当,通过指令微调,我们能让 LLM 帮助我们完成各种不同的工作,让其变成诗人、程序员、剧作家、科研助理甚至投资经理。
现在,大模型已经进入了多模态时代,指令微调是否依然有效呢?比如我们能否通过多模态指令微调控制图象生成?不同于说话生成,图象生成一开始就涉及到多模态。我们可否有效地让模型掌握多模态的复杂性?
为了解决这一难题,Google DeepMind 和 Google Research 提出可将多模态指令要领用于图象生成。该要领可将不同模态的信息交织在一起来表达图象生成的前提(图 1 左图给出了几个示例)。
具体来说,多模态指令可巩固说话指令,比如用户可让生成模型按照指定参照图象的风格对所生成的图象从事渲染。如此一来,就能以对人类而言很直观的交互界面有效地为图象生成工作设定多模态前提。
鉴于这一思路,该团队打造了一个多模态指令图象生成模型:Instruct-Imagen。
论文地址:https://arxiv.org/abs/2401.01952
该模型利用了一种两阶段训练要领:首先巩固模型处置惩罚多模态指令的能力,然后忠实地遵循多模态的用户意图。
在第一阶段,该团队采用了一个预训练的文本到图象模型,其工作是处置惩罚额外的多模态输入;之后再对其从事微调,使其能准确地响应多模态指令。具体而言,他们采用的预训练模型是一个扩散模型(diffusion model),并利用相似的 (图象,文本) 上下文对其从事了巩固,这些上下文取自一个网络规模级的 (图象,文本) 语料库。
在第二阶段,该团队在多种图象生成工作上对模型从事了微调,其中每个工作都搭配了对应的多模态指令 —— 这些指令中囊括了各自工作的关键要素。经过以上步骤,所得到的模型 Instruct-Imagen 可以非常娴熟地处置惩罚多种模态的融合输入(比如草图加用文本指示描述的视觉样式),从而可以生成准确符合上下文且足够亮眼的图象。
如图 1 所示,Instruct-Imagen 表现卓越,能够理解复杂的多模态指令并生成忠实遵照人类意图的图象,甚至能很好地处置惩罚以前从未见过的指令组合。
根据人类的反馈表明,在许多实例中,Instruct-Imagen 不仅能媲美针对特定工作的模型处置惩罚对应工作的表现,甚至还能超越它们。不仅如此,Instruct-Imagen 还表现出了强大的泛化能力,可以用于未曾见过和更复杂的图象生成工作。
用于生成的多模态指令
该团队利用的预训练模型是扩散模型并且用户可以为其设定输入前提,具体请参看原论文。
对于多模态指令,为了保证通用性和泛化能力,该团队提出了一种统一的多模态指令花式,其中说话的作用是明确陈述工作的目标,多模态前提则是作为参照信息。
这种新提出指令花式包含两个关键组件:(1) 有效负载文本指令,其作用是详细描述工作目标并给出参照信息标识,比如 [ref#?]。(2) 多模态的上下文,带有配对的 (标识 + 文本,图象)。然后,该模型利用一个共享的指令理解模型来处置惩罚文本指令和多模态上下文 —— 这里并不会限定上下文的具体模态。
图 2 通过三个示例展示了这一花式可以如何表示以前的各种生成工作,这说明这种花式可以兼容以前的图象生成工作。更重要的是,说话很灵活,因此无需针对模态和工作从事任何专门计划,就能将多模态指令扩展用于新工作。
Instruct-Imagen
Instruct-Imagen 的基础是多模态指令。鉴于此,该团队鉴于一种预训练的文本到图象扩散模型计划了模型架构,即级联扩散模型(cascaded diffusion model),使其可以完全采用输入的多模态指令前提。
具体来说,他们利用了 Imagen 的一个变体版本,参阅论文《Photorealistic text-to-image diffusion models with deep language understanding》,并鉴于他们的内部数据源从事了预训练。其完整模型包含两个子组件:(1) 文本到图象组件,其工作是仅利用文本 prompt 生成 128×128 分辨率的图象;(2) 文本前提式超分辨率模型,其可将 128 分辨的图象提升至 1024 分辨率。
至于对多模态指令的编码,可见图 3(右),其中展示了 Instruct-Imagen 编码多模态指令的数据流。
以两阶段要领训练 Instruct-Imagen
Instruct-Imagen 的训练流程分为两个阶段。
第一阶段是检索巩固式文本到图象训练,即利用经过巩固的检索到的近邻 (图象,文本) 对继续训练文本到图象的生成。
第二阶段则是对第一阶段的输出模型从事微调,这会用到混合的多样化的图象生成工作,其中每个工作都搭配了对应的多模态指令。具体来说,该团队利用了 5 个工作类别的 11 个图象生成数据集,见表 1。
在这两个训练阶段中,模型都是端到端优化的。
实验
该团队对新提出的要领和模型从事了实验评价,并深度分析了 Instruct-Imagen 的计划和失败模式。
实验设置
该团队在两种设置下对模型从事了评价,即领域内工作评价和零样本工作评价,其中后一种设置比前一种设置更具挑战性。
主要结果
图 4 比较了 Instruct-Imagen 和基准要领及以前的要领,结果表明其在领域内评价和零样本评价上足以媲美以前的要领。
这表明多模态指令训练可以巩固模型在训练数据有限的工作(比如风格化生成)上的性能,同时还能维持在数据丰富的工作(比如生成像照片的图象)上的效果。如果没有多模态指令训练,多工作基准往往会得到较差的图象质量和文本对齐效果。
举个例子,在图 5 的上下文风格化(in-context stylization)示例中,多工作基准难以分辨风格与物体,于是在生成结果中复现了物体。出于类似的原因,其在风格迁移工作上也表现很差。这些观察凸显了指令微调的价值。
不同于依赖针对特定工作的当前要领或训练,Instruct-Imagen 通过利用组合不同工作的目标的指令并在上下文中执行推理,可以高效地管理组合式工作(无需微调,每个示例需要 18.2 秒)。
如图 6 所示,Instruct-Imagen 在指令跟随和输出质量方面总是优于其它模型。
不仅如此,在多模态上下文中存在多个参照的情况下,多工作基准模型无法将文本指令与参照对应起来,导致一些多模态前提被忽略。这些结果进一步展现了新提出的模型的有效性。
模型分析和消融研究
该团队对模型的限制和失败模式从事了分析。
比如该团队发现,微调后的 Instruct-Imagen 可以编辑图象。如表 2 所示,通过比较以前的 SDXL-inpainting、在 MagicBrush 数据集上微调过的 Imagen 以及微调后的 Instruct-Imagen,可以发现微调后的 Instruct-Imagen 大幅优于专门为鉴于掩码的图象编辑计划的模型。
但是,微调后的 Instruct-Imagen 却会在编辑后的图象中生成伪影,尤其是超分辨率步骤之后的高分辨率输出,如图 7 所示。研究者表示,这是由于该模型以前没有学习过直接从上下文准确地复制像素。
该团队还发现,检索巩固式训练有助于提升泛化能力,结果如表 3 所示。
对于 Instruct-Imagen 的失败模式,研究者发现,当多模态指令更复杂时(至少 3 个多模态前提),Instruct-Imagen 难以生成遵从指令的结果。图 8 给出了两个示例。
下面再展示一些在训练中未曾见过的复杂工作上的结果。
该团队也从事了消融研究证明其计划组件的重要性。
不过,出于安全性考虑,谷歌目前还没有发布该研究的代码和 API。
请参阅原始论文以获取更多详细信息。