【ACL2024】面向Stable Station的交互式多轮Prompt生成模型DiffChat

news2024/9/27 17:36:38

近日,阿里云人工智能平台PAI与华南理工大学金连文教授团队合作,在自然语言处理顶级会议 ACL 2024 上发表论文《DiffChat: Learning to Chat with Text-to-Image Synthesis Models for Interactive Image Creation. ACL 2024》。DiffChat算法是一个文到文的多轮生成模型,可以根据用户的需求指令对原始提示词进行适当的修改,得到新的提示词来使得文到图生成模型能够生成更美观且符合指令的图像。整个过程做到了用户和文图生成模型的迭代交互,最终完成用户的创作需求。

背景

基于扩散模型的文图生成模型(如Stable Diffusion)的效果有时会受到输入文本即提示词撰写的影响。当用户对创作的图像有特定需求或者希望执行特定的内容修改时,通常需要进行反复多次的提示词修改,且每次尝试的结果都是不可预期的。 这造成了不可忽略的时间和计算资源的耗费。基于这一问题,我们希望设计出自动的可以根据用户的需求指令对原始提示词进行适当修改的方法。

自动化数据收集方案

DiffChat模型的目标是在给定原始提示词/图像和用户指令的情况下,生成用于互动式图像创建的目标提示词。为了实现这一点,我们首先需要构建一个高度相关的数据集。为了解决这个问题,我们首先创建了一个提示词美化模型。我们从开源资源中收集了大量的真实世界高质量提示词。接下来,我们请求ChatGPT将这些高质量提示词总结为简化的提示词。通过这种方法,我们获得了大量的<简化,高质量>提示词对,这些将被用来微调一个BLOOM-1.1B模型而作为我们的提示词美化模型。

如上图所示,我们的InstructPE数据集的收集过程即可以开始进行。基于InstructPix2Pix数据集,我们做出如下处理:将InstructPix2Pix的原始提示词x_o和目标提示词y_o分别送到我们的提示词美化模型,以生成美化后的xy。接下来,由于提示词美化模型在生成过程中不可避免地会面临丢失关键词的风险,我们根据(y_o –>y)或(x_o –>x)哪一组保留了更多关键词来决定是使用模板T_A还是T_B与ChatGPT进行下一步的互动。这样操作的原因是我们希望尽可能保持修改后的提示词与原始提示词之间的一致性。例如,如果(y_o –>y)保留的关键词比(x_o –>x)多,我们将设置y为已知参考,并让ChatGPT生成x,反之亦然。接着,给定xy以及指令i,我们利用提示词工程技术请求ChatGPT写出另一个(yx)。最终,我们的InstructPE数据集组织形式为(x,y,i)。

通过以上这种方法,我们就获得了大量的三元组数据。此外,我们对其进行进一步的数据清理和过滤。首先过滤掉非英语和包含色情、政治敏感等不适合工作场景的数据,并对图片的美观值进行了筛选。我们最终收集了234,786个三元组作为训练集,5,582个三元组作为测试集。我们将其命名为InstructPE数据集。

算法架构

给定包含输入提示词、指令和目标提示词的InstructPE数据集三元组D=\{(\mathbf{x},\mathbf{i},\mathbf{y})\},我们微调一个解码器结构的语言模型,以输出高质量提示词。我们使用自回归语言建模目标来最大化以下似然函数:

\mathcal{L}^{SFT} = - \sum_t \log P(y_t\mid \mathcal{T}(\mathbf{x}, \mathbf{i}), y_1, ..., y_{t-1})

其中\mathcal{T}是一个模板,用于将xi组织成前缀句子。

由于收集到的数据集不可避免地含有噪声,例如目标提示词并不严格遵循相应的输入提示词和指令,因此微调后的模型的性能可能不足以令人满意。为了进一步发展,我们使用强化学习算法进一步增强模型表现。在基于近端策略优化(PPO)的强化学习算法中,代理模型需要从环境中获取奖励反馈,以便朝着期望的方向更新其策略。 而在我们的任务中,奖励必须反映用户对于图像创作所关心的问题。

对此,我们设计了三个用户所关注的标准:

(1)美学。它代表了所创建图像的美学评价。

(2)偏好。它表示用户对指定图像相对于其他图像的偏好程度。

(3)内容完整性。它评估了目标提示词中包含的关键内容的完整性。

我们旨在使用现有的AI模型以及自设计的启发式规则来对生成的图像结果自动打分,从而避免昂贵的人工标注成本。具体而言,我们使用aesthetic score和PickScore分别作为我们的美学和偏好标准指标。 此外,我们还自行设计了内容完整性评分,它启发式地提取出提示词和指令中的关键信息,然后根据目标提示词对这些关键信息的包含度和完整性是否达到阈值来决定是否给予奖励。

实验结果

我们基于BLOOM-1.1B进行实验,作为DiffChat的主干网络。选择这个相对较小的版本是为了确保高推理效率,以支持现实世界的应用。我们的方法不依赖于特定模型的选择。

系统地评估提示词生成模型的优劣是一项具有挑战性的任务。其中最直接的方法之一就是自动化地评估使用模型产生的提示词所生成的图像。我们使用了Stable Diffusion 1.5, Deliberate, Dreamlike, Realistic, Stable Diffusion XL 1.0等模型来验证结果。如下表所示:

我们可以看出,我们的算法能够与现有的多个文生图模型进行协作以实现更高图像质量的创作,这证明了DiffChat算法的优越性。一些和InstructPix2Pix对比的例子如下所示:

参考文献

  • Tim Brooks, Aleksander Holynski, and Alexei A Efros. 2023. InstructPix2Pix: Learning to follow image editing instructions. In CVPR, pages 18392–18402..

  • Tingfeng Cao, Chengyu Wang, Bingyan Liu, Ziheng Wu, Jinhui Zhu, and Jun Huang. 2023. BeautifulPrompt: Towards automatic prompt engineering for text-to-image synthesis. In EMNLP, pages 1–11.

  • Clara Meister, Tiago Pimentel, Gian Wiher, and Ryan Cotterell. 2023. Locally typical sampling. Transactions of the Association for Computational Linguistics, 11:102–121.

  • Teven Le Scao, Angela Fan, Christopher Akiki, Ellie Pavlick, Suzana Ilic, Daniel Hesslow, Roman ´ Castagné, Alexandra Sasha Luccioni, François Yvon, Matthias Gallé, et al. 2022. BLOOM: A 176b parameter open-access multilingual language model. arXiv preprint arXiv:2211.05100.

  • Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, and Wei Lin. 2022. EasyNLP: A comprehensive and easy-to-use toolkit for natural language processing. In EMNLP, pages 22–29.

论文信息

论文名字:DiffChat: Learning to Chat with Text-to-Image Synthesis Models for Interactive Image Creation

论文作者:汪嘉鹏、汪诚愚、曹庭锋、黄俊、金连文

论文pdf链接:https://arxiv.org/abs/2403.04997

阿里云人工智能平台PAI长期招聘研究实习生。团队专注于深度学习算法研究与应用,重点聚焦大语言模型和多模态AIGC大模型的应用算法研究和应用。简历投递和咨询:chengyu.wcy@alibaba-inc.com。

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

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

相关文章

【活动议题介绍】2024-08-25 | PowerData 数字经济·杭州开源行

【活动议题介绍】2024-08-25 | PowerData 数字经济杭州开源行 活动介绍议题介绍活动信息扫码报名往期开源行回顾 活动介绍 “总把西湖比西子&#xff0c;浓妆淡抹总相宜”&#xff0c;杭州&#xff0c;这座温婉如画的江南水乡&#xff0c;自古便以其独有的风姿吸引着无数文人墨…

【C++报错已解决】`RuntimeError: CUDA error: invalid device ordinal`

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 你是否在运行CUDA程序时遇到了RuntimeError: CUDA error: invalid device ordinal这样的错误&#xff1f;这通常是由于设…

STM32标准库学习笔记-9.DMA 直接存储器存取

参考教程&#xff1a;【STM32入门教程-2023版 细致讲解 中文字幕】 DMA&#xff08;Direct Memory Access&#xff09; DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输&#xff0c;无须CPU干预…

OpenCV图像滤波(20)模糊处理函数stackBlur()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 stackBlur() 函数用于对图像进行模糊处理。该函数对图像应用了 stackBlur 技术。stackBlur 可以生成与高斯模糊相似的结果&#xff0c;而且随着模…

ICMAN水位接近式检测方案(非接触式)

ICMAN水位液位接近式检测方案&#xff08;非接触式&#xff09; 我们的很多家用电器都会需要&#xff1a;液位检测 缺水&溢水提醒保护、高低液位提醒 液位传感器 像健康家电——烧水煮茶熬养生汤的烧水壶、豆浆机、养生壶等需要缺水保护和防溢液提醒&#xff1b; 像清洁…

ArcGis在线地图插件Maponline(好用版)

ArcGis加载插件&#xff0c;可在线浏览谷歌地图、天地图、高德地图、必应地图等多种&#xff0c;包含街道、影像、标注地图等信息&#xff08;谷歌地图需自备上网手段&#xff09;&#xff0c;免费注册账号即可使用&#xff0c;可加载无水印底图。 与大地2000坐标无需配准直接使…

【吊打面试官系列-Memcached面试题】说说memcached 和 MySQL 的 query cache 相比,有什么优缺点?

大家好&#xff0c;我是锋哥。今天分享关于 【说说memcached 和 MySQL 的 query cache 相比&#xff0c;有什么优缺点&#xff1f; 】面试题&#xff0c;希望对大家有帮助&#xff1b; 说说memcached 和 MySQL 的 query cache 相比&#xff0c;有什么优缺点&#xff1f; 把 mem…

C语言典型例题45

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题3.5 给一个不多于5位的正整数&#xff0c;要求&#xff1a; 1.求出它是几位数&#xff1b; 2.分别输出每一位数字&#xff1b; 3.按逆序输出各位数字&#xff0c;例如&#xff1…

修改了原神4.8版本升级数据表

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原神4.8版本升级数据表</title> </head&…

jQuery的遍历和动画

一&#xff0c;前言 jQuery提供了一系列的方法来帮助开发者轻松地遍历和操作DOM元素集合&#xff0c;同时jQuery 提供了一些简单的方法来实现基本的动画效果&#xff0c;如淡入淡出、滑动等&#xff0c;同时还允许用户创建自定义动画序列。 二&#xff0c;遍历 &#xff08;1&…

【TCP/IP】确认应答、超时重传机制和TCP报头

TCP 相关机制 TCP 基本特点&#xff1a;有连接、可靠传输、面向字节流、全双工 有连接、面向字节流和全双工都能在前面的代码中体现有连接&#xff1a;必须要先调用 accept 建立联系才能处理面向字节流&#xff1a;会拿到 clientSocket 对象的 InputStream 和 OutputStream&a…

[书生大模型实战营][L0][Task2] Python 开发前置知识

0. 任务&#xff1a;在 InternStudio 环境中实现功能&#xff1a; python 实现 wordcount函数&#xff0c;统计英文字符串单词的使用频率&#xff0c;并返回字典&#xff1b;vscode 远程调试 InternStudio 中的 python 代码 1. wordcount 函数实现 string.punctuation 是一个…

从【人工智能】到【计算机视觉】,【深度学习】引领的未来科技创新与变革

前几天偶然发现了一个超棒的人工智能学习网站&#xff0c;内容通俗易懂&#xff0c;讲解风趣幽默&#xff0c;简直让人欲罢不能。忍不住分享给大家&#xff0c;点击这里立刻跳转&#xff0c;开启你的AI学习之旅吧&#xff01; 前言 – 人工智能教程https://www.captainbed.cn/l…

CentOS迁移案例 | 保障轨道交通安全、发挥基础设施效能,麒麟信安操作系统支撑某市轨道交通畅行无忧

为缓解城市交通拥堵难题&#xff0c;某市轨道交通公司计划新建一条贯穿城市关键区域、沿路设立20座站点的轨道交通线路&#xff0c;并基于麒麟信安操作系统构建轨道交通信号系统。 轨道交通信号系统是列车核心控制系统&#xff0c;负责列车运行的自动化控制&#xff0c;及对整…

【python】python代码打包工具cx_Freeze的介绍、原理、用法及实战案例分析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

学习机MP3语音芯片方案:WMV硬解码芯片,N9301-316

在当今数字化时代&#xff0c;学习机已不再仅仅是静态的物品。随着技术的快速发展和不断探索创新方法&#xff0c;人们将音乐与互动学习相融合&#xff0c;为儿童创造出更加富有创意和学习机产品。其中&#xff0c;九芯电子N9301系列MP3解码芯片在这一领域的应用正在崭露头角&a…

Android常见控件(一)

目录 前言 一、TextView控件 常用属性 二、Button控件 设置点击事件的方式 1.在布局文件中指定onClick的值 2.使用匿名内部类 3.通过实现onClickListener接口 三、ImageView控件 常见属性 src与background的区别 scaleType 1.ScaleType.FIT_CENTER默认 2.ScaleTy…

Java学习高级五

API 常用API Object类 Object类的常见方法

数据结构与算法 - 双指针

一、移动零 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12]输出: [1,3,12,0,0]示例 2: 输入: nums …

Linux文件传输命令介绍(非常详细)零基础入门到精通,收藏这一篇就够了

文件传输命令 1 ftp&#xff1a;传统的文件传输协议,使用广泛但安全性较低。 sftp&#xff1a;基于SSH的安全文件传输协议,提供交互式的文件管理功能。 tftp&#xff1a;简单的文件传输协议,主要用于网络设备的固件升级。 lftp&#xff1a;功能强大的FTP客户端,支持多种文件…