|
伴随 Unity 中国版引擎的布局以及 AI 技术的爆发式发展,ChatGPT、StableDiffusion 等生成式 AI 技术受到广大 Unity 创作者的关注。正如刚刚分享所说,Unity 已经在 AI 领域探索多年,一直致力于利用人工智能技术以及工具,帮助创作者提高生产效率,降低创作门槛。
在 Unity 技术开放日北京站技术专场中,Unity 中国 AI 技术负责人暴林超博士分享了生成式 AI 技术在 3D 数字内容创作领域的发展趋势,并对生成式 AI 技术未来如何助力 Unity 创作进行畅想与展望。
本文节选了部分精彩内容,完整内容已上传至 Unity 社区中的技术专栏。通过以下链接,转至技术专栏学习:
https://developer.unity.cn/projects/648834b9edbc2a0b7ede5363
暴林超:各位来宾,大家上午好!我是来自 Unity 中国的暴林超。现在负责 AI 相关的技术研发。今天借此机会和广大开发者聊聊生成式 AI 这个话题。
先从最火热的两个生成式 AI 技术发展历程聊起,自从 2022 年 4 月份 OpenAI 的 DALL-E 2 的 AI 绘画技术发布,到现在整整一年时间,每天生成式 AI 技术的新闻狂轰滥炸。比较有标志性的几个事件分别是:2022 年 8 月 Stable Diffusion 发布后,社区爆发式增长;直到 2022 年 11 月 ChatGPT 发布,大语言模型广受关注;2023 年,短短一两个月时间,ChatGPT 用户过亿;2023 年 2 月,脱胎于只有 11 个人的小公司的 Midjourney,用户量过千万;最近,ChatGPT Plugins 开放,大家可以在它们的官网测试,会发现通过大语言模型可以很便捷地连接其他各种工具,包括定机票、餐馆以及其他生活内容。
我们先看看这两种技术的核心原理大概是什么样子。
首先是 Stable Diffusion 的 AI 绘画,里面分了三个不同的模型,第一个是训练好的 CLIP Text Encoder,第二个是 Stable Diffusion 隐空间扩散模型,第三个是图像的解码器。这个模型里最核心的其实是两个模块,第一个是右侧上面图片中的 UNet,做 Stable Diffusion 在隐空间扩散去噪迭代的过程,第二个是右侧下面图的部分,把隐空间还原成真实的图像。
在 Stable Diffusion 里,这几个模型的参数量可以了解一下。其中最核心的是中间的部分,模型参数量只有 8.6 亿左右,现在大语言模型出来后觉得这个参数量不高,但是当时在图像生成领域也是相当大的一个模型。这里面还可以关注到,它用到的训练数据是 LAION-5B 子集,有 20 多亿图像和文本配对数据。
然后再分别看一下上边 CLIP Text Encoder 和下面的 Autoencoder,这两个参数量其实也不是很大。跟大语言模型相比,参数量小的原因是因为在图像生成里会有很多的冗余信息,可以通过卷积的方式去节约它的参数量。
我们再看看大语言模型的工作原理。
首先是预训练模型,也就是 GPT 的训练过程。GPT 训练过程非常简单,可以看左侧图,它用很多已有的数据语料生成很多 Sample,根据前面的文本生成下面的单词,让这个模型在非常多的数据上训练,就可以每次根据前面的词预测下一个词,在推理的过程中,它是逐渐一个词、一个词预测出来的,也就是说每次它预测下一个词,然后把下一个词和前面的词一起送进去,再预测下下个词。每生成一句话、每个单词出来都要推理一次,这个过程中很多计算量可以预存起来,提升推理过程的速度。
我们再看看从 GPT3 到 ChatGPT 的发展,这里最重要的是意图对齐的训练。
意图对齐分为三个步骤,第一步是有监督的预调,第二步是 Reward Model 的训练,第三步是强化学习的训练。现在业界公认的一个理论是左侧这个无监督训练,也就是上一页 GPT 的训练,是为了让它把大量知识学到大模型里。右侧的 SFT、RLHF 等步骤,其实是为了让大语言模型更好地表达自己。
我们看看这里的参数量和数据,最早的 GPT 模型只有 1 亿左右的参数量,直到 2020 年 5 月份发布 GPT3 时,它开始有 1700 亿的参数量。当时已经在 NLP 领域里引起了广泛的关注,但是因为还没有直接可以对大众开放的接口,所以还没有出圈。直到 ChatGPT 2022 年 11 月份出来之后,这时基本就出圈了,整个社会发现这个模型好像跟之前的对话模型相比忽然有了智商。ChatGPT 的最大特点是它对于用户意图的理解非常准确,这时候大家觉得它像一个人一样,有了智商,可以跟它交互。
这里可以注意到,训练的数据量从 GPT3 开始就非常庞大了,是 45T 纯文本的数据量,用各种方式最后过滤到 600G 数据训练。直到 InstructGPT,也就是 ChatGPT 前面一个实验性的版本,对外有公开论文的解释,这时候它用的标注数据大概只有几万条对话数据做监督。当 ChatGPT 真正上线之后,据说它用了更多的标注数据,但是具体的数据量没有公布。到最新最强大的 GPT4 模型,业界猜测它达到万亿级别的参数,但也只是猜测,官方没有公布具体是多少。
从这两个技术可以看到 AI 技术的发展趋势——从以前在每个专门领域训练专门的模型,去做领域专用的 AI 小模型的技术,到现在不管从学术研究上,还是从业界对 AI 关注度上,都逐渐变成了“生成式 AI 大模型”。最典型的形式是 Stable Diffusion 和 ChatGPT 这两种,通过 Text Prompt,用大模型来生成图片或者文本,或者用 plugins 这种方式调用第三方工具。
当然,如果要做到在某个专用领域有更好的表现,对通用的 AI 大模型要做专门化的训练,比如这里展示的 LORA 技术。因为想让大模型在专门的领域做训练或者微调,会比较困难一些,但是现在有个简单的技术,在原来大模型不动的基础上叠加一部分小参数,这部分小参数像外挂一样加在上面,我们只训练小的 LORA 参数,以此把大模型适配到具体的领域。
以 ChatGPT 大语言模型为主的技术,对于社会主要有两个方面的影响:第一,它是重塑人机交互的技术。比如以前要通过手指在手机上点的交互方式,可能未来会变成通过自然语言交流和交互。这种交互方式当然不是所有的应用都适合,但是可以想象很大一部分应用可以用这种方式让交互突破原来的限制。第二,右边展示了 Github Copilot 以及 Micosoft Copilot 的一些应用,在目前关于文本的创作、写代码上有明显的提升生产效率的作用。
Unity 是 3D 可交互的实时引擎,所以我们专注在 3D 数据的应用。生成式 AI 从文本和图像、1D 和 2D 的数据扩展到 3D 有很大的难点。
第一大难点是 3D 数据的表示有非常多选择。如果把 2D 数据推广到 3D,最简单的一个推广是体素的数据表达,但是体素的数据表达并不是很高效;常用的 Mesh 更高效,但是 Mesh 不是很规则,所以数据的一致性上会有问题。如果在 3D 数据生成式 AI 里来看,它选择会有更多,比如到底用体素还是点云、Mesh、SDF、隐式场等,学术界在每个表达方式上都有很多论文和新技术出来,但是目前距达到生产可用的质量,还是有一定差距的。
第二个难点是,3D 数据的特点是它呈现的依赖非常多。3D 数据需要在引擎里渲染出比较好的效果,它不单取决于模型本身,还取决于贴图、材质、Shader、光照、动画、VFX 等,这给 3D 的 AIGC 的生成带来很多困难。第三个难点是 3D 的高质量数据比较稀缺,图片生成、文本生成用到的数据量都巨大,图片生成是50亿的规模,但是目前 3D 公开的数据是远达不到这个量级的。
不同的 3D 数据用 AIGC 的方式生成,会有不同的路径。由于 3D 数据很有数据稀缺性,我们有没有办法通过 2D 的生成式 AI,也就是通过现在相对比较成熟的 2D 图片生成技术来提升 3D 模型的生成质量?这也是业界发展最快的一个领域,就是通过可微渲染技术,把 3D 降维成 2D,然后加上 2D 的生成式 AI 模型作为监督,比如用 Diffusion 的 Loss 对它进行监督。
但是现在这种方式还是需要通过监督把 Loss 反传回去来优化 3D 模型,这种方式相当于都要在单个模型上进行训练。最近清华大学发布的 ProlificDreamer 技术,一次推理可能需要几个小时的推理时间,它本身是训练和优化的过程,会比较慢。这个领域现在发展非常快,我们也在持续关注。
现在相对比较成熟的方向是在材质和贴图的生成上,直接可以把 2D 生成式 AI 的模型应用到这方面来,我们现在也在做类似的探索,即直接用一些描述来生成贴图和材质。当然,我们只需要生成材质所需要的贴图,然后同时把 Shader 连起来,就可以达到比较好的效果。
文/Unity
来源:Unity官方平台
原文:https://mp.weixin.qq.com/s/OYBlo6O3eOOE9NXuIxdRtw
|
|