本网站内容使用人工智能(AI)或机器翻译技术翻译,可能存在错误。

Skip to content

ControlNet 与 StarCoder:Roblox 在生成式人工智能领域的研究进展

我们致力于在所有领域(包括人工智能(AI))开展负责任且积极融入社区的研究。我们通过保持透明度、接受外部验证,以及通过合作和赞助支持学术机构来实现这一目标。这种方法使我们能够加速在三大重点领域取得重大突破:生成式人工智能、数据中心扩展和网络安全。 今天,我们将分享两个生成式人工智能研究项目的见解与成果。ControlNet 是一个开源神经网络,它为图像生成模型添加了条件控制功能,以实现更精确的图像输出。StarCoder 是一款用于代码生成的最先进开源大型语言模型(LLM)。 

这两个项目均由学术界与产业界共同合作完成,且都致力于为我们的创作者——3D 艺术家和程序员——打造功能更强大的工具。最重要的是,这些项目与我们通过变革性研究进行长远投资的使命相契合,展现出在基础科学理解以及针对多种应用的 AI 控制方面取得进展的迹象。我们相信这项工作将对 Roblox 的未来以及整个领域产生深远影响,并自豪地将其公之于众。

ControlNet

近期的人工智能突破——特别是利用深度神经网络的数据驱动机器学习(ML)方法——推动了创作工具的新进展。这些进展包括我们在免费工具 Roblox Studio 中向公众开放的“代码辅助”和“材质生成器”功能。 现代生成式人工智能系统包含被称为“模型”的数据结构,这些模型通过数十亿次训练操作得以优化。当今最强大的模型是多模态的,这意味着它们是在文本、图像和音频等多种媒体的混合数据上进行训练的。这使它们能够发现跨媒体的共同潜在含义,而非过度拟合数据集中的特定元素(如配色方案或拼写)。 

这些新型AI系统具备强大的表现力,但这种能力主要通过“提示工程”来引导。所谓提示工程,即简单地修改输入文本,类似于当搜索引擎查询结果未达预期时调整查询词。虽然这可能是体验无引导式聊天机器人等新技术的一种有趣方式,但并非高效或有效的内容创作途径。 创作者真正需要的是能够通过主动控制而非凭空猜测来有效利用的强大工具。

ControlNet项目正是为解决这些挑战迈出的一步。它提供了一种高效方式,能够利用Stable Diffusion等大型预训练AI模型的强大能力,而无需依赖提示工程。ControlNet通过允许艺术家提供超越纯文本提示的附加输入条件,从而增强了控制力。Roblox研究员兼斯坦福大学教授Maneesh Agrawala与斯坦福研究员Lvmin Zhang将我们联合开展的ControlNet项目目标概括为:

  1. 开发更优质的生成式AI工具用户界面。突破晦涩难懂的提示词操作,构建基于更自然方式传达创意理念的交互模式。
  2. 提供更精准的空间控制,不再局限于生成“类似某张图片”或“某风格的图片”,而是能够精准实现创作者脑海中的画面。
  3. 将生成式AI的训练过程转变为计算效率更高的流程,使其运行更快、占用内存更少、能耗更低。
  4. 将图像生成式AI扩展为可复用的构建模块,使其能够集成到标准化的图像处理和3D渲染管道中。 

通过允许创作者提供额外的图像进行空间控制,ControlNet 赋予了对最终生成图像的更大掌控力。例如,在现有的文本到图像生成器上输入“带鹿角的雄鹿”这一提示,会生成多种多样的图像,如下所示:

这些由早期AI解决方案生成的图像虽然赏心悦目,但遗憾的是本质上属于随机结果——无法进行控制。在那些早期的图像生成系统中,除了修改文本提示词外,没有任何方法可以引导输出结果。

借助 ControlNet,创作者如今拥有了更强大的掌控力。使用 ControlNet 的一种方式是同时提供提示语和源图像,以确定应遵循的整体形状。在这种情况下,生成的图像虽然仍会呈现多样性,但关键在于它们会保留指定的形状:

创作者还可以指定一组边、一张完全没有提示词的图片,或通过许多其他方式向系统提供富有表现力的输入。

要创建一个 ControlNet,我们将大型扩散模型网络中的权重克隆为两个版本。一个是可训练网络(它提供控制功能;即“ControlNet”),另一个是锁定网络。锁定网络保留了从数十亿张图像中学习到的能力,可以是任何现有的图像生成器。然后,我们利用特定任务的数据集对可训练网络进行训练,使其从附加图像中学习条件控制。 可训练网络与锁定网络通过一种独特的卷积层连接,我们称之为零卷积层。在此层中,卷积权重会以一种学习方式从零逐渐增长至最优参数,这意味着它们最初不产生影响,系统会自动推导出对锁定网络施加的最优控制力度。

由于原始权重通过锁定网络得以保留,该模型能很好地适应各种规模的训练数据集。而零卷积层使这一过程变得更快——其效率更接近于对扩散模型进行微调,而非从头训练新层。 

我们已针对图像生成对该技术进行了广泛验证。ControlNet不仅能提升输出图像的质量,还能提高针对特定任务的网络训练效率,从而使其能够大规模部署,服务于我们数百万的创作者。实验表明,与需要完全重新训练模型的替代方案相比,ControlNet的效率提升可达10倍。 这种效率至关重要,因为相较于传统软件开发,创建新模型的过程既耗时又消耗大量资源。提高训练效率不仅能节约电力、降低成本,还能加快新增功能的开发速度。

ControlNet 的独特架构使其能够很好地处理各种规模的训练数据集,并适用于多种不同类型的媒体。研究表明,ControlNet 可处理多种控制模态,包括照片、手绘草图以及 OpenPose 姿势检测。 我们相信,ControlNet 可应用于多种不同类型的媒体,用于生成式 AI 内容创作。本研究成果已公开发布,供社区进行实验和进一步开发,随着我们在此领域取得更多发现,我们将持续分享更多信息。

StarCoder

生成式人工智能可用于生成图像、音频、文本、程序源代码或任何其他形式的富媒体。然而,在不同媒体领域中,最成功的应用往往是那些输出结果需由主观判断的领域。例如,一张图像能否成功,取决于它能否吸引人类观众。 如果整幅图像足够引人入胜,其中某些瑕疵——比如边缘的怪异特征,甚至手上的多余手指——可能不会被察觉。同样,一首诗或一篇短篇小说可能存在语法错误或逻辑跳跃,但只要主旨引人入胜,我们往往会对此予以宽容。 

另一种理解主观标准的方式是:结果空间是连续的。一个结果可能优于另一个,但并不存在明确的阈值来判定结果是完全可接受还是不可接受。而在其他领域和媒体形式中,输出结果则由客观标准来评判。 例如,生成式AI编程助手生成的源代码要么正确,要么不正确。如果代码无法通过测试,它就是失败的,即使它与有效解法的代码非常相似。这是一个离散的结果空间。在离散空间中取得成功更为困难,一方面是因为标准更为严格,另一方面是因为无法逐步接近一个好的解法——代码要么完全失效,要么突然就运行起来了。

用于文本输出的LLM在聊天机器人等主观、连续的应用场景中表现良好。它们在生成英语和法语等多个人类语言的散文方面似乎也表现出色。然而,现有的LLM在处理编程语言时的表现似乎不如处理人类语言时那么出色。代码是一种数学形式,它表达意义的方式与自然语言截然不同,且具有客观性。它是一个离散的结果空间,而非连续的结果空间。 为了向 Roblox 创作者提供最高质量的编程语言代码生成服务,我们需要能够在这个离散、客观空间中有效运作的 LLM 应用方法。我们还需建立稳健的方法,以表达代码功能,且该方法应独立于特定语言语法(如 Lua、JavaScript 或 Python)。 

StarCoder 是一款全新的、最先进的开源代码生成大语言模型,它为这一技术挑战带来了重大突破,也是真正面向大众的开放式大语言模型。 StarCoder是BigCode研究联盟的成果之一,该联盟汇聚了来自学术界和产业界研究实验室的600多名成员。Roblox研究员、东北大学教授Arjun Guha协助领导了该团队,共同开发了StarCoder。此次发布的首批研究成果完全聚焦于代码层面——鉴于主观方法已取得相对成功,这是该领域最亟需新突破的领域。 

为了通过支持更广泛 AI 生态系统和 Roblox 社区的大型语言模型(LLM)提供生成式 AI,我们需要仅基于获得适当授权且负责任地收集的数据集进行训练的模型。这些模型还应采用无限制的许可协议,以便任何人都能使用、在此基础上进行构建,并回馈给生态系统。目前,最强大的大型语言模型要么是专有模型,要么仅授权用于有限形式的商业用途,这限制了研究人员对模型本身进行实验的能力。 相比之下,StarCoder 是一个真正开放的模型,由产业界和学术界的研究人员联合创建,并授予无限制的商业应用许可,适用于任何规模。StarCoder 完全基于负责任地收集且获得适当授权的内容进行训练。该模型最初使用公开代码进行训练,并为不希望自己的代码被用于训练的人提供了退出机制。

目前,StarCoder 支持 86 种不同的编程语言,包括 Python、C++ 和 Java。截至论文发表之时,其性能已超越所有支持多语言的开源代码 LLM,甚至能与许多闭源专有模型一较高下。 

StarCoder 大型语言模型是对该生态系统的贡献,但我们的研究目标远不止于此。这项研究的最大影响在于推进客观与主观多模态模型(包括代码、文本、图像、语音和视频)的语义建模,并通过领域迁移技术提高训练效率。我们还期望对生成式 AI 在源代码生成等客观任务中的可维护性和可控性获得深刻见解。 新技术的引人入胜的演示,与能为用户群体创造价值的安全、可靠且高效的产品之间存在巨大差异。对于我们的机器学习模型,我们在内存占用、功耗控制和执行时间方面进行了性能优化。我们还构建了稳健的基础设施,通过软件将 AI 核心与系统其他部分连接起来,并开发了一个无缝系统,以便在添加新功能时进行频繁更新。 

汇聚 Roblox 的科学家和工程师,并与科学界最杰出的思想者携手合作,是我们追求突破性技术的关键所在。我们很自豪能分享这些初步成果,并诚邀研究界同仁与我们携手合作,在此基础上进一步推进这些技术进步。