【EMNLP 2023】面向Stable Diffusion的自动Prompt工程算法BeautifulPrompt

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 近日,阿里云人工智能平台PAI与华南理工大学朱金辉教授团队合作在自然语言处理顶级会议EMNLP2023上发表了BeautifulPrompt的深度生成模型,可以从简单的图片描述中生成高质量的提示词,从而使文生图模型能够生成更美观的图像。BeautifulPrompt通过对低质量和高质量的提示进行微调,并进一步提出了一种基于强化学习和视觉信号反馈的技术,以最大化生成提示的奖励值

近日,阿里云人工智能平台PAI与华南理工大学朱金辉教授团队合作在自然语言处理顶级会议EMNLP2023上发表了BeautifulPrompt的深度生成模型,可以从简单的图片描述中生成高质量的提示词,从而使文生图模型能够生成更美观的图像。BeautifulPrompt通过对低质量和高质量的提示进行微调,并进一步提出了一种基于强化学习和视觉信号反馈的技术,以最大化生成提示的奖励值。

论文:

Tingfeng Cao, Chengyu Wang, Bingyan Liu, Ziheng Wu, Jinhui Zhu, Jun Huang. BeautifulPrompt: Towards Automatic Prompt Engineering for Text-to-Image Synthesis. EMNLP 2023 (Industry Track)

背景

文生图是AIGC中最引人注目和广泛应用的技术之一,旨在通过文本输入创建逼真的图像。最近,随着大型模型建模能力的提升,文生图模型得到快速的发展。大规模的TIS模型,如DALLE-2、Imagen和stable diffusion,显著提高了最先进的性能,并允许没有艺术专业知识的用户通过个人想象力创建前所未有的图像。

然而,文成图模型要求用户在模型推理之前编写文本提示(例如“一艘雄伟的帆船”)。编写满足设计师或艺术工作者需求的这些提示充满了不确定性,就像开盲盒一样。这是由于训练数据的质量问题,导致需要详细的描述才能生成高质量的图像。在现实场景中,非专家往往很难手工编写这些提示,并且需要通过试错的迭代修改来重新生成图像,从而导致时间和计算资源的严重浪费。

提示工程(prompt engineering)是一个新兴的研究领域,旨在探索如何为深度生成模型提供提示,并提高人与AI之间直接交互的效率。因此,我们关注于大语言模型(LLM)自动地生成高质量的提示词,下图展示了使用简单的图片描述和BeautifulPrompt之后生产的图片。

image.png

算法概述

数据收集

我们提出一个自动化收集prompt优化的数据集方案:

1701848119347_E5BEE52E-74AD-47c8-9A53-E1EE53AB991A.png

原始数据源是DiffusionDB,它只包含未配对的提示。启发式地,我们根据提示的长度、提示中包含的某些标签等将提示分为低质量提示和高质量提示。

接下来,我们

i)  使用BLIP 对与高质量提示相关的图像进行caption,并将结果视为相应的低质量提示,因为说明文字较短且缺乏细节;

ii)  使用ChatGPT对高质量的提示进行总结,并将总结视为低质量的提示;

iii) 使用ChatGPT从低质量的提示生成更好的提示;结果被认为是高质量的提示。

通过以上三种方法,我们获得了大量的提示对;然而,这些提示对的质量无法保证。因此,我们需要进行进一步的数据清理和过滤。我们清洗了包含色情、政治敏感等不适合工作场景的数据,并对图片的美观值进行筛选。得到最终的数据集。与InstructGPT类似,我们采用了三阶段的训练,整体训练架构图如下:

1701848153570_263BAFDC-8B5E-4c15-90D3-62AB8C2B08EB.png

Step 1. SFT

image.png

Step 2. RM

我们基于PickScore 和 Aesthetic Score来训练奖励模型。

简单地说,PickScore是一个基于文本到图像提示和真实用户偏好的大型数据集训练的偏好模型,它在预测人类对图像的偏好方面表现出超人的表现。我们计算低质量提示和相应高质量提示生成的图像的PickScore。为了减少随机种子对TIS模型生成的图像质量的影响,我们使用8种不同的随机种子生成图像并对结果进行平均。计算的平均PickScore 被用作训练奖励模型的基础真相。损失函数为:

image.png

Step 3. PPO(RL)

image.png

算法评测

为了验证BeautifulPrompt的有效性,我们在一些基于模型打分的客观指标和人类主观评估上做了实验:

1701848298380_28EFB8AA-4383-4201-85C2-15E025CC0CC2.png

1701848292413_9DEBC241-EA44-43c3-BCFF-1BED33B4567B.png

我们也对算法的模块进行了详细有效性分析,我们可以算法的各个流程都是有效的。

1701848326349_4DEB302E-6AAD-4831-815E-FF55F965AD0D.png

为了更好地服务开源社区,BeautifulPrompt算法的源代码即将贡献在自然语言处理算法框架EasyNLP中,欢迎NLP从业人员和研究者使用。


EasyNLP开源框架:https://github.com/alibaba/EasyNLP

参考文献

  • Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022
  • Stiennon, Nisan, et al. "Learning to summarize with human feedback." Advances in Neural Information Processing Systems 33 (2020): 3008-3021
  • Rombach, Robin, et al. "High-resolution image synthesis with latent diffusion models." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022
  • Kirstain, Yuval, et al. "Pick-a-pic: An open dataset of user preferences for text-to-image generation." arXiv preprint arXiv:2305.01569 (2023)

论文信息

论文标题:BeautifulPrompt: Towards Automatic Prompt Engineering for Text-to-Image Synthesis
论文作者:曹庭锋、汪诚愚、刘冰雁、吴梓恒、朱金辉、黄俊
论文pdf链接:https://arxiv.org/abs/2311.06752

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
2天前
|
人工智能 自然语言处理 算法
当prompt策略遇上分治算法,南加大、微软让大模型炼成“火眼金睛”
【2月更文挑战第24天】当prompt策略遇上分治算法,南加大、微软让大模型炼成“火眼金睛”
27 2
当prompt策略遇上分治算法,南加大、微软让大模型炼成“火眼金睛”
|
10月前
|
机器学习/深度学习 人工智能 JSON
在LLM浪潮下,prompt工程师需要很懂算法吗?
最近AI大神吴恩达推出prompt教程并给出了prompt构建三大原则,Prompt Engineering Guide也提出了诸多技巧,受AI技术的快速发展的影响,你觉得在LLM浪潮下,prompt工程师需要很懂算法吗?欢迎一起来聊一聊~
25388 50
在LLM浪潮下,prompt工程师需要很懂算法吗?
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
Diffusion Model算法
Diffusion Model算法
232 1
|
12月前
|
机器学习/深度学习 人工智能 算法
Stable Diffusion采样速度翻倍!仅需10到25步的扩散模型采样算法(2)
Stable Diffusion采样速度翻倍!仅需10到25步的扩散模型采样算法
509 0
|
12月前
|
机器学习/深度学习 人工智能 算法
Stable Diffusion采样速度翻倍!仅需10到25步的扩散模型采样算法(1)
Stable Diffusion采样速度翻倍!仅需10到25步的扩散模型采样算法
455 0
|
机器学习/深度学习 编解码 算法
Stable Diffsuion还能用来压缩图像?压缩率更高,清晰度超越JPEG等算法
Stable Diffsuion还能用来压缩图像?压缩率更高,清晰度超越JPEG等算法
195 0
|
算法 安全 Java
常用密码学算法及其工程实践
在工程实践中,加解密算法、单向散列函数、消息认证码、数字签名等密码学内容经常出现。由于我之前对密码学一知半解,经常有摸不着头脑的情况。 比如我遇到过以下两种情况,我相信很多对密码学不熟悉的同学可能也有跟我一样的疑惑: 情况一,同样的明文,同样的密钥,每次加密生成的密文居然不一样?不一样的密文为什么能解密为同样的明文?我在开发友盟+数擎一体机时,在加密数据库中发现了这样的情况,当时非常不理解。
551 0
常用密码学算法及其工程实践
|
算法 IDE 开发工具
5.4 芯片SDK开发:算法工程的调试和使用|学习笔记
快速学习5.4 芯片SDK开发:算法工程的调试和使用
362 1
5.4 芯片SDK开发:算法工程的调试和使用|学习笔记
|
算法 开发工具 芯片
5.3 芯片SDK开发:算法工程的二次开发|学习笔记
快速学习5.3 芯片SDK开发:算法工程的二次开发
311 0
5.3 芯片SDK开发:算法工程的二次开发|学习笔记
|
监控 算法 开发工具
5.2 芯片SDK开发:算法工程原理及创建|学习笔记
快速学习5.2 芯片SDK开发:算法工程原理及创建
333 0
5.2 芯片SDK开发:算法工程原理及创建|学习笔记

热门文章

最新文章