6月8日,Unity开放日在北京正式举行。 会上,来自Unity的技术专家、完美世界《诛仙手游》客户端负责人、《闲女》技术专家、FunPlus引擎技术负责人等嘉宾将进行实战分享游戏管线渲染、性能优化、技术实现等技术。
活动期间,Unity中国AI技术负责人包林超做了题为“趋势与展望,生成式AI技术助力Unity创作”的精彩分享。
以下为演讲实录:
鲍林超:尊敬的各位嘉宾早上好,我是来自Unity中国的鲍林超。 我现在负责一些AI相关的技术研发。 生成式人工智能技术近年来受到社会广泛关注。 今天我们就借此机会和广大Unity开发者一起聊聊这个话题。 当然,由于我刚刚加入Unity China,所以今天我主要和大家讨论一下我们对未来的一些计划和展望。
那么今天我们就从最热门的,两种生成式AI技术的发展历史开始。 自2022年4月发布DALL-E 2和Open AI绘画技术以来,整整一年的时间到现在,可以说每天都有关于生成式AI技术的新闻轰炸。
我们还可以看到更多标志性事件。 2022年8月发布Stable Diffusion后,社区基本爆发式增长unity场景模型,然后直到2022年11月ChatGPT发布,大型语言模型也受到影响。 非常广泛关注,到2023年,短短一两个月,ChatGPT用户将突破1亿。 然后,到了 2023 年 2 月,这家只有 11 个人的小公司,却拥有了超过 1000 万用户。 近日,ChatGPT的Plugins已经开放。 你可以在他们的官方网站上测试一下。 你会发现,通过大语言模型,你可以轻松连接到其他工具,包括预订航班、餐厅和其他日常生活内容。
我们先来看看这两种技术的核心原理是什么样的。 第一个是Stable Diffusion的AI绘画,实际上分为三种不同的模型。 第一部分使用预训练的 Clip Text Encoder,第二部分是真实的 Stable Diffusion 扩散模型本身的模型,第三部分是图像的解码器。
这个模型的核心原理其实就是这两个模块。 其中之一就是上面所谓的Unet,这是一个真正在潜在空间中进行稳定扩散并进行扩散去噪迭代的过程。 下图就是最终将潜在空间还原为真实图像。
在稳定扩散中,我们在这里进行了总结,以了解每个模型的参数。 比如它的核心就是中间模块Stable Diffusion的模型参数实际上只有8.6亿左右。 在大语言中,模型出来之后,你可能会认为参数数量不高,但实际上,在当时的图像生成领域,它出来之后实际上是一个相当大的模型。
这里更重要的是我们可以关注一个数据。 它使用的训练数据是 LAION-5B 的子集。 事实上,使用的数据可能超过 20 亿张图像和文本对。
然后分别看一下。 顶部的Clip Encoder和底部的Auto编码器这两个参数其实并不是很大。 不过,这个参数之所以比大语言模型小,是因为,在图像生成中,实际上会存在很多冗余信息,可以节省参数量。
我们先来看看大语言模型的工作原理。 首先是预训练模型,也就是GPT的训练过程。 GPT训练的过程其实比较简单。 你可以看到左边的图片。 它将使用大量现有数据的语料库,然后生成大量示例。 他们每个人都是一个例子。 每个Example其实都是根据前面的一些文字来生成下面的单词的。 通过让这个模型看到大量这样的数据,它每次都可以根据之前的一些输入单词来预测下一个单词。
然后看右侧。 在推理过程中,它实际上是逐字弹出的。 也就是说,每次预测下一个单词时,它都会将下一个单词与前一个单词一起发送,然后再次预测。 下一句话。 所以实际上,它每次生成一个句子时,都需要对每个单词进行推理。 当然,这个过程中的大量计算可以预先存储起来,以节省推理过程。
我们来看看从GPT 3到Chat GPT的发展。 这里最重要的一步称为意图调整训练。 意图对准的训练分为右边的三个步骤。
第一步SFT是有监督微调,第二步RM是奖励模型的训练,第三步是通过强化学习进行训练。 整个业界公认的理论就是左边的无监督训练,也就是上面页面GPT的训练过程中,他会学到很多的知识到这个大的模型中,但是右边的SFT步骤其实是为了让大的语言模型可以更好地表达自己。
我们还看一下一些参数量以及一些数据的总结。 首先,我们可以看到,最早的GPT模型实际上只有大约1亿个参数。 直到 GPT 3 才开始拥有 1500 亿个参数。 当时它已经在 NLP 领域引起了很大的关注,但由于没有直接向公众开放的接口,所以它还没有离开圈子。 直到2022年11月Chat GPT发布后才基本出圈。 整个社会发现,与之前所有的对话模型相比,这个模型似乎突然多了一个智商,就是之前所有的AI机器人都要跟着聊天的时候可能会感觉有点傻,而且很难理解用户的意图。 Chat GPT 最大的特点之一就是它基本上可以非常准确地理解你用户的意图。 这时unity场景模型,大家都感觉它拥有了和人一样的智商,可以和它互动了。
这里我们可以注意到,用于训练的数据量实际上是从GPT 3开始的。GPT 3实际上使用了非常大量的数据,称为45T纯文本数据。 当然它有各种方法,最后过滤到600G。 这些数据被用于训练,直到 Instruct 的 GPT(Chat GPT 的实验版本)在公开论文中做出了解释。 这个时候他用的是标注数据,里面只有几万条这样的对话的一些数据。 做一个监督者。 但Chat GPT实际上线后,据说使用了更多标注数据,但具体数据量并未公布。
包括这个参数量在内,到最新最强大的GPT 4模型,很多业内人士猜测可能有数万亿个参数,但具体数字他们还没有公布,所以只是猜测。
从这两项技术来看,我们可以看到AI技术的发展趋势,即从过去的技术来看,比如在每个专业领域训练一个专门的模型,制作一个专门针对某个领域的小型AI模型等技术,到现在为止,基本上,无论是从学术研究还是工业界,大家对AI技术的关注已经逐渐变成了一个大的生成式AI模型,也就是像右边这个,最典型的形式就是我刚才讲的这个Stable Diffusion 和 Chat GPT 这两种类型都是通过文本提示和大模型生成的,无论是图片还是文字,或者是调用一些插件之类的第三方工具。
当然,如果我们真的想在某个特定的领域取得更好的表现,我们其实还是需要对一些大型的通用AI模型做一些专门的训练。 例如,这里展示了一种名为 LoRA 的技术。 因为模型本身很大,如果你想把它专业化,做一些专门领域的训练,或者做一些微调,其实会比较困难游戏策划,但是现在有一个比较简单的。 该技术是在原大模型的基础上不移动地叠加一部分小参数。 这部分小参数可以像LoRA一样,像插件一样添加到里面,然后我们只训练LoRA的这部分参数就可以将这个大模型应用到特定的领域了。
那么我们就来看看吧。 我觉得这个大模型,特别是基于大语言模型Chat GPT的技术,会从两个方面对我们整个社会产生巨大的影响。
第一个其实是重塑人机交互方式的技术。 也就是说,过去这种用手指敲击手机的交互方式,未来可能会成为你可以自然地与它交流的方式。 ,用自然语言来做一些交互。 当然,并不是所有的应用程序都非常适合这种交互方式,但是可以想象的是,大量的应用程序可以利用这种方式来突破原有交互方式的一些限制。 。 例如,一些原始菜单可能只有一些有限的选项。 如果通过这种自然语言进行交互,就可以让这种交互更加自由。
然后第二个就是右边的那个。 我们展示了 GitHub Copilot 和 Microsoft Copilot 的一些应用程序。 事实上,在现在的文字创作中,包括写代码,其实对于提高生产效率是有显着的作用的。
那么让我们来看看吧。 我们 Unity 正在处理数据。 因为我们是3D交互实时引擎,所以我们重点关注3D数据方面的一些应用。 但实际上,正如我们之前提到的,无论是文字还是图像。 看看1D和2D数据,将其扩展到3D实际上是非常困难的。
例如,第一个也是最大的困难是表示 3D 数据有很多选择。 如果把2D数据扩展到3D,最简单的扩展其实就是体素数据表达。 然而,这种体素数据表达效率不是很高。 在我们Unity开发中,最常见的表达方式是Mesh,效率比较高。 然而,与这种 Greet 类型的数据相比,Mesh 表达式并不是很规则。 ,所以在学习、数据一致性、组织方面会出现很多问题。
因此,如果您查看 3D 数据的生成式 AI 模型,您将有更多选择,例如是否使用体素、点云、网格、隐式场或 SDF。 不同的表达有不同的学术界各个方向、各种表达方式都有很多论文和新技术问世。 但就我们实际能够生产的质量而言,还存在一定的差距。
3D数据的第二个特点是其呈现方式存在很多依赖性。 所谓呈现依赖,就是我们需要在引擎中渲染呈现出更好的效果。 不仅仅取决于模型本身,还取决于纹理、材质、Shader或者一些特效。 这种情况给我们3D AIGC一代带来了很多困难。
最后一个是3D高质量数据。 事实上,我们还是比较匮乏的。 可以看到我们之前分享的无论是图像生成还是文本生成,使用的数据量都是巨大的。 现在图片50亿的规模,其实还远远没有达到目前3D的公开数据。
接下来我们看看如何使用AIGC生成不同的3D数据。 事实上,会有不同的路径。 比如说因为3D数据本身是数据稀缺的,那么我们有没有什么办法可以利用2D生成式AI,也就是通过相对成熟的2D图像生成技术,来提高这个3D模型生成的质量。 其实这也是业界发展最快的领域,就是利用可微渲染技术将3D降维为2D。 但在2D领域,我们可以添加一些2D生成式AI模型作为监督。 例如,使用扩散的一些损失,或者使用剪辑的一些损失来监督它。
但这样一来,我们仍然需要通过这种监督将损失传回去来训练模型。 现在这些方法很多都需要对单一模型进行一些训练,所以最新的应该是清华大学团队发布的ProlificDreamer技术。 一次推理可能需要几个小时的推理时间,但这本身实际上就是一个训练过程。 而且优化过程会比较慢。 当然,这个领域现在发展很快,我们也在持续关注。
那么现在比较成熟的方向就是材质和纹理的生成。 事实上,我们可以直接将一些2D生成式AI模型应用到这方面。 我们现在也在做一些类似的探索。 我们可以直接使用它们吗? 有些描述是用来直接生成一些地图和材质的。 当然,我们只需要生成这样的材质需要的几张贴图,然后同时连接Shader就可以达到这个更好的效果了。
另外一个比较复杂的事情就是3D场景的生成。 如果我们现在来看,短期内可能更可控的一个解决方案就是通过这个程序化的生成桥梁,即通过文本或者一些用户的草图、或者照片。 等待这个更方便的输入来生成此编程生成所需的一些输入。
比如一些场景的布局,一些组合规则,都是一些简单的数据格式,更适合大型模型来生成。 但当这种数据格式被编程生成工具解析后,我们可以使用一些现有的资产将其拼凑成一个更完整的场景。
下面是最重要的,就是数字人AIGC的技术路径。 数字人是一个非常复杂的技术综合体。 这不仅仅是生成模型和添加纹理的问题。 如果真正生成了一个可用的模型,我们需要模型本身,然后我们还需要它有一些绑定数据,以及一些用于骨骼、头发和布料计算的动画数据,以及一些物理模拟,但是如果我们拆开来看,我们可以看到各个A领域,无论是学术界还是现在工业界,都在逐步发展。
比如前段时间,上海科技大学发布了一个可以直接通过文字描述生成虚拟人头的模型。 我们现在正在积极与他们合作,推动这项技术在Unity中的应用。 然后它包括一些通过一些扩散模型从文本生成动作的研究。
最后,还有一个新技术应用不得不提,就是NeRF相关的应用,即隐式场和神经网络渲染。 该技术通过例如文本输入或图片输入生成隐式字段,然后当用户交互并从不同角度查看时,可以实时推断。 ,不同的视角应该如何呈现? 我们可以看到右侧的小神经网络部分,将其放入引擎中进行实时推理。 这项技术最大的优点是,如果我们想要拍摄一个真实的物体,如果将其放入我们的引擎中,则不需要经历传统建模的整个过程。 我们只需要拍摄照片或者视频,训练一个隐式场,然后将隐式场模型直接放入引擎中,然后通过引擎的实时推理进行渲染,使用神经网络的推理方法来进行渲染每个角度都有不同的效果,我们也在积极探索这个方向。
综上所述,未来3D生成式AI技术我们实际上会在模型、材质、场景、虚拟人等不同方向上进行一些相应的探索。
最后,我们的引擎最重要的使命之一就是智能化。 我们可以看到Unity引擎的接口非常复杂。 例如,显示所有窗口,每个窗口代表不同的内容。 这样的界面,对于一些刚接触Unity开发的开发者来说,其实可以进一步提高学习的效率。 例如开发学习,我们能否让交互更加智能? 我们可以利用一些像聊天室这样的方式来做一些Unity创作方面,我们现在正在积极探索如何通过大语言模型让引擎更加智能,以提高3D内容创作的效率,降低3D内容创作的门槛。
最后,我们刚才在这里展示的是我们对于unity中文引擎Copilot的构想和规划,就是我们会用一个大的语言模型和一个更自然的交互界面让用户把我们的一些3D AIGC模型串起来。 除了我们引擎本身可以提供的一些工具,包括资产库,还有一些程序化生成等工具,我们也会探索如何在本地更好、更安全、更私密的管理用户的数据。 ,这时候我们可以将引擎专用的本地索引工具部署在用户本地,并以这样的方式访问到我们的Copilot中,这样既可以充分调动,又可以保护用户数据本身的隐私。 Copilot 使用本地数据。
最后我想和大家谈谈目前这些AI生成技术对我们Unity创作者的影响。 我想首先我们必须承认AI可以简化目前的一些工作流程,将一些重复繁琐的操作自动化。 也就是在提高效率方面,我们可以看到它有很大的潜力。
那么第二个方面就是因为AI本身的原因,我们可以利用它来调动引擎中一些比较全面的能力,同时也让这些能力对于Unity开发者来说更容易获取。 也许当你不明白Unity的功能时,你可以让Copilot来帮助你。 无论是接听、调动,还是直接自动化执行,调动更多的能力。
当然,我们在这个过程中必须非常警惕地了解这种情况,即现在的AI会犯错误,所以AI生成的东西必须经过我们开发人员仔细检查、确认和修改。 这个过程需要每个人对于使用AI都有一定的技能要求。 AI绘画掀起了生产力革命浪潮。 不过,如果能用AI绘画工具做出更好的画,调整这个提示其实是需要很多技巧的。 ,或者找一些非常适合这一类的模型来做。
当然,当你掌握了这种AI工具后,开发者之间的效率和差异实际上会变得比没有掌握AI工具时更大。 也就是说,如果你能用好工具,你的效率可以提高很多,但如果你不学好这些工具,你的效率可能会慢慢降低。
其实有一个问题大家都非常关心,那就是AI会不会让我们失业。 我个人认为不会,因为AI本身的作用就是提高效率。 提高了效率之后,我们就能有更多的开发生产力,这样我们就能实现更多的想法,这会让我们的想法本身更有价值。
最后,我想用一句话来结束今天的分享。 汽车取代马车后,我们其实可以走得更远。
·····结尾·····
GameLook每日游戏行业报道
全球视野/深度资讯
突发新闻/交流/合作:请添加主编微信igamelook