作者 | Tianbao
导读
2023年以来,AIGC技术已催生了新一轮人工智能浪潮。AI绘画作为大模型最引人瞩目的应用领域之一,近年来也取得了重大突破。AI绘画系统可以根据用户的输入或提示生成各种风格的图像,这为艺术家、设计师和创作者提供了强大的工具,也为数字创意领域带来了新的可能性。
近日,百度搜索主任架构师Tianbao应邀参加了知名技术媒体InfoQ的“极客有约”对话节目,与主持人和观众们就图像生成技术进行了深入探讨,包括百度搜索的应用场景、相关技术的思考,以及在搜索业务场景的应用落地经验。
本文详细记录了访谈内容。
全文10034字,预计阅读时间26分钟。
亮点:
1、这是一个巨大的变革,从过去用户在全网寻找图像,转变为结合了查找图像和生成图像两种方式,以满足用户更具体的需求,这也在一定程度上鼓励用户更主动地表达他们真正的需求。
2、要使一个模型更好地理解中文,准备和清理与中文语义相关的语料非常重要。
3、对于去除低质量样本和构建高价值样本,都是图文对齐所必需的能力。
4、百度搜索需要满足用户在内容和风格方面多样化的需求,在百度搜索目前支持了上千种不同的画面风格定义。
5、遵循美学标准,构建自己的美学认知,无论是在整体模型构建方面还是在算法优化方面,都需要按照这些先进标准来进行相关的指导和评估。
01 文生图的技术发展过程
主持人: AIGC从去年9月到现在,我们能看到各种各样的模型和公司不断涌现。从最初大家使用Stable Diffusion来生成简单的图像,到后来用一些其它方法进行生成式图像编辑,后来甚至Adobe Photoshop 支持使用自然语言方式修改图片。我觉得从之前看到的AIGC在生成文本方面取得的成就之外,还有更多有趣的应用领域。除了生成图片,还能够生成视频和音频。最近,我也看到了一些令人惊艳的生成视频产品。今天想请TianBao老师跟大家展开介绍一下文生图技术目前的整体发展趋势是什么样的。
TianBao:2022年可以算是文生图的元年,整体上分为以Stable Diffusion为代表的开源的流派,以及Midjourney 、Adobe的Firefly、Dall-E 3 为代表的闭源模型。而之所以说这一年是元年,是源于 Disco Diffusion。Disco Diffusion的目标主要是 landscape 等风景类创作,风景类场景是一个容错率比较高的场景,并结合了富有视觉冲击的色彩,极具艺术质感,这在2021年底至2022年初,是一个很大胆、很惊艳的一个尝试。
直到2022年2月,Midjourney发布了v1版本。v1的整体效果相当令人吃惊,但在生成人像方面还差强人意。直到同年7月中旬,Midjourney v3才能正常地生成一些常规人像。在8月份时,作品《太空歌剧院》就通过Midjourney v3进行生成,加上 Photoshop的后期处理,这使得Midjourney成功引起了轰动。
stable-diffusion 1.5版本也在同一时期开源,这个开源事件具有里程碑的意义,因为从那时起,像C站这样的更多用户开始涌向去中心化的模型和优化领域。随着开源技术的发展,整个生态系统,包括下游应用,都经历了爆发式增长和涌现。之后,技术的进步以及下游应用的发展持续在相互促进。
02 百度文生图的探索和成果
主持人:AIGC从去年9月到现在,我们能看到各种各样的模型和公司不断涌现。从最初大家使用Stable Diffusion来生成简单的图像,到后来用一些其它方法进行生成式图像编辑,后来甚至Adobe Photoshop 支持使用自然语言方式修改图片。我觉得从之前看到的AIGC在生成文本方面取得的成就之外,还有更多有趣的应用领域。除了生成图片,还能够生成视频和音频。最近,我也看到了一些令人惊艳的生成视频产品。今天想请TianBao老师跟大家展开介绍一下文生图技术目前的整体发展趋势是什么样的。
我大致还记得Stable Diffusion刚开始的效果并不太好,例如在尝试生成人像时,出现了很多扭曲的结果,如一个人有三条腿或多个眼睛。随着时间推移,这一技术逐渐变得更加逼真。同时,类似Civitai的AI技术也兴起,允许人们根据他们的图像进行各种场景的创作,比如受欢迎的原神系列。这种生成图像技术的发展催生了多种应用。比如,在抽卡类游戏中,原画师可以利用这一技术来创建游戏组件。在百度搜索等国民级应用中,文生图又如何与场景相结合的?刚开始,我理解它可能是在搜索框中,用户输入关键词后能够找到相关的图像,但我相信你们会有更多不同的创新。
**TianBao**:早期,百度也进行了一些AIGC图像生成的尝试。正如刚才和大家讨论的,文生图技术从最初的结果不够可用,逐渐变得可用,并能够释放想象力,带来了引人注目的视觉冲击。
对于搜索,用户以前要找一张图片,通常会进行文本搜索。例如,一个戴着太阳镜和帽子的猫,做着愤怒的手势,用户在脑海中构想的画面,他们通常只能在全网中搜索到已经被创作好的、可感知的内容。但对于一些更具体的场景,比如猫要做着愤怒的手势,穿着特殊服饰,如果全网没有人创作这种图片,用户需求的满足就会受到限制,导致需求退化成寻找一个愤怒的猫,之后,他们将变成浏览型需求,查看全网上是否有类似的愤怒的猫来满足他们的需求。
然而,随着生成式技术的迅速发展,我们现在有能力将用户脑海中的图像具体呈现出来,以满足他们的需求。我们将用户的查找需求,转变为结合了查找图像和生成图像两种方式,以满足用户更具体的需求,这也在一定程度上鼓励用户更主动地表达他们真正的需求。在产品方面,用户可以通过百度的App,搜索”画一个愤怒的猫”或者”画一画”,然后进入文生图的相关功能页面,大家可以亲自体验一下。
寻找一张图片是搜索的第一步。 在图像领域,许多创作者首先需要找到适合他们需求的图像,然后他们可能需要用这张图像作为头像,或者用它作为创作素材,或者在工作中使用它。因此,在生成的过程中,我们正在加入编辑工作,例如修复(inpainting)、扩展(outpainting)。举个例子,如果画面中有一只戴着帽子的猫,通过自然语言交互,我们可以将猫替换为一只狗,从而增加了图像的再利用能力。这背后通常会涉及一个基于文生图的预训练大模型,用于图像编辑。
整体而言,从最初的寻找图像,变成了“找图”加“生图”的过程,然后进入到第二个阶段,即图像的用途,以满足用户在图像领域的需求。
03 文生图的实践及挑战
主持人:听起来这是一个非常有趣的应用场景,因为很多时候,比如我以前制作PPT时,需要找到能满足我的想象场景的图像,例如客户使用产品的场景或某个行业的照片。然而,我又不希望侵犯版权,或者避免涉及各种图像来源的纠纷。在这种情况下,能够找到图像,并在此基础上进行inpainting修改、边框补全,甚至进行图像超分辨率处理,这实际上是一个非常实用的应用场景。
外界可能认为我们只支持一些基本的图像生成和编辑功能,如生成、简单编辑、边框展开以及高分辨率图像的补全。但实际上,根据我的了解,这项技术在中文语境下是相当具有挑战性的。特别是针对中文文化和语义场景,大部分模型通常是在以英语为基础的语境下进行训练的,其原始语料库也是英语为主。然而,百度作为中文搜索引擎领域的巨头,需要处理中文和英文,甚至一些方言的情况,面对这种挑战是如何应对的?
TianBao: 作为最大的中文搜索引擎,百度在理解中文方面具有更强的优势,包括对中文特有元素、中文习惯表达以及方言的理解。 要使一个模型更好地理解中文,准备和清理与中文语义相关的语料显然是不可或缺的步骤。
我们在搜索领域拥有感知全网最全的中文语料的能力,这是天然优势。但除此之外,还需要进行样本的清理、更全面的知识覆盖、获取更多多样性的高质量样本等,以更好地理解整体模型的语义。同时,如果我们希望模型生成的图像质量更高,就需要考虑图像质量、美学因素,例如图像中物体的明显特征和美学风格的准确呈现。此外,还需要进行去重处理,这些都需要有基础的算子能力支持。
所以对于清洗来说,底层基础算子的基建也是一个非常重要的工作。百度在图片基础层面的刻画体系上有多年的积累,所以我们在收录的数据优势之上,可以快速根据模型的不同目标,进行样本的组织和筛选。例如,我们想要更好的语义样本,要做到样本的均衡,要积累不同等级质量和美观度的样本,包括一些人像或者是特殊的 IP 概念等。我们对这些样本进行快速学习,而后应用在模型里。
主持人:对于生成图像大模型,一方面,在训练过程中,我们需要准备高质量的数据集,建立一个良好的基础。另一方面,用户在使用时可能会提供各种各样的复杂描述,例如描述一个杯子,用户可能会加入很多形容词,比如高的、透明的、蓝色的,里面装了一只蟋蟀等,这些描述词可能超出了标准模型支持的Token长度。特别是在中文语境中,用户的描述可能更长,就像您刚才提到的,一只戴着帽子、站在山峰顶、吹着西北风、雪花在背后飘落的猫。在这种情况下,如何处理具有大量描述词和形容词的图像是一个挑战吗?
TianBao:这是一个非常好的问题。图文配对的质量非常重要。 目前,大家主要关注的是开源的Laion-5b,一个包含50亿样本的英文模型,主要基于英文数据集,中文数据相对较少。同时,从这个数据集中,我们也观察到许多不相关的图文对的问题,这些问题可能是由一些杂质引起的。因此,我们需要使用相关性建模算法来过滤掉这些不相关的图文对。
对于使用中文数据集,例如Laion-5b,有一种较快速的方法,即通过英文翻译成中文。然而,这种方法可能会引入很多语言上的歧义,特别是中英文之间表达上的歧义,以及中文所特有的一些语义。例如,如果我们将”transformer”翻译成中文,它可能会变成”变压器”,而如果是指一个头像,对应的英文可能会是”阿凡达”。这些情况都是由于中文语料建设不足导致的中文理解能力上的不足。关于刚才提到的图文对的相关性质量问题,过滤低质量的图文对,需要使用类似于常规的CLIPScore等方式来度量图文的相关性。
另一个方向是在优质数据集的构建上。 毕竟,一张图片可以被非常详细地描述成上百个字,而当前互联网上这种详细描述的数据还相对较少。当前互联网上的描述通常较为简短,可能只包含几十个标记,甚至更短。因此,在构建优质数据集方面,需要将一些高质量的图像与文本描述的力度和视角相结合,以进行文本描述的补充。通常,人们描述的可能是图像的主体和意境,但他们可能会忽略掉图像中的背景、物体的数量以及基本实体的描述。因此,如何实现图像和文本的对齐理解对于文生图的构建非常重要。
因此,对于提供高质量样本的问题,可能需要更适合于图像生成任务的模型,例如caption生成模型。百度在这方面积累了一些经验,所以对于去除低质量样本和构建高价值样本,这些都是图文对齐所必需的能力。
04 图片美感的评估
主持人:确实,与我想象的相比,这个处理的复杂度要高得多。您刚才提到的去除低质量、保留高质量的很重要。您所说的低值和高值是指图像质量对吗?在生成图像时,如果要生成一只猫,首先它必须是一只猫,其次重要的是它必须符合美感。它必须符合一只猫的形状,或者说它必须符合一只狗的形状,而美感是一个非常主观的事情。例如,即使是一只猫,有些人喜欢圆圆的、胖胖的、毛发丰富的猫,他们认为最好是长得像个球一样,但有些人认为猫应该像猫一样,应该有猫的特征,头是头,腿是腿,脖子是脖子。在这种情况下,百度如何处理关于猫应该长成什么样子的问题呢?
TianBao:对于美学,确实像刚才提到的,它是一个偏主观的一个感知,其实是千人千面的,大家可能对美的认知是不太一样的,但是这里面我们其实是期望通过大部分人的美学认知,提出一些美学的定义。
例如,美学的定义通常包括图像的构图,整个画面的结构是什么样的,还包括色彩的应用,如饱和度、对比度、整体的配色,以及光感,例如在摄影棚中的光线设置,如何为不同场景创造更好和更合适的光感。除了视觉色彩方面的定义,画面的内容也可以体现美学,例如画面内容的丰富度或画面的叙事性,这些都是由画面内的内容构成的。因此,这些维度形成了更具普世性的美学标准。
我们遵循这些美学标准,然后构建自己的美学认知,无论是在整体模型构建方面还是在算法优化方面,都按照这些先进标准来进行相关的指导和评估。除了美学之外,图像的清晰度也会影响整体的质感。同时,内容的一致性也很重要,如果看到一只猫有三只腿,内容实体的不一致性将会导致缺陷,从而间接影响图像的可用性和美感。
主持人:您刚刚提到内容的一致性,可以展开这个解释一下这个概念吗?
TianBao:内容一致性可以大概理解为内容的质量或可用性。 比如,如果画一只手,出现了手部的畸形或畸变,这实际上与我们通常对手的概念不符。这会导致手的实体不一致,因此可以认为它存在质量问题。
05 文生图提示工程
主持人:不同场景和用途对美学要求不同,以戴帽子和太阳镜的猫为例,用户可能希望生成不同风格的漫画,如日漫和美漫,它们在视觉体验上有显著差异。美漫通常色彩丰富、轮廓鲜明,而日漫则以黑白为主,视觉冲击力较强。在保障在内容一致性的要求下,百度是如何在不同风格的情况下,从用户的 prompt 中获取相关信息,以支持不同画风的生成?
TianBao:我们来看一下当前文生成图的应用场景。目前,在主流的交互中,通常提供了一些明确定义的特定风格选项,如漫画风格或水彩画风格。但对于用户而言,不应该受到过多的限制,例如,如果用户需要生成一个赛博朋克风格的猫,将其绘制成卡通风格就无法满足用户需求。也就是说,用户不仅可以描述生成画面中出现的内容,如猫,还可以描述他们期望的画面风格。因此,百度搜索需要满足用户在内容和风格方面多样化的需求。
在百度搜索中,我们目前支持上千种不同的画面风格定义。举例来说,用户可以将一只猫呈现为水墨画或卡通画,也可以将它呈现为铝制品或雕刻品,甚至以不同的材质。此外,用户还可以选择不同的视角,如带有运动模糊效果、延时摄影效果,或者鱼眼和广角视角等。我们覆盖了多种不同的风格和分类,因此用户如果有更具体的风格要求,只需在他们的prompt中包含相关风格,即可获得符合他们期望的画面并具备相应风格。
主持人:我还有一个问题,就是关于风格的叠加,是否支持这种操作?例如,能否将鱼眼广角和水墨画的风格同时应用在图像上?因为一个是关于画风,另一个是视角,那如果我们想要将水墨画与卡通风格结合,这是否也是支持的呢?
TianBao:在模型方面,支持多风格是可行的,这样可以激发新的风格创意。然而,我们面临的另一个问题是如何在保持内容一致性的前提下,有效地融合和协调多种风格。因为不同风格之间的差异可能很大,可能会发生一些相互制约的情况,但这确实为用户提供了更多的实验和探索机会,可以通过尝试不同风格的组合,实现更广泛的创意空间。
主持人:如果我有多个风格的关键词去描述最后的主体,最后整张图出来的效果和关键词所在的位置的关联度大吗?比如说水墨、卡通风格的猫和卡通、水墨风格的猫,这两个出来的效果会是一样的吗?
TianBao:这个其实就会涉及到刚才说的一个可控性。最基本的,就像刚才提到的猫一样。它关系到我们如何控制生成的内容,尤其是在涉及到风格方面。实际上,可控性与我们整体的prompt方式相关,因为不同的prompt方式可以导致不同的结果。有些人可能会提供简短的提示,可能前后并列会输入两个不同的风格,而其他人可能更喜欢更详细的prompt表达方式,比如他们可能希望描述一个场景的画面,指定特定的风格,或者强调某种风格在生成中的比重。这些都是不同的prompt方式,可以影响生成内容的方式。
然后对于这种可控来说,其实现在这种顺序上会有一些 Bias。比如Stable Diffusion 的prompt炼丹,也会提及一些,比如怎么写prompt,是放到前面好还是后面好,其实本质上是一种控制的能力,理想的话应该不会存在这样的一些偏差。当然最理想的还是我们可以引导用户能够去更精准的去表达自己脑海中的画面。
主持人:刚才提到百度支持上千种风格,我想问,这上千种风格是人工梳理的,还是通过模型聚类后自动生成的?对于用户来说,知道有这么多风格可选可能一开始会觉得有点过多,有点难以选择。
TianBao:关于风格,基于我们之前提到的,我们对全网内容的感知非常广泛,因此我们有能力感知到全网存在的各种风格数据。第二点是,我们也依赖于对图像相关的理解,无论是聚合算法还是风格美观度的描述,都需要首先有数据,然后通过数据的筛选和识别能力,对这些风格进行自然而然的呈现。 这是对风格定义的方式。
另外刚才提到的,比如说我们当前支持上千种风格,对于用户来说,其实大家可能还是得有一个认知的过程,因为每一种风格可能对于艺术向的用户来说还是会有比较大的一些惊喜的。比如我们看到某种风格和我们常规看到的画面有很大的这种区别,也具备很强的视觉冲击感。所以这里面怎么样能够把我们已有的这些风格能够更好的传递给用户,让用户理解这种风格,并且在后续的这些需求满足创作中能够应用上这些风格,这其实是需要整体的产品和技术来引导的一个工作。
主持人:正如你刚提到的,有上千种不同的艺术风格。即使对于非专业和一些专业的美术生来说,通常只了解一两种风格,比如素描或水墨画。实际上,很少有人能深入了解这么多不同风格并写出好的提示词。那么,当用户不太了解如何编写prompt提示词时,我们该怎么处理呢?比如,用户第一次使用百度,除非有人告诉他们,他们可能不知道支持上千种风格。在这种情况下,我们应该如何处理,并引导他们了解更多有关百度的各种风格以及可以编写的其他提示词呢?
TianBao:对于艺术风格和创造性而言,大家更常接触到关键词”Midjourney”,可以将其作为一个例子,来讲述一个从零开始激发想象力的过程。在早期的运营推广中,有些资源并未过多优化提示词。通常,它们提供了一些相对简单的提示词,比如”dog”(狗)。然而,这是建立在disco社区基础之上的,允许所有用户参与。一些用户尝试将他们的提示词更改为描述一只毛茸茸的狗,而其他用户可能更喜欢科幻题材,例如一只拥有镭射眼睛的狗是什么样子。通过不断的尝试,他们会发现在不同的提示词下可以获得更引人入胜或有趣的效果。这导致了彼此学习,观察其他人如何生成内容,如何设置提示词,以及这会产生什么样的效果。因此,提示词的优化逐渐变得流行起来。这个问题对于整个业界,包括百度搜索和文生图,也是类似的。
对于一般用户而言,他们可能较少接触文生图这个场景。对于初次使用的用户,通常只是尝试绘制一只猫或一只小狗,这引出了一个问题,即如何在用户使用环境相对简单的情况下,为他们生成更好的效果。
这里就会涉及到 prompt的扩充或者是改写。这里有两种思路,一种是去扩充画面的内容,类似于内容的一个丰富性或者是故事感。 比如刚才说的戴着帽子,然后做着愤怒的手势的狗,把画面更具象,其实这是prompt的优化所做的一个工作。同样也可以对风格进行一些扩展,我们可以感知到大部分人对于这个内容之下更喜欢哪些风格,我们就可以通过这种prompt来做更多风格的一些扩写。像刚才说的内容以及在风格上的一些扩写多样性之后,就可以极大的去优化画面的内容丰富度、故事性,以及风格和美观的程度。所以这里面会涉及到怎么样把一个简单的表达的 prompt的输入,通过优化的方式变成一个对模型来说效果更好的一组prompt。
主持人:有一个更具体的问题需要讨论,涉及到prompt的改写。例如,当我们将一个提示从描述一只狗转变为一只带帽子的生气的手势狗时,用户实际上无法看到被改写的部分。我们是否能够确保每次改写都是一样的,或者每次改写的内容可能略有不同?举例来说,第一次可能是一只戴帽子的狗,而第二次可能是一只戴眼镜躺在沙滩上的狗。这个过程是否具有随机性,或者每次都是固定的?
TianBao:对于 prompt的改写来说,其实我们更期望给到用户更多多样性、更多丰富的结果。因为如果是一条狗的话,我们可以想象到的是一个主体是一条狗,可能会有不同的一些犬类的品种,但是狗可能穿着不同服饰出现在不同场景之下,这个对更多人来说会有更多样的一些结果,大家会有更多的预期。所以在模型层面,我们期望通过prompt这种改写和优化,有更多的多样性的备选,然后基于用户实际的反馈,去来感知用户对哪些风格,对什么类型的内容场景的一个画面结果会感兴趣,后验反馈会比较高,这对于整体的prompt的改写模型也会有数据促进的作用。
06 反馈和评估
主持人:刚刚提到了改写,从用户侧收集反馈来迭代模型,有一个词叫做 RLHF(Reinforcement Learning from Human Feedback)。这里我觉得最难的点是human feedback是不稳定的,因为人与人之间的主观观点会差很多。如果我们需要依赖人的反馈来去迭代模型,其实是比较困难的。如果再落实到说模型的evaluation上来说,在这种情况下,百度是如何去manage balance,在图像生成的方向上去做评估。
TianBao:关于后验反馈,首先需要考虑反馈数据是否确实能够代表人类的后验反馈,这对于反馈质量有更高的要求。 因此,可以将这一方面与产品的整体设计和用户交互相结合,以收集更多积极的用户行为反馈。例如,当用户对某个结果感兴趣时,他们可能会点击图片以进行放大查看,然后进行下载等后续行为,这些都是积极的反馈。如果用户对某张图片点赞或进行评论,也提供了直接的反馈。我们希望在整个反馈系统中更有效地收集这些反馈,因为它们实际上反映了用户的偏好。至于模棱两可的反馈,只能通过更大的样本量来收集更具代表性的数据。
主持人:过去,无论是传统的统计机器学习还是标准的深度学习模型,基本上都是监督学习,需要样本或监督来计算F1分数、IQZ和VCR等指标。然而,对于生成式模型,如GPT系列模型或DALL-E这样的生成式模型,技术上并没有像以前那样的标准基准数据集,大家可以根据这些基准数据集来生成和评估。相比之下,生成式模型需要一种更高效的评价方法,而不是依赖人工逐个观察。在这个领域,与其让人们用肉眼逐个观察,是否有方法可以更高效地进行评估呢?
TianBao:更高效的方法实际上更多地涉及到人机结合的手段。就像之前提到的图像评价,我们可以通过一些初步的机器指标来进行观察。
如果我们关注整体的相关性或质量美观度,那么在某些机器指标上可以进行一些刻画。但如果需要精确评估两张图片之间的差异,这些机器指标可能并不具备太大的意义,更需要人工进行判断。前面提到的机器初步评估可以帮助人们进行初步的筛选,从而在人工评价方面节省一些劳动力。
07 未来展望
主持人:好的,接下来的问题稍微展望未来,尽管并不是非常遥远,因为最近我看到许多初创团队和相关公司正在尝试这个领域。以动画为例,动画实际上是将多幅图像的帧叠加在一起呈现的。通常,动画电影以每秒24帧或16帧的速度播放。除了静态单幅图像的编辑,我们可以看到在AIGC领域,对于视频生成或短视频生成,无论是三秒还是七八秒的视频,都在不断发展。之前Runway团队曾举办了一个使用文生图进行视频生成的比赛。您认为在未来多久内,我们会看到第一部完全由AI生成的电影或电影状态?
TianBao:简要回顾一下图像生成,在2022年初,图像生成效果并不是特别理想,但到了2022年的七八月份,整体变得更加可行。根据技术发展趋势,对于动态图或视频的生成,预计不会太久就会迎来技术的飞速发展。因为最近在视频生成领域还有很多探索,无论是基于可控生成的方法还是像Runway这样生成几秒小短片的方法。对于几秒小短片,大家通常会将生成的最后一帧作为下一段的第一帧,以实现更连贯的长视频。然而,对于视频生成来说,面临更大的挑战,因为它不仅要保证空间效果,还需要确保时间上的一致性,这引入了一个额外的维度,对技术要求更高。随着最近对视频生成的不断探索,我们可以预计未来一到两年内可能会出现类似于Stable Diffusion这样革命性的时刻。
招聘
欢迎加入生图研发团队,持续招聘视觉算法研发工程师。
简历欢迎投递至qibingjie@baidu.com,邮件请以【简历投递】为开头。
——END——
推荐阅读
通过Python脚本支持OC代码重构实践(二):数据项提供模块接入数据通路的代码生成