草庐IT

学习ChatGPT,AI绘画引入人类反馈会怎样?

机器之心 2023-03-28 原文
最近,深度生成模型在根据文本 prompt 生成高质量图像方面取得了显著成功,部分原因在于深度生成模型扩展到了大规模网络数据集(如 LAION)。但是,一些重大挑战依然存在,因而大规模文本到图像模型无法生成与文本 prompt 完全对齐的图像。举例而言,当前的文本到图像模型往往无法生成可靠的视觉文本,并在组合式图像生成方面存在困难。

回到语言建模领域,从人类反馈中学习已经成为一种用来「对齐模型行为与人类意图」的强大解决方案。这类方法通过人类对模型输出的反馈,首先学习一个旨在反映人类在任务中所关心内容的奖励函数,然后通过一种强化学习算法(如近端策略优化 PPO)使用学得的奖励函数来优化语言模型。这种带有人类反馈框架的强化学习(RLHF)已经成功地将大规模语言模型(例如 GPT-3)与复杂的人类质量评估结合起来。

近日,受 RLHF 在语言领域的成功,谷歌研究院和加州伯克利的研究者提出了使用人类反馈来对齐文本到图像模型的微调方法。

论文地址:https://arxiv.org/pdf/2302.12192v1.pdf

本文方法如下图 1 所示,主要分为 3 个步骤。

第一步:首先从「设计用来测试文本到图像模型输出对齐的」一组文本 prompt 中生成不同的图像。具体地,检查预训练模型更容易出错的 prompt—— 生成具有特定颜色、数量和背景的对象,然后收集用于评估模型输出的二元人类反馈。

第二步:使用了人工标记的数据集,训练一个奖励函数来预测给定图像和文本 prompt 的人类反馈。研究者提出了一项辅助任务,在一组扰动文本 prompt 中识别原始文本 prompt,以更有效地将人类反馈用于奖励学习。这一技术改进了奖励函数对未见过图像和文本 prompt 的泛化表现。

第三步:通过奖励加权似然最大化更新文本到图像模型,以更好地使它与人类反馈保持一致。与之前使用强化学习进行优化的工作不同,研究者使用半监督学习来更新模型,以测量模型输出质量即学得的奖励函数。

研究者使用带有人类反馈的 27000 个图像 - 文本对来微调 Stable Diffusion 模型,结果显示微调后的模型在生成具有特定颜色、数量和背景的对象方面实现显著提升。图像 - 文本对齐方面实现了高达 47% 的改进,但图像保真度略有下降。

此外,组合式生成结果也得到了改进,即在给定未见过颜色、数量和背景 prompt 组合时可以更好地生成未见过的对象。他们还观察到,学得的奖励函数比测试文本 prompt 上的 CLIP 分数更符合人类对对齐的评估。

不过,论文一作 Kimin Lee 也表示,本文的结果并没有解决现有文本到图像模型中所有的失效模型,仍存在诸多挑战。他们希望这项工作能够突出从人类反馈中学习在对齐文生图模型中的应用潜力。

方法介绍

为了将生成图像与文本 prompt 对齐,该研究对预训练模型进行了一系列微调,过程如上图 1 所示。首先从一组文本 prompt 中生成相应的图像,这一过程旨在测试文生图模型的各种性能;然后是人类评分员对这些生成的图像提供二进制反馈;接下来,该研究训练了一个奖励模型来预测以文本 prompt 和图像作为输入的人类反馈;最后,该研究使用奖励加权对数似然对文生图模型进行微调,以改善文本 - 图像对齐。

人类数据收集

为了测试文生图模型的功能,该研究考虑了三类文本 prompt:指定数量(specified count)、颜色、背景。对于每个类别,该研究对每个描述该物体的单词或短语两两进行组合来生成 prompt,例如将绿色(颜色)与一只狗(数量)组合。此外,该研究还考虑了三个类别的组合(例如,在一个城市中两只染着绿颜色的狗)。下表 1 更好的阐述了数据集分类。每一个 prompt 会被用来生成 60 张图像,模型主要为 Stable Diffusion v1.5 。

人类反馈

接下来对生成的图像进行人类反馈。由同一个 prompt 生成的 3 张图像会被呈递给打标签人员,并要求他们评估生成的每幅图像是否与 prompt 保持一致,评价标准为 good 或 bad。由于这项任务比较简单,用二元反馈就可以了。

奖励学习

为了更好的评价图像 - 文本对齐,该研究使用奖励函数来衡量,该函数可以将图像 x 的 CLIP 嵌入和文本 prompt z 映射到标量值。之后其被用来预测人类反馈 k_y ∈ {0, 1} (1 = good, 0 = bad) 。

从形式上来讲,就是给定人类反馈数据集 D^human = {(x, z, y)},奖励函数通过最小化均方误差 (MSE) 来训练:

此前,已经有研究表明数据增强方法可以显着提高数据效率和模型学习性能,为了有效地利用反馈数据集,该研究设计了一个简单的数据增强方案和奖励学习的辅助损失(auxiliary loss)。该研究在辅助任务中使用增强 prompt,即对原始 prompt 进行分类奖励学习。Prompt 分类器使用奖励函数,如下所示:

辅助损失为:

最后是更新文生图模型。由于模型生成的数据集多样性是有限的,可能导致过拟合。为了缓解这一点,该研究还最小化了预训练损失,如下所示:

实验结果 

实验部分旨在测试人类反馈参与模型微调的有效性。实验用到的模型为 Stable Diffusion v1.5 ;数据集信息如表 1(参见上文)和表 2 所示,表 2 显示了由多个人类标签者提供的反馈分布。

人类对文本 - 图像对齐的评分(评估指标为颜色、物体数量)。如图 4 所示,本文方法显著提高了图像 - 文本对齐,具体来说,模型生成的图像中有 50% 的样本获得至少三分之二的赞成票(投票数量为 7 票或更多赞成票),然而,微调会稍微降低图像保真度(15% 比 10%)。 

图 2 显示了来自原始模型和本文经过微调的对应模型的图像示例。可以看到原始模型生成了缺少细节(例如,颜色、背景或计数)的图像(图 2 (a)),本文模型生成的图像符合 prompt 指定的颜色、计数和背景。值得注意的是,本文模型还能生成没有见过的文本 prompt 图像,并且质量非常高(图 2 (b))。

奖励学习的结果。图 3 (a) 为模型在见过的文本 prompt 和未见文本 prompt 中的评分。有奖励(绿色)比 CLIP 分数(红色)更符合典型的人类意图。

有关学习ChatGPT,AI绘画引入人类反馈会怎样?的更多相关文章

  1. ruby-on-rails - 如果我将 ruby​​ 版本 2.5.1 与 rails 版本 2.3.18 一起使用会怎样? - 2

    如果我使用ruby​​版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby​​1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更

  2. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  3. 怎样用一台手机做自媒体? - 2

    其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时

  4. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  5. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  6. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. ruby - 我怎样才能只写一次 "Text"并同时检查 path_info 是否包含 'A' ? - 2

    -if!request.path_info.include?'A'%{:id=>'A'}"Text"-else"Text"“文本”写了两次。我怎样才能只写一次并同时检查path_info是否包含“A”? 最佳答案 有两种方法可以做到这一点。使用部分,或使用content_forblock:如果“文本”较长,或者是一个重要的子树,您可以将其提取到一个部分。这会使您的代码变干一点。在给出的示例中,这似乎有点矫枉过正。在这种情况下更好的方法是使用content_forblock,如下所示:-if!request.path_info.inc

  9. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  10. ruby-on-rails - rspec - 我怎样才能让 "pendings"有我的文本而不仅仅是 "No reason given" - 2

    我有这个代码:context"Visitingtheusers#indexpage."dobefore(:each){visitusers_path}subject{page}pending('iii'){shouldhave_no_css('table#users')}pending{shouldhavecontent('Youhavereachedthispageduetoapermissionic错误')}它会导致几个待处理,例如ManagingUsersGivenapractitionerloggedin.Visitingtheusers#indexpage.#Noreason

随机推荐