ControlNet и StarCoder: исследовательские достижения Roblox в области генеративного искусственного интеллекта - блог Roblox

ControlNet и StarCoder: исследовательские достижения Roblox в области генеративного искусственного интеллекта – блог Roblox

Исходный узел: 2864546

Мы глубоко привержены проведению ответственных исследований и участию сообщества во всех областях, включая искусственный интеллект (ИИ). Мы достигаем этого за счет прозрачности, внешней проверки и поддержки академических учреждений посредством сотрудничества и спонсорства. Такой подход позволяет нам ускорить достижение наибольших успехов в трех наших основных областях: генеративный искусственный интеллект, масштабирование центров обработки данных и онлайн-безопасность. Сегодня мы делимся информацией и результатами двух наших исследовательских проектов в области генеративного ИИ. сеть управления — это нейронная сеть с открытым исходным кодом, которая добавляет условный контроль к моделям генерации изображений для более точного вывода изображений. Старкодер — это современная модель большого языка (LLM) с открытым исходным кодом для генерации кода. 

Оба проекта представляют собой научное и отраслевое сотрудничество. Оба также ориентированы на радикально более мощные инструменты для наших создателей: 3D-художников и программистов. Что наиболее важно и соответствует нашей миссии инвестирования в долгосрочную перспективу посредством преобразующих исследований, эти проекты демонстрируют признаки прогресса в фундаментальном научном понимании и контроле ИИ для многих приложений. Мы считаем, что эта работа может оказать существенное влияние на будущее Roblox и отрасли в целом, и с гордостью делимся ею открыто.

сеть управления

Недавние прорывы в области искусственного интеллекта, в частности методы машинного обучения на основе данных (ML) с использованием глубоких нейронных сетей, привели к новым достижениям в инструментах создания. Эти достижения включают в себя нашу Помощь с кодом и Генератор материалов функции, которые общедоступны в нашем бесплатном инструменте Roblox Studio. Современные генеративные системы искусственного интеллекта содержат структуры данных, называемые моделями, которые уточняются посредством миллиардов обучающих операций. Самые мощные модели на сегодняшний день являются мультимодальными, то есть они обучаются на сочетании таких носителей, как текст, изображения и аудио. Это позволяет им находить общие основные значения в различных средствах массовой информации, а не подгонять их под конкретные элементы набора данных, такие как цветовые палитры или правописание. 

Эти новые системы искусственного интеллекта обладают значительной выразительной силой, но эта сила в основном реализуется посредством «быстрого проектирования». Это означает простое изменение входного текста, аналогично уточнению запроса поисковой системы, если он не дал ожидаемого результата. Хотя это может быть увлекательным способом игры с новой технологией, такой как неуправляемый чат-бот, это не эффективный и действенный способ создания контента. Вместо этого создателям нужны мощные инструменты, которые они могут эффективно использовать посредством активного контроля, а не догадок.

Проект ControlNet — это шаг к решению некоторых из этих проблем. Он предлагает эффективный способ использовать возможности больших предварительно обученных моделей искусственного интеллекта, таких как Стабильная диффузия, не полагаясь на оперативное проектирование. ControlNet увеличивает контроль, позволяя художнику предоставлять дополнительные условия ввода, помимо текстовых подсказок. Исследователь Roblox и профессор Стэнфордского университета Маниш Агравала и исследователь из Стэнфорда Львмин Чжан формулируют цели нашего совместного проекта ControlNet следующим образом:

  1. Разработайте лучший пользовательский интерфейс для генеративных инструментов искусственного интеллекта. Выйдите за рамки непонятных быстрых манипуляций и используйте более естественные способы передачи идеи или творческой концепции.
  2. Обеспечить более точный пространственный контроль, выйти за рамки создания «изображения типа» или «изображения в стиле…», чтобы дать возможность реализовать именно тот образ, который задумал создатель.
  3. Превратите генеративное обучение ИИ в более эффективный с точки зрения вычислений процесс, который выполняется быстрее, требует меньше памяти и потребляет меньше электроэнергии.
  4. Превратите искусственный интеллект, генерирующий изображения, в многоразовый строительный блок. Затем его можно интегрировать со стандартизированными конвейерами обработки изображений и 3D-рендеринга. 

Позволяя создателям предоставлять дополнительное изображение для пространственного контроля, ControlNet обеспечивает больший контроль над окончательным сгенерированным изображением. Например, подсказка «самец оленя с рогами» в существующем генераторе текста в изображение создала множество разнообразных изображений, как показано ниже:

Эти изображения, созданные с помощью предыдущих решений искусственного интеллекта, привлекательны, но, к сожалению, результаты по сути произвольны — контроля нет. В предыдущих системах генерации изображений не было возможности управлять выводом, кроме как редактировать текстовое приглашение.

Благодаря ControlNet у создателя теперь гораздо больше возможностей. Один из способов использования ControlNet — предоставить как подсказку, так и исходное изображение для определения общей формы, которой следует следовать. В этом случае полученные изображения по-прежнему будут разнообразными, но, что особенно важно, сохранят заданную форму:

Создатель также мог указать набор краев, изображение вообще без подсказки или многие другие способы обеспечения выразительного ввода в систему.

Чтобы создать ControlNet, мы клонируем веса в сети большой диффузионной модели в две версии. Одним из них является обучаемая сеть (это обеспечивает управление; это «ControlNet»), а другой — заблокированная сеть. Заблокированная сеть сохраняет возможности, полученные из миллиардов изображений, и может быть любым предыдущим генератором изображений. Затем мы обучаем обучаемую сеть на наборах данных для конкретных задач, чтобы изучить условное управление по дополнительному изображению. Обучаемые и заблокированные копии связаны с уникальным типом слоя свертки, который мы называем нулевая свертка, где веса свертки постепенно растут от нулей до оптимизированных параметров изученным способом, что означает, что изначально они не имеют никакого влияния, и система получает оптимальный уровень управления для воздействия на заблокированную сеть.

Поскольку исходные веса сохраняются через заблокированную сеть, модель хорошо работает с наборами обучающих данных различных размеров. А слой с нулевой сверткой делает этот процесс намного быстрее — ближе к точной настройке диффузионной модели, чем к обучению новых слоев с нуля. 

Мы провели обширную проверку этого метода для генерации изображений. ControlNet не просто улучшает качество выходного изображения. Это также делает обучение сети для выполнения конкретной задачи более эффективным и, следовательно, практичным для масштабного развертывания для миллионов наших авторов. В экспериментах ControlNet обеспечивает повышение эффективности до 10 раз по сравнению с альтернативными сценариями, требующими полного переобучения модели. Эта эффективность имеет решающее значение, поскольку процесс создания новых моделей требует много времени и ресурсов по сравнению с разработкой традиционного программного обеспечения. Повышение эффективности обучения позволяет экономить электроэнергию, снижать затраты и увеличивать скорость добавления новых функций.

Уникальная структура ControlNet означает, что она хорошо работает с наборами обучающих данных различного размера и на самых разных типах носителей. Было показано, что ControlNet работает со многими различными типами методов управления, включая фотографии, нарисованные от руки каракули и открыть обнаружение позы. Мы считаем, что ControlNet можно применять ко многим различным типам носителей для создания контента с использованием ИИ. Этот исследования открыты и общедоступны чтобы сообщество могло экспериментировать и развивать его, и мы продолжим предоставлять больше информации по мере того, как будем делать с ней новые открытия.

Старкодер

Генеративный искусственный интеллект может применяться для создания изображений, аудио, текста, исходного кода программы или любой другой формы мультимедийного контента. Однако в различных средствах массовой информации наибольшим успехом пользуются приложения, результаты которых оцениваются субъективно. Например, изображение имеет успех, когда оно нравится зрителю. Определенные ошибки в изображении, такие как странные детали по краям или даже лишний палец на руке, можно не заметить, если общее изображение привлекательно. Точно так же в стихотворении или рассказе могут быть грамматические ошибки или логические скачки, но если суть убедительна, мы склонны их прощать. 

Другой способ рассмотрения субъективных критериев состоит в том, что пространство результатов является непрерывным. Один результат может быть лучше другого, но не существует конкретного порога, при котором результат является полностью приемлемым или неприемлемым. Для других областей и форм СМИ результаты оцениваются объективно. Например, исходный код, созданный помощником по программированию с генеративным искусственным интеллектом, либо правильный, либо нет. Если код не может пройти тест, он терпит неудачу, даже если он аналогичен коду допустимого решения. Это дискретное пространство результатов. В дискретном пространстве добиться успеха сложнее как потому, что критерии более строгие, так и потому, что к хорошему решению нельзя постепенно приближаться — код разбивается до тех пор, пока он вдруг не заработает.

LLM, используемые для вывода текста, хорошо работают для субъективных, непрерывных приложений, таких как чат-боты. Они также, кажется, хорошо работают для создания прозы на многих человеческих языках, таких как английский и французский. Однако существующие программы LLM, похоже, не работают так же хорошо для Программирование языки, как они делают это с человеческими языками. Код — это форма математики, которая представляет собой совсем другой, объективный способ выражения смысла, чем естественный язык. Это дискретное пространство результатов вместо непрерывного пространства результатов. Чтобы добиться высочайшего качества генерации кода на языке программирования для создателей Roblox, нам нужны методы применения LLM, которые могут хорошо работать в этом дискретном, объективном пространстве. Нам также нужны надежные методы для выражения функциональности кода, независимого от синтаксиса конкретного языка, такого как Lua, JavaScript или Python. 

StarCoder, новый современный LLM с открытым исходным кодом для генерации кода, является крупным достижением в решении этой технической задачи и по-настоящему открытым LLM для всех. StarCoder — это один из результатов БигКод исследовательский консорциум, в который входят более 600 членов из академических и отраслевых исследовательских лабораторий. Исследователь Roblox и профессор Северо-Восточного университета Арджун Гуха помог команде разработать StarCoder. Эти первые опубликованные результаты сосредоточены исключительно на аспекте кода, который является областью, в которой данная область больше всего нуждается в новом развитии, учитывая относительный успех субъективных методов. 

Чтобы реализовать генеративный ИИ через LLM, которые поддерживают более широкую экосистему ИИ и сообщество Roblox, нам нужны модели, которые были обучены исключительно на лицензированных и ответственно собранных наборах данных. Они также должны иметь неограниченные лицензии, чтобы каждый мог использовать их, развивать их и вносить свой вклад в экосистему. Сегодня самые мощные LLM являются собственностью или лицензируются для ограниченных форм коммерческого использования, что запрещает или ограничивает возможности исследователей экспериментировать с самой моделью. Напротив, StarCoder — это действительно открытая модель, созданная коалицией отраслевых и академических исследователей и лицензированная без ограничений для коммерческого применения в любом масштабе. StarCoder обучается исключительно на ответственно собранном и лицензированном соответствующим образом контенте. Первоначально модель была обучена на общедоступном коде, и для тех, кто предпочитает не использовать свой код для обучения, доступен процесс отказа.

Сегодня StarCoder работает с 86 различными языками программирования, включая Python, C++ и Java. На момент публикации статьи он превосходил все LLM с открытым кодом, поддерживающие несколько языков, и даже конкурировал со многими закрытыми проприетарными моделями. 

StarCoder LLM — это вклад в экосистему, но цель нашего исследования гораздо глубже. Наибольшее влияние этого исследования имеет развитие семантического моделирования как объективных, так и субъективных мультимодальных моделей, включая код, текст, изображения, речь, видео, а также повышение эффективности обучения с помощью методов передачи домена. Мы также ожидаем получить глубокое понимание удобства сопровождения и управляемости генеративного ИИ для решения таких объективных задач, как генерация исходного кода. Существует большая разница между интригующей демонстрацией новых технологий и безопасным, надежным и эффективным продуктом, который приносит пользу сообществу пользователей. Для наших моделей ML мы оптимизируем производительность с точки зрения использования памяти, энергосбережения и времени выполнения. Мы также разработали надежную инфраструктуру, окружили ядро ​​искусственного интеллекта программным обеспечением для его подключения к остальной части системы и разработали целостную систему для частых обновлений по мере добавления новых функций. 

Объединение ученых и инженеров Roblox с самыми острыми умами научного сообщества является ключевым компонентом в нашем стремлении к революционным технологиям. Мы с гордостью делимся этими первыми результатами и приглашаем исследовательское сообщество сотрудничать с нами и развивать эти достижения.

Отметка времени:

Больше от Roblox