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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 阿里云人工智能平台PAI与华南理工大学金连文教授团队合作,在自然语言处理顶级会议 ACL 2024 上发表论文《DiffChat: Learning to Chat with Text-to-Image Synthesis Models for Interactive Image Creation. ACL 2024》。

近日,阿里云人工智能平台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模型而作为我们的提示词美化模型。

image.png

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

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


算法架构

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

image.png

其中 image.png 是一个模板,用于将 image.png 组织成前缀句子。

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

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

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

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

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

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


另外,语言生成中涉及的动作空间常常远远超过传统设计中大多数离散动作空间的大小。例如,GPT-3和 T5 模型分别具有50K和32K的字典大小。在原始的离线策略数据采样 image.png 过程中,它根据整个动作/字典空间 image.png 上的概率分布随机选择下一个生成token image.png

image.png

在这种情况下,每个具有非零概率的token都有被生成的机会。然而,动作空间的过于庞大是样本质量不稳定的根本原因之一。为了解决这个问题,我们引入了动作空间动态修正来进行改善。对于正样本,我们在每个采样步骤 image.png 中从动作空间 image.png 中排除弱相关的tokens,形成 image.png

image.png

其中,我们在实现 时采用了局部典型抽样(Locally Typical Sampling)方法,限制tokens到最小的集合同时确保它们的累积概率超过指定的概率参数p。而对于负样本,我们进行如下处理:

image.png


其中,我们随机选择一部分目标提示词的关键词并删除或修改它们,以此形成 image.png 通过这种方式,我们可以模拟真实的遗漏或替换错误,以实现有针对性的优化。

先进的策略梯度方法如PPO中会引入优势函数A来衡量动作 image.png 在特定状态 image.png 下相对于策略的平均动作的优劣程度。广义优势估计被广泛采用来计算A,如下所示:

image.png

这里, image.png 是轨迹长度, image.png image.png 是权衡和折扣参数。 image.png 是第t步的奖励。 image.png 是综合评估当前状态的值函数。

为了帮助更好地感知当前的文本生成进展,我们提议额外添加内容完整性来更好地计算状态的价值:

image.png

image.png 是一个权衡超参数。


实验结果

我们基于BLOOM-1.1B进行实验,作为DiffChat的主干网络。选择这个相对较小的版本是为了确保高推理效率,以支持现实世界的应用。我们的方法不依赖于特定模型的选择。系统地评估提示词生成模型的优劣是一项具有挑战性的任务。其中最直接的方法之一就是自动化地评估使用模型产生的提示词所生成的图像。我们使用了Stable Diffusion 1.5, Deliberate, Dreamlike, Realistic, Stable Diffusion XL 1.0等模型来验证结果。如下表所示:我们可以看出,我们的算法能够与现有的多个文生图模型进行协作以实现更高图像质量的创作,这证明了DiffChat算法的优越性。一些和InstructPix2Pix对比的例子如下所示:

image.png

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

image.png

参考文献

  • 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。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
1月前
|
人工智能 自然语言处理
重要的事情说两遍!Prompt复读机,显著提高LLM推理能力
【10月更文挑战第30天】本文介绍了一种名为“问题重读”(Question Re-reading)的提示策略,旨在提高大型语言模型(LLMs)的推理能力。该策略受人类学习和问题解决过程的启发,通过重新审视输入提示中的问题信息,使LLMs能够提取更深层次的见解、识别复杂模式,并建立更细致的联系。实验结果显示,问题重读策略在多个推理任务上显著提升了模型性能。
59 2
|
6月前
|
机器学习/深度学习 移动开发 自然语言处理
大模型Prompt-Tuning技术入门(二)
Prompt-Tuning是一种在大型语言模型中进行下游任务适配的技术,起源于GPT-3的In-context Learning和Demonstration Learning。它通过构建Prompt(提示)和Verbalizer(标签映射)来转换任务,比如将分类任务转化为填空问题。PET模型是Prompt-Tuning的早期实践,通过固定模板(Pattern)和标签词(Verbalizer)来实现。Prompt-Oriented Fine-Tuning是Prompt-Tuning的一种形式,将任务转换为与预训练任务相似的形式,如BERT的MLM任务。
|
2月前
|
人工智能 JSON 数据可视化
OpenAI调用接口多轮对话Multi Turn Multi Agent 多轮多角色对话调试和可视化工具Dialogue Visualization
伴随着生成式人工智能技术发展,进2年涌现出大语言模型LLM/Agent系统/AI推理等众多方向的技术项目和论文。其中对话系统,智能体交互是用户通过UX界面和AI系统进行交互,这种交互有时候也是多模态(用户输入文字/语音/图像)等等。在调用OpenAI 的对话接口时候,有时候需要把对话结果打印出来检查是否有bug,JSON数据格式就比较难看出来了,尤其是有多角色的多轮对话。这个时候可以借助一些在线的"对话"可视化的工具 (Online Dialogue Visualization Tool) DeepNLP Dialogue Visualization Tool,方便产品经理,算法研发,学术研究
OpenAI调用接口多轮对话Multi Turn Multi Agent 多轮多角色对话调试和可视化工具Dialogue Visualization
|
2月前
|
搜索推荐
LangChain-10 Agents langchainhub 共享的提示词Prompt
LangChain-10 Agents langchainhub 共享的提示词Prompt
21 3
|
3月前
|
自然语言处理 Python
【Prompt Engineering提示:Active-Prompt、方向性刺激提示、PAL(程序辅助语言模型)】
Diao等人(2023)提出了一种名为Active-Prompt的新方法,通过自适应提示来优化大型语言模型(LLMs)在特定任务中的表现。此方法通过不确定性评估选择需标注的问题,利用少量人工标注的思维链(CoT)示例逐步优化模型,提高其解决问题的能力。相比固定范例,Active-Prompt能够更有效地针对不同任务调整提示,从而提升模型性能。
141 7
【Prompt Engineering提示:Active-Prompt、方向性刺激提示、PAL(程序辅助语言模型)】
|
3月前
|
人工智能 自然语言处理 机器人
【Prompt Engineering 提示词工程指南】​文本概括、信息提取、问答、文本分类、对话、代码生成、推理​
本文介绍了使用提示词与大语言模型(LLM)交互的基础知识。通过调整参数如温度(Temperature)、最高概率词元(Top_p)、最大长度(Max Length)及停止序列(Stop Sequences),可以优化模型输出。温度参数影响结果的随机性;Top_p 控制结果的多样性;最大长度限制输出长度;停止序列确保输出符合预期结构。此外,频率惩罚(Frequency Penalty)和存在惩罚(Presence Penalty)可减少重复词汇,提升输出质量。提示词需包含明确指令、上下文信息、输入数据及输出指示,以引导模型生成理想的文本。设计提示词时应注重具体性、避免歧义,并关注模型的具体行为
465 1
|
4月前
|
JSON Go 数据格式
langchain 入门指南 - 让 LLM 自动选择不同的 Prompt
langchain 入门指南 - 让 LLM 自动选择不同的 Prompt
114 0
|
6月前
|
存储 机器学习/深度学习 自然语言处理
大模型Prompt-Tuning技术进阶
近年来,随着Prompt-Tuning技术的崛起,研究者们发现,在拥有超过10亿参数的大规模模型上,采用Prompt-Tuning相较于传统的Fine-tuning方法能带来显著的性能提升。特别是在小样本甚至零样本学习场景下,Prompt-Tuning能够极大地激发模型的潜力。这一成就的取得主要归功于三个关键因素:模型庞大的参数量、训练过程中使用的海量语料,以及精心设计的预训练任务。
|
6月前
|
机器学习/深度学习 自然语言处理 算法
大模型Prompt-Tuning技术入门(一)
Prompt-Tuning是NLP领域的新兴技术,旨在减少预训练模型Fine-Tuning的需要。它通过构造提示(Prompt)使预训练模型能适应各种任务,降低了语义偏差和过拟合风险。Prompt作为任务的“提示词”,可以是人工定义、自动搜索或生成的模板,与预训练的MLM头结合使用,只需少量甚至无标注数据,通过标签词映射进行预测。此方法从GPT-3的In-Context Learning发展至今,包括了连续Prompt、大规模模型的Instruction-tuning和Chain-of-Thought等进展。 Prompt-Tuning是向少监督、无监督学习迈进的关键研究。
|
7月前
|
机器学习/深度学习 XML 人工智能
Prompt进阶系列5:LangGPT(提示链Prompt Chain)--提升模型鲁棒性
Prompt进阶系列5:LangGPT(提示链Prompt Chain)--提升模型鲁棒性
Prompt进阶系列5:LangGPT(提示链Prompt Chain)--提升模型鲁棒性