(2023,提示扩展,图像反演,文本到文本生成)自适应文本到图像生成的提示扩展

Prompt Expansion for Adaptive Text-to-Image Generation

公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)

目录

0. 摘要

3. 提示扩展数据集

3.1 图像审美数据集

3.2 图像到文本反演

3.3 查询/提示提取

4. 提示扩展模型

4.1 基础模型

4.2 重新微调

5. 可控生成

5.1 用于受控提示扩展的前缀

5.2 通用 Prompt Expansion 的前缀丢弃

5.3 多步提示扩展

7. 结果和讨论

S. 总结

S.1 主要贡献

S.2 方法


0. 摘要

文本到图像生成模型功能强大但难以使用。用户制定具体提示以获得更好的图像,但图像可能会重复。本文提出了一个提示扩展框架,帮助用户以更少的努力生成高质量、多样化的图像。提示扩展(Prompt Expansion,PE)模型将文本查询作为输入,并输出一组经过优化的扩展文本提示,当传递给文本到图像模型时,可生成更多种类的吸引人图像。我们进行了人类评估研究,结果显示通过提示扩展生成的图像在审美和多样性方面优于基线方法生成的图像。总体而言,本文提出了一种改进文本到图像生成体验的新颖有效方法。

3. 提示扩展数据集

提示扩展(PE)框架需要一个模型,以用户的文本查询作为输入,并返回 N 个文本提示作为输出,使得通过文本到图像生成的 N 个文本提示将返回一组与查询对齐的 N 个多样化、美观的图像。为了训练 PE 模型,我们需要一个将查询映射到提示的数据集,我们以反演的方式构建它。首先,我们收集审美质量高的图像,包括模型生成的图像和自然图像(参见第 3.1 节)。其次,我们将图像反演为与之密切对应的提示,其中包括 alt-text 术语(我们称之为 flavors,参见第 3.2 节)。最后,我们将反演的文本映射到一系列与用户输入更密切对应的高级查询(参见第 3.3节)。这些查询与第二步的提示配对,形成 {查询:提示} 数据集。

3.1 图像审美数据集

我们策划了两个图像数据集。第一个是Webli-Align,由来自Webli(Chen等人,2023)和Align(Jia等人,2021)数据集的图像组成,经过过滤,仅保留具有高 MUSIQ(Ke等人,2021)审美分数的图像。第二个是 CrowdSourced,通过众包(crowd-sourcing)文本到图像模型的输出获得。我们提供了一个类似于 Gradio 的文本到图像生成界面,允许大型组织的用户输入生成图像的提示。用户还可以选择点赞他们喜欢的图像。我们使用这个信号仅保留最吸引人的图像。我们保留了 80k Webli-Align(自然)和 40k CrowdSourced(生成)图像。

3.2 图像到文本反演

第二步是将图像在图像审美数据集中反转为提示文本。虽然用户查询是用户提供的输入,但提示是生成特定图像的文本。我们使用 Interrogator(CLIP-Interrogator)方法进行图像到文本反转。计算得到的提示文本是通过连接一个标题和一组 ‘flavors’ 生成的。标题是对图像内容的描述(例如,谁、什么、在哪里、什么时候)。为了生成标题,我们使用为标题任务微调过的 COCA(Yu等人,2022a)。"flavor" 是指一个描述性词/短语,可以改变图像的风格,而不会添加/更改图像的内容,例如 "印象派" 或 "dslr"。我们从大量生成图像的收集的提示中生成 flavors 列表(详见第 J 节)。

3.3 查询/提示提取

数据集准备的最后一步是计算一系列适合映射到反演文本(提示)的潜在用户查询。我们使用FLAN-PaLMChilla 62B(Chung等人,2022)进行 few-shot 提示,以生成逐渐缩短的查询和更长的提示。该模型接收将长提示映射到短查询的 few-shot 提示集作为示例。few-shot 提示的格式为{提示:查询},这些配对的示例可以在图 6 和表 2 中看到。对于图像到文本反演的每个提示,few-shot 提示示例都被前置为上下文,然后由文本到文本模型生成相应的查询。

我们提取了一系列可以映射到扩展提示的不同查询,并使用 few-sho t提示生成抽象的、具体的、短、中、长长度的查询。附录 A 中详细说明了查询类型的生成方式(例如,基于事实的查询,引出具体性)。这导致一个包含 600k {查询:提示} 对的 Prompt Expansion 数据集。我们执行 70-20-10 的训练-验证-测试拆分,并将训练集拆分为基础和重新精调的的 50-50 比例。

 

4. 提示扩展模型

我们描述了训练 Prompt Expansion 模型的两个阶段:(i)我们在 Prompt Expansion 数据集上训练基础 Prompt Expansion 模型;然后(ii)我们针对下游文本到图像模型重新微调基础模型。

4.1 基础模型

我们的 Prompt Expansion 模型是一个文本生成模型,经过训练,可使用基于 PaLM 2 语言模型家族(Anil等人,2023年)的架构将查询文本映射到扩展的提示文本。PaLM 2 是一个仅解码器的基于 Transformer 的架构,采用 UL2 目标(Tay等人,2023年)进行训练。在评估不同的模型配置后,我们使用 Prompt-tuning(Lester等人,2021年),训练了一个包含 10 亿参数的 PaLM 2 模型,如表 7 所述。我们选择了这个相对较小的基础架构,因为它需要作为复杂的高延迟文本到图像模型(例如 Imagen(Saharia等人,2022a))的前端,因此需要低资源/延迟以使整个流水线可用。对于基础数据集,我们使用 Prompt Expansion 数据集的 50% 拆分,该数据集在第 3 节中有描述,包含 30 万个 {查询:提示} 示例。

4.2 重新微调

在训练基础模型后,我们观察到它可能生成无法使文本到图像模型生成良好图像的提示。造成这种情况的主要原因是基础 Prompt Expansion 模型生成的扩展提示是基于 COCA 图像到文本反演模型偏爱的文本和图像之间的对齐。因此,我们提出了一种通用的重新微调过程:给定模型的目标行为,重新微调以过滤基础模型生成的与目标行为相符的扩展提示。为了与文本到图像模型对齐,我们构建了一个数据集,其中扩展的提示更接近下游文本到图像模型的行为。

对于 Prompt Expansion 数据集剩余的 50% 拆分中的查询,我们从基础模型生成扩展的提示,然后将其输入到下游文本到图像模型(在我们的实验中是 Imagen(Saharia等人,2022a))。我们使用查询-图像嵌入距离和提示-图像嵌入距离的加权平均(有关详细信息,请参见附录D)对这些图像进行评分,并过滤出得分低于固定阈值的 {查询:提示} 对。然后,我们仅使用这些被过滤的 {查询:提示} 对从基础模型检查点继续重新微调,从而产生 PE:重新微调模型,它经过优化以返回使文本到图像模型能够生成高质量图像的查询和 flavors。

5. 可控生成

5.1 用于受控提示扩展的前缀

到目前为止,我们已经介绍了构建通用 Prompt Expansion 模型的方法。然而,通常情况下,用户或应用程序设计人员希望控制 Prompt Expansion 策略的方向,例如添加更多 flavor 或添加特定类型的多样化细节。为了支持这些用例,我们实现了我们的 Prompt Expansion 模型的可控版本,可以通过在查询前添加 8 个支持的前缀之一来指导生成特定类型的扩展。例如,我们可以使用 FLV 前缀指导模型仅生成 flavor,或者使用 MSTP 前缀在交互式多步提示扩展场景中迭代扩展原始查询。控制生成的几个示例显示在表 2 中,支持的所有 flavor 的完整列表在表 1 中。为了训练 PE: Multi-Prefix 模型,我们从第 3 节的 Prompt Expansion 数据集开始。每个 {查询:提示} 对都分配了一个适当的前缀。在 few-shot 提示期间,一些查询/提示被格式化为抽象或详细,因此这些前缀是已知的(例如,ABST,DTL)。一些前缀(例如,RFT,MSTP)也是已知的,因为它们的 {查询:提示} 对是合成的。需要对一些 {查询:提示} 对进行前缀分类,例如将 HAST 前缀分配给返回良好美学效果的提示。前缀分配导致了 Prompt Expansion 数据集的一个新版本,其中每个查询都以一个前缀开头;这用于微调和训练 PE: Multi-Prefix 模型。

5.2 通用 Prompt Expansion 的前缀丢弃

有了 Multi-Prefix 数据集,我们探索了使用可控生成提示来改善通用 Prompt Expansion 任务性能的可能性。其思想是使用可控生成初始化模型的训练,然后在训练过程中逐渐改变其行为,猜测给定查询的适当前缀并生成匹配的扩展。例如,对于高度抽象的查询,如 "Undying Love",模型的行为应该与 ABST 前缀相匹配(见表 2)。通过一种我们称之为前缀丢弃(Prefix Dropout)的新颖学习技术来实现这一点。我们从上述前缀注释的数据集开始,但在训练过程中,逐渐增加前缀在查询中被随机移除或丢弃的例子的百分比,从 0.4 的丢弃率逐渐增加到 1.0。这产生了 PE: Prefix Dropout 模型,可以与我们的基础和重新微调的模型进行比较,作为通用 Prompt Expansion 的候选模型。

5.3 多步提示扩展

探索可能是一个多步骤的过程。在用户的查询返回一组扩展提示之后,用户可以在提示中进行选择,并将此提示反馈到 Prompt Expansion 模型中。这使用户能够在不需要手动设计文本提示的情况下迭代扩展提示。使用 PE: Re-fine-tuned,我们在留出的查询上生成扩展提示,并在上一步的提示上迭代生成提示。这导致了从扩展提示到下一步扩展提示的多步训练数据。我们使用 MSTP 前缀在 Prompt Expansion 模型上对多步数据进行重新微调。

7. 结果和讨论

在美学、图文对齐和多样性方面,相比于基线,提示扩展(Prompt Expansion,PE) 表现良好。

在美学方面,基于 PE 生成的图像更符合人类的审美。在图文对齐方面,人们认为,PE 与基线性能相当。

S. 总结

S.1 主要贡献

用户制定具体提示以生成更好的图像,但图像可能会重复。本文提出提示扩展(Prompt Expansion,PE),将文本查询作为输入,并输出一组经过优化的扩展文本提示,当传递给文本到图像模型时,可生成更多种类的吸引人图像。

S.2 方法

提示扩展数据集的构建和模型的训练如图 6 所示。

提示扩展数据集的构建

  • 基于用户输入查询,收集审美质量高的图像,包括模型生成的图像和自然图像
  • 使用 Interrogator(CLIP-Interrogator)将图像反演为与之密切对应的提示
  • 将反演的文本映射到一系列与用户输入更密切对应的高级查询。这些高级查询与第二步的提示配对,形成 {查询:提示} 数据集。

提示扩展模型的训练包含两个阶段:

  • 在提示扩展数据集上训练基础提示扩展模型:使用基于 PaLM 2 语言模型的架构将查询文本映射到扩展的提示文本
  • 针对下游文本到图像模型重新微调基础模型:从基础模型生成扩展的提示,然后将其输入到下游文本到图像模型。
  • 然后,计算查询-图像嵌入距离和提示-图像嵌入距离的加权平均,并过滤结果低于固定阈值的 {查询:提示} 对。
  • 然后,仅使用这些被过滤的 {查询:提示} 对从基础模型检查点继续重新微调,从而产生 PE:重新微调模型,它经过优化以返回使文本到图像模型能够生成高质量图像的查询。

PE: Multi-Prefix 模型

  • 在查询前添加 8 个支持的前缀之一来指导生成特定类型的扩展。
  • 为训练 PE: Multi-Prefix 模型,从 Prompt Expansion 数据集开始,为每个 {查询:提示} 对都分配了一个适当的前缀。
  • 在 few-shot 提示期间,一些查询/提示被格式化为抽象(ABSTract)或详细(DeTaiLed),因此这些前缀是已知的(例如,ABST,DTL)。
  • 一些前缀(例如,RFT,MSTP)也是已知的,因为它们的 {查询:提示} 对是合成的(Re-Fine-Tuned,MultiSTeP)。
  • 需要对一些 {查询:提示} 对进行前缀分类,例如将 HAST 前缀分配给返回良好美学(HighAeSThetics)效果的提示。

PE: Prefix Dropout 模型:从 PE: Multi-Prefix 的前缀注释数据集开始,在训练过程中,逐渐增加前缀在查询中被随机移除或丢弃的例子的百分比,从 0.4 的丢弃率逐渐增加到 1.0。

PE: Re-fine-tuned 模型:在用户的查询返回一组扩展提示之后,用户可以在提示中进行选择,并将此提示反馈到 Prompt Expansion 模型中。这使用户能够在不需要手动设计文本提示的情况下迭代扩展提示。实验结果表明,该模型具有最突出的性能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Obsidian笔记软件无公网远程同步数据到群辉Webdav

文章目录 1. 群晖开启Webdav服务2. 群晖安装Cpolar3. 配置Webdav远程地址4. Obsidian 安装Remotely Save5. Obsidian远程连接Webdav6. 固定Cpolar公网地址7. PC和移动端笔记同步演示 Obsidian是一款笔记软件,它基于Markdown,支持Windows、macOS、iOS和An…

个人博客主题 vuepress-hope

文章目录 1. 简介2. 配置2.1 个人博客,社媒链接配置 非常推荐vuepress-hope 1. 简介 下面的我的博客文章的截图 通过md写博客并且可以同步到github-page上 2. 配置 2.1 个人博客,社媒链接配置 配置文件 .vuepress/theme.ts blog: {medias: {BiliB…

计算机毕业设计 基于HTML5+CSS3的在线英语阅读分级平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

C#编程-使用变量

使用变量 请考虑以下场景:您必须创建一个程序,接受来自用户的两个数字并在屏幕上显示着两个数字之和。现在,读取用户提供的数字时,您需要将这些数字存储在内存中的某个位置,以便您能对这些数字执行加操作。您可以使用变量将这些数字存储在内存中。 下图显示了使用变量将…

股票价格预测 | Python实现Autoformer, FEDformer和PatchTST等模型用于股价预测

文章目录 效果一览文章概述环境描述源码设计效果一览 文章概述 Autoformer、FEDformer和PatchTST是一些用于时间序列预测,包括股价预测的模型。它们都是在Transformer模型的基础上进行了改进和扩展,以更好地适应时间序列数据的特点。 Autoformer:Autoformer是一种自适应Tran…

pytorch05:卷积、池化、激活

目录 一、卷积1.1 卷积的概念1.2 卷积可视化1.3 卷积的维度1.4 nn.Conv2d1.4.1 无padding 无stride卷积1.4.2 无padding stride2卷积1.4.3 padding2的卷积1.4.4 空洞卷积1.4.5 分组卷积 1.5 卷积输出尺寸计算1.6 卷积的维度1.7 转置卷积1.7.1 为什么被称为转置卷积1.7.2 nn.Con…

【HDFS联邦(2)】HDFS Router-based Federation官网解读:HDFSRouterFederation的架构、各组件基本原理

文章目录 一. 介绍二、HDFS Router-based Federation 架构1. 示例说明2. Router2.1. Federated interface2.2. Router heartbeat2.3. NameNode heartbeat2.4. Availability and fault toleranceInterfaces 3. Quota management4. State Store 三、部署 ing 本文主要参考官网&am…

JavaScript系列——正则表达式

文章目录 需求场景正则表达式的定义创建正则表达式通过 / 表示式/ 创建通过构造函数创建 编写一个正则表达式的模式使用简单模式使用特殊字符常用特殊字符列表特殊字符组和范围 正则表达式使用代码演示 常用示例验证手机号码合法性 小结 需求场景 在前端开发领域,在…

C语言 指针

C语言学习! 目录 文章目录 前言 一、指针是什么? 二、指针变量的大小 三、指针和指针类型 四、指针和函数 五、野指针 5.1野指针成因 5.2 如何规避野指针 六、指针运算 6.1 指针- 整数 6.2 指针-指针 6.3 指针的关系运算 总结 前言 指针理解的2个要点&a…

前端Vue中自定义Popup弹框、按钮及内容的设计与实践

标题:前端Vue中自定义Popup弹框、按钮及内容的设计与实践 一、引言 在Web前端开发中,弹框(Popup)是一种常见的用户界面元素,用于向用户显示额外的信息或提供额外的功能。然而,标准的弹框往往不能满足所有…

Django学习3——靓号管理

目录 靓号管理 表结构和数据 根据表结构的需求,在models.py中创建类(由类生成数据库中的表) 在数据库生成表 自己在数据模拟创建一些数据: 靓号列表 新建靓号 编辑靓号 删除靓号 搜索靓号 靓号管理 表结构和数据 根…

DHCP学习记录

目录 客户端向DHCP服务端申请租用IP的4个阶段: 客户端向HDCP服务器续租IP过程: 客户端重新连接租用IP过程: 客户端释放IP 声明: (Dynamic Host Configuration Protocol)动态主机配置协议,客户端向DHCP服务端申请获得ip的一种约定俗成的话语(协议) 手工配置方式…

啊哈c语言——4.10、for隆重登场(一起来找茬)

下面这段代码是求12345678910的值。其中有4个错误&#xff0c; 快来改正吧&#xff01; 改正后&#xff1a; #include <stdio.h> #include <stdlib.h> int main( ) {int i, sum;sum1;for(i1; i<10;i){sumsum*i;}printf("%d", sum);system("paus…

如何在无公网IP环境使用Windows远程桌面Ubuntu

文章目录 一、 同个局域网内远程桌面Ubuntu二、使用Windows远程桌面连接三、公网环境系统远程桌面Ubuntu1. 注册cpolar账号并安装2. 创建隧道&#xff0c;映射3389端口3. Windows远程桌面Ubuntu 四、 配置固定公网地址远程Ubuntu1. 保留固定TCP地址2. 配置固定的TCP地址3. 使用…

appium安装运行报错的解决方案

appium版本2.3 java17 运行报错&#xff1a; Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: An unknown server-side error occurred while processing the command. Original error: Could not…

40道MyBatis面试题带答案(很全)

1. 什么是MyBatis &#xff08;1&#xff09;Mybatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;开发时只需要关注SQL语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接…

海康visionmaster-渲染结果:通过绑定流程或模块获取 渲染结果的方法

描述 环境&#xff1a;VM4.0.0 VS2015 及以上 现象&#xff1a;方案或流程运行执行之后&#xff0c;就可以获取结果&#xff0c;可以通过获取渲染结果和数据结果&#xff0c; 渲染结果通过绑定渲染控件进行显示。 解答 渲染结果的显示可以通过渲染控件绑定流程或者模块&#x…

RSA加密解密——用shell加密java解密

功能描述 使用shell opensll对明文进行RSA加密&#xff0c;将密文用java的RSA工具对密文解密。这应该是全网第一个同时用到shell和java的RSA加密解密教程。中间有很多坑&#xff0c;都踩过了&#xff0c;可以放心使用代码。 正确的实现流程 shell端 首先生成公钥私钥 &…

【华为机试】2023年真题B卷(python)-冠亚军排名-奖牌榜排名

一、题目 题目描述&#xff1a; 2012伦敦奥运会即将到来&#xff0c;大家都非常关注奖牌榜的情况&#xff0c;现在我们假设奖牌榜的排名规则如下. 1.首先gold medal数量多的排在前面 2.其次silver medal数量多的排在前面 3.然后bronze medal数量多的排在前面 4.若以上三个条…

【数据结构】栈和队列(栈的基本操作和基础知识)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 目录 前言 栈 栈的概念和结构 栈的实现 ​…