AIGC 为什么会爆火

236 阅读32分钟

什么是AIGC?

  1. AIGC的定义

image.pngchatgpt基本回答了什么是AIGC,但目前为止,AIGC尚无明确的定义。

  • 国内产学研各界对于AIGC的理解是“继专业内容生成PGC和用户生成内容UGC之后,利用人工智能技术自动生成内容的新型生产方式”。在国际上对于的术语是“人工智能合成媒体(AI-generated Media)”,其定义是“通过人工智能算法对数据或媒体进行生产、操控和修改的统称”。

AIGC的前世今生

资料来源于:# (CAICT中国通信院)人工智能行业生成内容(AIGC)白皮书(2022年)

  1. PGC->UGC->AIGC

image.png

  • 内容 = 信息 + 载体

当我们从真实世界获取信息时,我们仅仅是通过某种合理的方式,获取了原本就存在的信息。在获取、传递与接收信息的过程中,为了提高信息获取的效率,我们使用了各种载体语言是一种虚拟的载体,文字是一种虚拟的载体,工具是一种实体的载体,物体是一种实体的载体

同样的信息,可以被打包进一个小盒子(如文字);也可以被打包进大礼盒(如视频)。不同的打包方式,让接收者们在解码信息(拆快递时)也有了不同的感受和理解。可以说,对于接收者而言,信息和载体的组合才是一个完整的可感知对象,是一个不同于信息本身的新事物。
这个新事物就是内容,信息有了载体就成为了内容。内容 = 信息 + 载体。

  • PGC (Professionally-Generated Content)

既然内容等于信息加载体,那么内容的生产是怎么样的呢?信息自然是不会自己跑到载体中的,是人将信息与载体结合。不同的人在面对同一信息时很有可能会以不同的方式处理,不仅处理的结果不同,最后选择的载体也可能不同。对同一棵绽放的向日葵,有的人会用文字作为载体写“这向日葵真美”,而梵高则通过油画把向日葵的绚烂还原。
早期的互联网时代,用户基数并不大,文本、图像、视频、音乐、游戏等内容都是专业人士创作出来的,这些内容属于专家生成内容(Professionally-Generated Content,PGC)。PGC一般是指由专业化团队操刀、制作门槛较高、生产周期较长的内容,最终用于商业变现,如电视、电影和游戏等。为了保障生成内容的质量,PGC 需要投入大量的技术成本与人力成本。在 PGC 模式下,内容生产和变现的权利掌握在少数人手中,集中程度更高,垄断效应更强,但受限于供给侧的人力资源,PGC 难以满足大规模的内容生产需求。

简单总结:由专业团队或个人制作的内容,它代表着更加专业、更加优质的内容,为用户提供了更丰富的选择,也为互联网平台带来了更大的发展空间*

  • UGC (User-Generated Content)

生产诸如图像、文本等内容的专业人士,我们称为生产者;对这些内容进行购买、观赏等行为的称为消费者。过去我们在探讨生产与消费两者的关系时,时常以二元对立的角度将两者分割。但实际上,两者之间的界限却并非一直如此清晰,消费者群体也可能参与到生产中,生产出能满足需求的产品。
随着技术的进步、互联网的兴起,越来越多的平台提供了创作工具,降低了生产门槛,让具有创作意识的消费者为平台产生内容,提高了内容生态的繁荣度,如抖音快手短视频、微博、贴吧等。这就是UGC (User-Generated Content,UGC模式,它在一定程度上降低了生产成本与中心化程度,满足了用户个性化或多样性的需求,同时也提高了产能天花板
虽然内容的生产规模得到了大幅提升,但由于其对生产者、创作工具和内容主题均未设限,其质量不可避免地遭到反噬。尽管 UGC 改善了 PGC 生产规模受限的问题,但其内容质量参差不齐,导致用户对优质内容的检索成本提升。归根结底,UGC 依然无法满足用户对高质量内容的需求。

简单总结:*用户参与内容创作,共同构建互联网内容生态的新时代

  • AIGC (AI-Generated Content)

一个有质量的内容是生产者对信息进行过筛选、处理、加工与整合的,这些流程均是基于创作者经过长年累月地后天学习建立而成,需要耗费大量的时间和脑力。于是长期来看,人工创作的能力必定有限,当 PGC、UGC 的生产潜力消耗殆尽时,AIGC (AI-Generated Content)也许能够弥补内容生态的缺口。
平台通过开放 AI 工具协助用户创作,任何人都可以成为创作者,发出指令使 AI 自动生成内容,指示 AI 完成复杂的代码、绘图与建模等任务,进一步降低了生产门槛,且提高了生产效率
但受技术发展所累,以上工作中 AI 仅是扮演辅助角色,人类依然需要在关键环节创作内容或输入指令,AI 暂不具备成为创作者进行自主创作的能力。然而,随着数据、算法等核心要素不断地升级迭代,AIGC 可能是未来发展的大方向,其或将突破人工限制,提升到自主创作的水平创作出更丰富多样的内容

简单总结:AIGC 的核心在于利用人工智能模型,例如大型语言模型 (LLM) 和生成对抗网络 (GAN),来学习和理解数据,并根据用户的输入和指令,自动生成新的内容。

image.png

AIGC出生、蛰伏、一夜爆火(发展历程)

早期萌芽阶段-出生

早期萌芽阶段(1950s-1990s),受限于当时的科技水平,AIGC仅限于小范围实验。
1957 年,莱杰伦·希勒和伦纳德·艾萨克森完成历史第一支由计算机创作的弦乐四重奏《伊利亚克组曲》。
1966年,约瑟夫·魏岑鲍姆和肯尼斯·科尔比开发了世界第一款可人机对话的机器人Eliza。
80年代中期,IBM创造了语音控制打字机Tangora。

沉淀积累阶段-蛰伏

沉淀积累阶段(1990s-2010s),AIGC从实验性向实用性逐渐转变。
2006年,深度学习算法、图形处理器、张量处理器等都取得了重大突破。
2007年,世界第一部完全由人工智能创作的小说《1 The Road》问世。
2012年,微软公开展示了一个全自动同声传译系统,可以自动将英文演讲者的内容通过语音识别、语言翻译、语音合成等技术生成中文语音。

快速发展阶段-一夜爆火

快速发展阶段(2010s至今),深度学习模型不断迭代,AIGC突破性发展。
2014年,随着对抗生产网络GAN为代表的提出和迭代更新,AIGC迎来了新时代,生成内容百花齐放,效果逐渐逼真直至人类难以分辨。
2017年,微软人工智能少女“小冰”推出了世界首部100%由人工智能创作的诗集《阳光失了玻璃窗》
2018年英伟达发布了StyleGAN模型可以自动生成图片,目前已经发展到了第四代模型StyleGAN-XL,其生成的高分辨率图片让人难以分辨真假。
2019 年,DeepMind 发布了 DVD-GAN 模型用以生成连续视频,在草 地、广场等明确场景下表现突出。
2021 年,OpenAI 推出了 DALL-E 并于一年后推出了升级版本 DALL-E-2,主要应用于文本与图像的交互生成内容,用户只需输入简短的描述性文字,DALL-E-2 即可创作 出相应极高质量的卡通、写实、抽象等风格的绘画作品。
2022年,12月OpenAI的ChatGpt火爆全网,在文本生成、代码生成与修改、多轮对话等领域,已经展现了大幅超越过去AI 问答系统的能力。

image.png

预训练模型

在说到AIGC的时候,不得不提的是大规模预训练模型。不管是ChatGPT,还是各种GAN模型,如果要展示出“一夜爆火”的效果,必然都需要依赖大规模数据。如果对这些大规模数据进行标注,那数据集需要各种不同的任务,而不只是简单标个分类就好了,这是一件非常耗人力的事情。但是未标注的图像、文本在生活中随处可见,能否利用这些数据进行模型训练

图像预训练

最早将卷积神经网络用于图像分类的网络是2012年Alex Krizhevsky提出的AlexNet(以该作者命名),它用于训练大型图像分类模型ImageNet(ImageNet是包含1000个类别、100多万样本的图像数据)。2014年牛津大学在ILSVRC提出了VGG(Visual Geometry Group)模型,该模型相比以往模型进一步加宽和加深了网络结构,VGG论文中还提出使用预训练好的参数初始化可以加速训练,之后的大多数分类模型应用都采用基于在ImageNet上预训练的模型参数作为模型初始化参数。2015年,何凯明提出了残差网络ResNet网络,让更深的网络也能训练出好的效果,并得到ILSVRC冠军,同时也成为了目前最流行的图像分类网络。
在图像领域里,预训练任务已经是非常成熟了。一般使用由ResNet网络(模型)ImageNet数据集上预训练的模型作为特征提取器,分类层前的卷积网络就是图像包含的所有特征,可以直接用于下游任务如目标检测、图像聚类、语义分割、其他场景的图像分类应用等。数据规模和成熟的卷积神经网络应用,是图像特征解决方案的主要特点:在数据集上图像分类有达100多万张标注的图片,1000多个类别;在模型训练过程中,模型会不断学习如何提取特征,卷积神经网络还可以提取图像的边缘、角、点等通用特征,模型越往上走,特征越抽象。在这种预训练的模型,可以固定住底层的模型参数只训练顶层的参数,也可以对整个模型进行训练,这个过程叫作微调(fine-tuning),最终得到一个可用的模型。对于各种各样的任务都不再需要从头开始训练网络,可以直接拿预训练好的结果进行微调,既减少了训练计算量的负担,也减少了人工标注数据的负担。
2021年,OpenAI提出了CLIP(Contrastive Language-Image Pre-training)图像预训练模型,利用文本-图像进行模型预训练,最终可以直接迁移到ImageNet数据集上,完全不需要imageNet的标签就实现无微调的zero-shot(不再需要imagenet的标签-图像对进行训练)分类,而且精度非常高,达到了ResNet50的TOP1精度76%
Open AI团队通过收集4亿(400 million) 个文本-图像对((image, text) pairs) ,以用来训练其提出的CLIP模型。文本-图像对的示例如下

image.png

模型主要是 为了对image和text建立联系,首先分别对imagetext进行特征提取image特征提取的backbone(核心可以是resnet系列模型(Residual Neural Networks 残差神经网络,text特征提取目前一般采用bert模型(自然语言处理模型),特征提取之后,由于做了normalize(数据归一化<数据预处理技术>),直接相乘来计算余弦距离,同一pair对的结果趋近于1,不同pair对的结果趋近于0,因为就可以采用对比损失loss(info-nce-loss),熟悉这个loss的同学应该都清楚,这种计算loss方式效果与batch size有很大关系,一般需要比较大的batch size才能有效果。

InfoNCE 损失函数的数学公式(微积分/概率学) L = - log(exp(sim(x_i, x_j)) / (sum(exp(sim(x_i, x_k))))

image.png

语言模型预训练

BERT

对比各种图像神经网络,可以发现自然语言处理任务的特点和图像有极大的不同。自然语言处理的输入往往是一句话或一篇文章,所以它有几个特点:输入是一维线性序列(按顺序排列的一组数据,图像中的输入是 2维或2维以上(两个维度的序列) 的;输入是不定长的,有的长有的短(对于模型处理起来会增加一些麻烦);单词或子句的相对位置关系很重要,两个单词位置互换可能导致完全不同的意思。
处理自然语言处理问题,首先要解决文本的表示问题。虽然人去看文本,能够清楚明白文本中的符号表达什么含义,但是计算机只能做数学计算,需要将文本表示成计算机可以处理的形式。业界最开始的方法是采用one hot,比如假设英文中常用的单词有3万个,那么就用一个3万维的向量表示这个词,所有位置都置0,当想表示apple这个词时,就在对应位置设置1。

image.png

但是这样的向量没有任何含义,后来出现了词向量(word vector),用一个低维度稠密向量表示一个词,如[1.45332634, 2.132315345, 1.76233123, -1.3424254, 0.4231324, ......]。相比one hot动辄上万的维度已经低了很多,而且词与词之间的关系可以用相似度或者距离来表示,相似度越高、距离越近,表示两个词更有关联。这种词向量可以根据经典**Word2vec算法** 如CBOW或Skip-Gram学习到,但是这样的词向量表现不出词的语法(syntax)、语义 (semantics)等复杂特性,也无法处理一词多义的问题,因为Word2vec是静态的,而每个词都有不同的意思,如果要用数值表示这个词,那这个词就不应该是固定的某个向量。
之后,自然语言处理开始借鉴图像的预训练模型,一个通用模型在非常大的语料库上进行预训练,然后在特定任务上进行微调,出现了ELMO、Transformer、GPT、BERT等预训练模型,他们都在未标注的数据上使用自监督方法,能够让预训练模型学习到语言本身的特征,其中众所周知的BERT(Bidirectional Encoder Representation from transformer)就是这套方案的集大成者。

image.png

BERT是一种基于Transformer的双向编码表征,刷新了各大自然语言处理任务的榜单,在各种自然语言处理任务上都做到业内最先进。为了适配多任务下的迁移学习,BERT设计更通用的输入层和输出层,但是BERT整体模型结构上几乎和Transformer的Encoder层是一样的。

BERT 的核心特点:

  • 双向编码:  BERT 能够同时考虑词语的左右上下文信息,而不是像传统的语言模型那样只考虑单向信息。这使得 BERT 能更好地理解词语的含义和语境。
  • 基于 Transformer:  BERT 的架构基于 Transformer 模型,Transformer 是一种强大的神经网络架构,能够有效地处理序列数据,并在机器翻译和自然语言理解等领域取得了巨大成功。
  • 预训练:  BERT 通常在大型语料库上进行预训练,然后可以根据不同的下游任务进行微调。这种预训练方法可以使 BERT 拥有更强的泛化能力,并且可以更快地适应新的任务。

image.png

GPT

GPT-1比BERT诞生略早几个月。它们都是采用了Transformer为核心结构,不同的是GPT-1通过自左向右生成式的构建预训练任务,然后得到一个通用的预训练模型,这个模型和BERT一样都可用来做下游任务的微调。GPT-1当时在9个NLP(自然语言处理)任务上取得了SOTA的效果,但GPT-1使用的模型规模和数据量都比较小,这也就促使了GPT-2的诞生。
对比GPT-1,GPT-2并未在模型结构上大作文章,只是使用了更多参数的模型和更多的训练数据(表1)。GPT-2最重要的思想是提出了“所有的有监督学习都是无监督语言模型的一个子集”的思想,这个思想也是提示学习(Prompt Learning)的前身。GPT-2在诞生之初也引发了不少的轰动,它生成的新闻足以欺骗大多数人类,达到以假乱真的效果。甚至当时被称为“AI界最危险的武器”,很多门户网站也命令禁止使用GPT-2生成的新闻。
GPT-3被提出时,除了它远超GPT-2的效果外,引起更多讨论的是它1750亿的参数量。GPT-3除了能完成常见的NLP任务外,GPT-3还能写SQL,JavaScript等语言的代码,进行简单的数学运算上也有不错的表现效果。

GPT-3的结构和任务

白皮书pdf:arxiv.org/pdf/2005.14…

结构上GPT-3是Transformer的 Decoder(解码器 部分,它不包含编码器,而是直接将输入文本作为解码器的输入,并通过自回归的方式生成文本,即模型预测下一个词语时,会参考前面已经生成的词语。

  • GPT-3 专注于生成文本,它擅长创作故事、诗歌、代码等,以及完成各种语言任务,例如翻译、总结和问答。
  • BERT 则更侧重于理解文本,它在理解句子的含义、情感分析、问答和机器翻译等方面表现出色。

image.png

GPT-3的预训练

比较特别的是,GPT-3提出了一种 in-context 学习方式

做个示范:

其中 苹果翻译成 apple,是一个示范样例,用于让模型感知该输出什么。只给提示叫做 zero-shot,给一个范例叫做 one-shot,给多个范例叫做 few-shot。再多的话,就成了传统的finetune(微调) 模式了。
在 GPT-3 的预训练阶段,也是按照这样多个任务同时学习的。如这里的“做数学加法,改错,翻译”同时进行。这其实就类似 promptprompt是一种提示性的预训练方法,如MASK填词、预测下一句话等,实际上prompt和in-context边界非常模糊,几乎可以认为是一种东西。

image.png

这种引导学习的方式,在超大模型上展示了惊人的效果:只需要给出一个或者几个示范样例,模型就能照猫画虎地给出正确答案。
部分预训练任务训练数据展示:

image.png

图生图-GAN

2022年,大量AI绘画工具上线,不乏国内玩家,TIAMAT、盗梦师、意间AI等国内初创公司做出的产品,引起了市场的热烈反响。
今年8月,百度在飞桨、文心大模型的技术基础上,发布了AI绘画平台文心一格。今年12月,文心一格基于民国才女陆小曼未尽稿,邀请著名海派画家乐震文补全,推出同名画作《未完·待续》,并在一场拍卖会上被卖出110万元人民币。
赶在年末,腾讯、字节跳动、美图等更多大厂加入热潮,它们都在旗下主流软件中加入了AI绘画功能。
腾讯上线了“QQ小世界AI画匠”活动,基于Stable Diffusion模型推出了“异次元的我”这一产品。用户在QQ的小程序中可以打开使用,上传照片便可以生成二次元形象。
这里首先介绍下图生图的鼻祖:GAN。

GAN是啥?能干什么?

GAN(GenerativeAdversarial Networks),生成对抗网络,从字面意思不难猜到它会涉及两个“对手”,一个称为Generator(生成器),一个称为Discriminator(判别者)。最早由Ian Goodfellow于2014年提出,以其优越的性能,在不到两年时间里,迅速成为一大研究热点,各种花式变体Pix2Pix、CYCLEGAN、STARGAN、StyleGAN(图像生成模型)等层出不穷,到18年、19年达到高峰,几乎1/3的论文都是GAN

image.png 但GAN从字面意思看,貌似还看不出它能干什么。实际上我们上面介绍的,“填色”、“换脸”、“换衣”、“换天地”等场景下生成的图像、视频以假乱真,甚至文生图text2image等应用都和GAN息息相关。 20年时训练的CycleGAN,不同epoch下不同的输出

简单的GAN原理

这里收集了19年前所有的GAN算法,18年左右是GAN井喷的时期。

生成器generator

在图像生成的GAN里,那这个generator要做的事情就是:随机一个向量vector,把这个向量丢到生成器里,生成器就要产生一张图像丢入不同的向量就应该产生不同图像,这个是图像的生成器。于是这个生成器就是一个函数function,他的输入是一个向量,输出就是一张图片。
下面是生成器的网络结构,从一个噪声向量,经过变换、采样、卷积等操作生成一张图,原版的GAN的判别器和生成器使用的都是全连接层,这里的图是DCGAN(深度卷积生成对抗网络),在DCGAN中使用卷积层代替。这样做的好处是卷积网络能够提取图片数据的二维特征,提高图片的生成质量

全连接层

    • 每个神经元都连接到前一层的所有神经元。  也就是说,前一层的每个神经元的值都会影响到下一层中所有神经元的计算。
    • 每个连接都对应一个权重。  这些权重是需要学习的参数,决定了不同神经元之间连接的强度。
    • 每个神经元都使用一个激活函数。  激活函数引入非线性,使得神经网络能够学习更复杂的模式。
  • 假设我们有一个全连接层,它接收来自前一层10个神经元的输入,并输出5个神经元。那么,这个全连接层会有 10 x 5 = 50 个连接,每个连接都对应一个权重。

全连接层的缺点:

  • 参数量大:  全连接层的参数量与输入和输出神经元的数量成正比,如果输入和输出的维度很高,参数量会非常庞大,导致训练速度慢,容易过拟合。
  • 难以提取局部特征:  全连接层无法有效地提取图像的局部特征,这使得它在处理图像数据时效果并不理想

卷积层

  • 卷积层的运作原理类似于一个滑动窗口,它会对图像进行扫描,并使用一个小的滤波器 (也称为卷积核) 对每个局部区域进行计算。

  • 具体来说,卷积核会与图像的局部区域进行点乘操作,并将结果加起来,得到一个新的值,这个值就代表了该局部区域的某个特征。

  • 通过使用多个不同的卷积核,卷积层可以提取图像中不同类型的特征,例如边缘、纹理、形状等。

卷积层是卷积神经网络的核心组件,它通过使用卷积核提取图像的局部特征,并利用参数共享和平移不变性来提高模型的效率和泛化能力。

image.png

image.png 比较有意思的是,假设我们的向量第一个dimension对应的是头发的长度,将vector它的第一个dimension的值从0.1调整到3,generator的output就会是一个长头发的角色;假设vector的倒数第二个dimension对应到头发是不是蓝色的,值越大代表头发越蓝,将这个值从2.4调到5.4,产生出来的角色就会变成蓝头发。当然在这个简单的GAN上面,我们还不能先验的指定哪个维度是头发,哪个是颜色,都是模型训练完之后,调参试出来的。

判别器

GAN里还有个结构是Discriminator(判别器),它也可以当做一个函数function,他的输入是一张图,输出是一个“分数”,判别器主要是判断输入的图片是不是真实的。判别器输出数值越大,就代表产生出来的这张图片的quality越高,那么看起来越像是真实的图片(产生出来的数值越大,就表示输入的图片越真实)。

image.png

生成器和判别器之间的对抗

在GAN里,生成器和判别器之间的关系就像是猎食者和它的猎物之间的关系。

image.png 猎食者和它的猎物之间,不同的对抗阶段:

  • 生成器:右上角这个是一只枯叶蝶的祖先,它是彩色的
  • 判别器:因为麻雀会吃枯叶蝶,所以枯叶蝶在天择的压力之下就变成棕色的。因为麻雀判断蝴蝶能不能吃的标准就是它是什么颜色。
  • 生成器:为了不被麻雀吃掉,枯叶蝶进化成了棕色(如果是彩色就会被吃掉,如果是棕色就不会被吃掉);
  • 判别器:但是枯叶蝶的天敌麻雀也是会进化的,麻雀进化成了比比鸟,比比鸟判断一个东西能不能吃的标准并不是看颜色,而是看有没有叶脉的纹路。
  • 生成器:枯叶蝶在天择的压力之下就产生了看起来像是叶脉的条纹,它可以骗过比比鸟。
  • 判别器:但是比比鸟也会再进化,进化之后它可能有别的标准来判断这个东西是不是可以吃的。
  • 生成器:枯叶蝶也会再不断地进化
  • .........

猎食者和天敌就会再互相拮抗之中变得越来越强。而这个枯叶蝶就像是生成器,而它的天敌就像是判别器
因为generator和discriminator之间有一种对抗的关系(它们像是天敌与被猎食者之间的关系),所以用adversarial(对抗)这个词汇来命名这个技术(Generative Adversarial Network)

损失函数的设计

这样的对抗关系也可以用GAN里的损失函数来解释:


V指损失函数,D指判别器,G指生成器,Pdata指真实数据的概率分布,PG是生成数据的概率分布。

训练方式

将判别器和生成器联合起来看,整个GAN的结构是这样的:

上节的对抗关系可以看出,GAN是一个交替训练的流程,一般来讲是:

  • 生成随机向量,生成器输出,固定生成器参数训练判别器
  • 重新生成随机向量,生成器输出,固定判别器参数,拿到判别器输出,训练生成器

image2image图生图的CycleGAN算法

CycleGAN简单介绍

介绍了从随机向量生成图片的GAN算法,这里简单介绍一个从图片生成图片的GAN:循环生成对抗网络(简称CycleGans),能从一个风格的图像,转换成另一个风格,只是风格的迁移,本身图像内容不会变化。
CycleGAN的结果如下:

包含了两个生成器G、F和两个判别器Dx、Dy,以及两个不同风格的图像数据集X、Y。其中

  • G用于X风格图像生成Y风格图像;
  • F用于Y风格图像生成X风格图像;
  • Dy用于判别从G(x)生成的y和真实Y;
  • Dx用于判别从F(y)生成的x和真实X;

CycleGAN的损失函数

image.png

文字生成图片

文字+GAN

相比image2image,text2text更难,论文《Generative Adversarial Text to Image Synthesis》介绍了如何通过 GAN 进行从文字到图像的转化。比方说,若神经网络的输入是“粉色花瓣的花”,输出就会是一个包含了这些要素的图像。该任务包含两个部分:1. 利用自然语言处理来理解输入中的描述。2. 生成网络输出一个准确、自然的图像,对文字进行表达。

这个模型流程如下:

  • 先用文本向量+随机值组成向量,作为生成器的输入;
  • 生成器拿到向量生成图片;
  • 判别器对图片进行参数空间转换+打平,和文本向量组合后,再进行判别;

DALL-E 2

要说2022年最惊艳的text2image模型,必然是OpenAI的DALL-E 2了。DALL-E 2不仅能按用户指令生成明明魔幻,却又看着十分合理不明觉厉的图片。作为一款强大的模型,目前我们已知DALL-E 2还可以:

  • 生成特定艺术风格的图像,仿佛出自该种艺术风格的画家之手,十分原汁原味!
  • 保持一张图片显著特征的情况下,生成该图片的多种变体,每一种看起来都十分自然;
  • 修改现有图像而不露一点痕迹,天衣无缝。

image.png

  • 首先,将文本提示输入文本编码器,该训练过的编码器便将文本提示映射到表示空间。
  • 接下来,称为先验的模型将文本编码映射到相应的图像编码,图像编码捕获文本编码中包含的提示的语义信息。
  • 最后,图像解码模型随机生成一幅从视觉上表现该语义信息的图像。
CLIP-把文本和视觉图像联系起来
  • CLIP就是在图像预训练那节介绍的模型,它几乎就是DALL-E 2的心脏,因为CLIP才是那个把自然语言片段与视觉概念在语义上进行关联的存在,这对于生成与文本对应的图像来说至关重要。
GLIDE-从视觉语义生成图像
  • CLIP学习了一个表示空间,在这个表示空间当中很容易确定文本编码和视觉编码的相关性。我们需要学会利用表示空间来完成反转图像编码映射这个任务,这个过程就是DALL-E 2的后部分。在这里,OpenAI使用了GLIDE的修改版本来执行图像生成。GLIDE(是一种基于扩散的文本条件图像合成模型,它能够根据文本提示生成高质量的图像。)模型学习反转图像编码过程,以便随机解码CLIP图像嵌入,其中为了进行图像生成,GLIDE使用了扩散模型(Diffusion Model)。 image.png
先验模型-从文本语义到相应的视觉语义的映射
  • 如何将文字提示中的文本条件信息注入到图像生成过程中?除了图像编码器,CLIP还学习了文本编码器。DALL-E 2使用了另一种模型,作者称之为先验模型,以便从图像标题的文本编码映射到对应图像的图像编码。DALL-E 2的作者用自回归模型和扩散模型进行了实验,但最终发现它们的性能相差无几。考虑到扩散模型的计算效率更高,因此选择扩散模型作为 DALL-E 2的先验。

image.png

ChatGPT介绍

上面介绍了文生图、图生图,下面介绍最近很火的文生文模型ChatGPT
OpenAI 发布的ChatGPT,是一个可以对话的方式进行交互的模型,因为它的智能化,得到了很多用户的欢迎。ChatGPT 也是 OpenAI 之前发布的 InstructGPT 的亲戚,ChatGPT 模型的训练是使用 RLHF(Reinforcement learning with human feedback)也许ChatGPT 的到来,也是 OpenAI 的 GPT-4 正式推出之前的序章。
ChatGPT目前还没有论文放出,但是ChatGPT和2022年初OpenAI提出的InstructGPT相差不大

GPT-3

GPT-3 可以使用精心设计的文本提示执行自然语言任务。 但这些模型也可能产生不真实、有毒或反映有害情绪的输出。 这部分是因为 GPT-3 被训练来预测大型互联网文本数据集上的下一个单词,而不是安全地执行用户想要的语言任务。 换句话说,这些模型与他们的用户不一致。
为了让模型更安全、更有帮助和更一致,在ChatGPT/InstructGPT中使用了一种称为基于人类反馈的强化学习 (RLHF) 的现有技术。

InstructGPT/ChatGPT中的强化学习

强化学习非常像生物进化,模型在给定的环境中,不断地根据环境的惩罚和奖励(reward),拟合到一个最适应环境的状态。而InstructGPT/ChatGPT中的RLHF最早可以追溯到Google在2017年发表的《Deep Reinforcement Learning from Human Preferences》,它通过人工标注作为反馈,提升了强化学习在模拟机器人以及雅达利游戏上的表现效果

InstructGPT的训练过程

image.png

  1. 根据采集的SFT数据集对GPT-3进行有监督的微调(Supervised FineTune,SFT);
  2. 收集人工标注的对比数据,训练奖励模型(Reword Model,RM);
  3. 使用RM作为强化学习的优化目标,利用PPO算法微调SFT模型。
第一步-使用人工标注数据微调GPT-3
  1. 微调的有监督数据集SFT,是用来训练第1步有监督的模型,即使用采集的新数据,按照GPT-3的训练方式对GPT-3进行微调。因为GPT-3是一个基于提示学习的生成模型,因此SFT数据集也是由提示-答复对组成的样本。SFT数据一部分来自使用OpenAI的PlayGround的用户,另一部分来自OpenAI雇佣的40名标注工(labeler)。
第二步-使用人工标注数据训练奖励模型RM
  1. 如果要用强化学习训练语言模型,那么就需要为InstructGPT的训练设置一个奖励目标。这个奖励目标一定要尽可能全面且真实的对齐我们需要模型生成的内容。
    OpenAI通过人工标注的方式来提供这个奖励,通过人工对可以给那些涉及偏见的生成内容更低的分从而鼓励模型不去生成这些人类不喜欢的内容。InstructGPT的做法是先让模型生成一批候选文本,让后通过labeler根据生成数据的质量对这些生成内容进行排序。
    奖励模型RM的结构是将SFT训练后的模型的最后的嵌入层去掉后的模型。它的输入是prompt和Reponse,输出是奖励值。具体的讲,对弈每个prompt,InstructGPT会随机生成4-9个输出,然后它们向每个labeler成对的展示输出结果,然后用户从中选择效果更好的输出并进行排序。
    奖励模型的损失函数表示如下。这个损失函数的目标是最大化labeler更喜欢的响应和不喜欢的响应之间的差值。其中的r代表模型的输出,x是prompt,y是response。

image.png

第三步-强化学习PPO算法微调优化SFT模型

PPO数据没有进行标注,它均来自GPT-3的API的用户。既又不同用户提供的不同种类的生成任务,其中占比最高的包括生成任务(45.6%),QA(12.4%),头脑风暴(11.2%),对话(8.4%)等。
在模型训练上,第三步里的PPO模型,用第二步得到的奖励模型来指导SFT模型的继续训练

ChatGPT和InstructGPT的区别在哪?

image.png ChatGPT和InstructGPT的对比如下,训练方法是几乎一样的,主要区别在base模型和数据采集方法。其中GPT 3.5是在2022年初就训练完成,整个GPT 3.5系列beta.openai.com/docs/model-…,可以看到3.5并不是指一个模型,而是一个系列,InstructGPT也是属于3.5的一类。

base模型数据采集方法训练方法
基于GPT 3finetuneinstructGPT通过外包人员进行数据标注supervised fine-tuning, RW model, Reinforcement learning(监督微调,RW模型,强化学习)
基于GPT 3.5finetuneChatGPT利用AI训练人员AI trainer进行数据标注,更加专业supervised fine-tuning, RW model, Reinforcement learning(监督微调,RW模型,强化学习)

Stable Diffusion 实战 github.com/AUTOMATIC11…