ControlNet et StarCoder : avancées de la recherche Roblox pour l'IA générative - Roblox Blog

ControlNet et StarCoder : avancées de la recherche Roblox pour l'IA générative – Roblox Blog

Nœud source: 2864546

Nous sommes profondément engagés à poursuivre une recherche responsable et engagée dans tous les domaines, y compris l'intelligence artificielle (IA). Nous y parvenons grâce à la transparence, à la validation externe et au soutien des institutions universitaires par la collaboration et le parrainage. Cette approche nous permet d'accélérer la réalisation des plus grandes avancées dans nos trois domaines prioritaires : l'IA générative, la mise à l'échelle des centres de données et la sécurité en ligne. Aujourd'hui, nous partageons les idées et les résultats de deux de nos projets de recherche sur l'IA générative. ContrôleNet est un réseau neuronal open source qui ajoute un contrôle conditionnel aux modèles de génération d'images pour des sorties d'images plus précises. Codeur étoile est un grand modèle de langage (LLM) open source de pointe pour la génération de code. 

Les deux projets sont des collaborations universitaires et industrielles. Tous deux se concentrent également sur des outils radicalement plus puissants pour nos créateurs : artistes et programmeurs 3D. Plus important encore, et alignés sur notre mission d’investir à long terme grâce à la recherche transformatrice, ces projets montrent des indications de progrès dans la compréhension scientifique fondamentale et le contrôle de l’IA pour de nombreuses applications. Nous pensons que ce travail peut avoir un impact significatif sur l'avenir de Roblox et du domaine dans son ensemble et sommes fiers de le partager ouvertement.

ContrôleNet

Les avancées récentes en matière d’IA – en particulier les méthodes d’apprentissage automatique (ML) basées sur les données utilisant des réseaux neuronaux profonds – ont entraîné de nouvelles avancées dans les outils de création. Ces avancées incluent notre Aide au code ainsi que Générateur de matériaux fonctionnalités disponibles publiquement dans notre outil gratuit, Roblox Studio. Les systèmes d’IA générative modernes contiennent des structures de données appelées modèles qui sont affinées grâce à des milliards d’opérations de formation. Les modèles les plus puissants aujourd’hui sont multimodaux, ce qui signifie qu’ils sont formés sur un mélange de supports tels que le texte, les images et l’audio. Cela leur permet de trouver les significations sous-jacentes communes à travers les médias plutôt que de surajuster des éléments spécifiques d'un ensemble de données, tels que les palettes de couleurs ou l'orthographe. 

Ces nouveaux systèmes d’IA ont un pouvoir d’expression important, mais ce pouvoir est largement dirigé par une « ingénierie rapide ». Cela signifie simplement modifier le texte saisi, un peu comme affiner une requête sur un moteur de recherche si elle ne renvoie pas ce que vous attendiez. Bien que cela puisse être une manière attrayante de jouer avec une nouvelle technologie telle qu’un chatbot non dirigé, ce n’est pas un moyen efficace ou efficient de créer du contenu. Les créateurs ont plutôt besoin d’outils puissants qu’ils peuvent exploiter efficacement grâce à un contrôle actif plutôt qu’à des conjectures.

Le projet ControlNet constitue une étape vers la résolution de certains de ces défis. Il offre un moyen efficace d'exploiter la puissance de grands modèles d'IA pré-entraînés tels que Diffusion stable, sans compter sur une ingénierie rapide. ControlNet augmente le contrôle en permettant à l'artiste de fournir des conditions de saisie supplémentaires au-delà des simples invites textuelles. Maneesh Agrawala, chercheur de Roblox et professeur à l'Université de Stanford, et Lvmin Zhang, chercheur à Stanford, définissent les objectifs de notre projet commun ControlNet comme suit :

  1. Développer une meilleure interface utilisateur pour les outils d’IA générative. Allez au-delà de la manipulation obscure et rapide et construisez autour de moyens plus naturels de communiquer une idée ou un concept créatif.
  2. Fournir un contrôle spatial plus précis, pour aller au-delà de la création « d’une image comme » ou « d’une image dans le style de… » pour permettre de réaliser exactement l’image que le créateur a en tête.
  3. Transformez la formation à l'IA générative en un processus plus efficace en termes de calcul, qui s'exécute plus rapidement, nécessite moins de mémoire et consomme moins d'énergie électrique.
  4. Étendez l’IA générative d’images en un élément de base réutilisable. Il peut ensuite être intégré à des pipelines standardisés de traitement d’image et de rendu 3D. 

En permettant aux créateurs de fournir une image supplémentaire pour le contrôle spatial, ControlNet accorde un meilleur contrôle sur l'image finale générée. Par exemple, une invite « cerf mâle avec des bois » sur un générateur de texte-image existant a produit une grande variété d'images, comme indiqué ci-dessous :

Ces images générées avec les solutions d’IA précédentes sont attrayantes, mais malheureusement elles donnent des résultats essentiellement arbitraires : il n’y a aucun contrôle. Il n'y a aucun moyen sur ces systèmes de génération d'images précédents de piloter la sortie, sauf pour réviser l'invite de texte.

Avec ControlNet, le créateur dispose désormais de beaucoup plus de pouvoir. Une façon d'utiliser ControlNet consiste à fournir à la fois une invite et une image source pour déterminer la forme générale à suivre. Dans ce cas, les images résultantes offriraient toujours de la variété mais, surtout, conserveraient la forme spécifiée :

Le créateur aurait également pu spécifier un ensemble de bords, une image sans aucune invite ou de nombreuses autres façons de fournir une entrée expressive au système.

Pour créer un ControlNet, nous clonons les poids au sein du réseau d'un grand modèle de diffusion en deux versions. L'un est le réseau pouvant être formé (celui-ci fournit le contrôle ; c'est « le ControlNet ») et l'autre est le réseau verrouillé. Le réseau verrouillé préserve les capacités acquises à partir de milliards d’images et pourrait être n’importe quel générateur d’images précédent. Nous formons ensuite le réseau entraînable sur des ensembles de données spécifiques à une tâche pour apprendre le contrôle conditionnel à partir de l'image supplémentaire. Les copies entraînables et verrouillées sont connectées à un type unique de couche de convolution que nous appelons convolution nulle, où les poids de convolution augmentent progressivement de zéros jusqu'à des paramètres optimisés de manière apprise, ce qui signifie qu'ils n'ont initialement aucune influence et que le système dérive le niveau de contrôle optimal à exercer sur le réseau verrouillé.

Étant donné que les poids d'origine sont conservés via le réseau verrouillé, le modèle fonctionne bien avec des ensembles de données d'entraînement de différentes tailles. Et la couche à convolution nulle rend le processus beaucoup plus rapide – plus proche d’un réglage fin d’un modèle de diffusion que de la formation de nouvelles couches à partir de zéro. 

Nous avons effectué une validation approfondie de cette technique pour la génération d'images. ControlNet n'améliore pas seulement la qualité de l'image de sortie. Cela rend également la formation d'un réseau pour une tâche spécifique plus efficace et donc plus pratique à déployer à grande échelle pour nos millions de créateurs. Dans les expériences, ControlNet offre un gain d'efficacité jusqu'à 10 fois par rapport aux scénarios alternatifs qui nécessitent un réentraînement complet d'un modèle. Cette efficacité est essentielle, car le processus de création de nouveaux modèles prend du temps et requiert beaucoup de ressources par rapport au développement de logiciels traditionnels. Rendre la formation plus efficace permet d'économiser l'électricité, de réduire les coûts et d'augmenter la vitesse à laquelle de nouvelles fonctionnalités peuvent être ajoutées.

La structure unique de ControlNet signifie qu'il fonctionne bien avec des ensembles de données d'entraînement de différentes tailles et sur de nombreux types de supports différents. Il a été démontré que ControlNet fonctionne avec de nombreux types différents de modalités de contrôle, notamment des photos, des gribouillis dessinés à la main et pose ouverte détection de pose. Nous pensons que ControlNet peut être appliqué à de nombreux types de médias différents pour le contenu génératif d’IA. Ce la recherche est ouverte et accessible au public pour que la communauté puisse expérimenter et s'appuyer sur elle, et nous continuerons à présenter plus d'informations à mesure que nous ferons plus de découvertes avec.

Codeur étoile

L'IA générative peut être appliquée pour produire des images, de l'audio, du texte, du code source de programme ou toute autre forme de média enrichi. Cependant, parmi les différents médias, les applications qui connaissent le plus grand succès sont généralement celles dont le résultat est jugé de manière subjective. Par exemple, une image réussit lorsqu’elle séduit un spectateur humain. Certaines erreurs dans l'image, telles que des détails étranges sur les bords ou même un doigt supplémentaire sur une main, peuvent ne pas être remarquées si l'image globale est convaincante. De même, un poème ou une nouvelle peut contenir des erreurs grammaticales ou des sauts logiques, mais si l’essentiel est convaincant, nous avons tendance à les pardonner. 

Une autre façon de considérer les critères subjectifs est que l’espace des résultats est continu. Un résultat peut être meilleur qu'un autre, mais il n'y a pas de seuil spécifique à partir duquel le résultat est totalement acceptable ou inacceptable. Pour d’autres domaines et formes de médias, le résultat est jugé objectivement. Par exemple, le code source produit par un assistant de programmation génératif d’IA est correct ou non. Si le code ne réussit pas un test, il échoue, même s'il est similaire au code d'une solution valide. Il s’agit d’un espace de résultats discret. Il est plus difficile de réussir dans un espace discret à la fois parce que les critères sont plus stricts et parce qu'on ne peut pas s'approcher progressivement d'une bonne solution : le code est brisé jusqu'à ce qu'il fonctionne soudainement.

Les LLM utilisés pour la sortie de texte fonctionnent bien pour les applications subjectives et continues telles que les chatbots. Ils semblent également bien fonctionner pour la production de prose dans de nombreuses langues humaines, comme l'anglais et le français. Cependant, les LLM existants ne semblent pas fonctionner aussi bien pour programmation langues comme ils le font pour ces langues humaines. Le code est une forme de mathématiques qui constitue une manière objective et très différente d’exprimer du sens que le langage naturel. Il s'agit d'un espace de résultats discret au lieu d'un espace de résultats continu. Pour obtenir la plus haute qualité de génération de code de langage de programmation pour les créateurs de Roblox, nous avons besoin de méthodes d'application des LLM qui peuvent bien fonctionner dans cet espace objectif discret. Nous avons également besoin de méthodes robustes pour exprimer les fonctionnalités du code indépendamment d'une syntaxe de langage particulière, telle que Lua, JavaScript ou Python. 

StarCoder, un nouveau LLM open source de pointe pour la génération de code, constitue une avancée majeure dans ce défi technique et un LLM véritablement ouvert à tous. StarCoder est l'un des résultats de gros code consortium de recherche, qui regroupe plus de 600 membres issus de laboratoires de recherche universitaires et industriels. Arjun Guha, chercheur sur Roblox et professeur à la Northeastern University, a aidé à diriger cette équipe pour développer StarCoder. Ces premiers résultats publiés se concentrent exclusivement sur l’aspect code, qui est le domaine dans lequel le domaine a le plus besoin de nouveaux développements compte tenu du succès relatif des méthodes subjectives. 

Pour fournir une IA générative via des LLM qui prennent en charge l'écosystème plus large de l'IA et la communauté Roblox, nous avons besoin de modèles qui ont été formés exclusivement sur des ensembles de données sous licence appropriée et collectés de manière responsable. Ceux-ci devraient également être assortis de licences non restrictives afin que chacun puisse les utiliser, les exploiter et contribuer à l’écosystème. Aujourd'hui, les LLM les plus puissants sont propriétaires ou sous licence pour des formes limitées d'utilisation commerciale, ce qui interdit ou limite la capacité des chercheurs à expérimenter le modèle lui-même. En revanche, StarCoder est un modèle véritablement ouvert, créé par une coalition de chercheurs industriels et universitaires et sous licence sans restriction pour une application commerciale à n'importe quelle échelle. StarCoder est formé exclusivement sur du contenu collecté de manière responsable et sous licence appropriée. Le modèle a été initialement formé sur du code public et un processus de désinscription est disponible pour ceux qui préfèrent ne pas utiliser leur code pour la formation.

Aujourd'hui, StarCoder fonctionne sur 86 langages de programmation différents, dont Python, C++ et Java. Au moment de la publication de l'article, il surpassait tous les LLM à code ouvert prenant en charge plusieurs langages et était même compétitif par rapport à de nombreux modèles propriétaires fermés. 

Le StarCoder LLM est une contribution à l’écosystème, mais notre objectif de recherche va bien plus loin. Le plus grand impact de cette recherche consiste à faire progresser la modélisation sémantique des modèles multimodaux objectifs et subjectifs, notamment le code, le texte, les images, la parole, la vidéo, et à accroître l'efficacité de la formation grâce à des techniques de transfert de domaine. Nous espérons également acquérir des connaissances approfondies sur la maintenabilité et la contrôlabilité de l’IA générative pour des tâches objectives telles que la génération de code source. Il existe une grande différence entre une démonstration fascinante d’une technologie émergente et un produit sécurisé, fiable et efficace qui apporte de la valeur à sa communauté d’utilisateurs. Pour nos modèles ML, nous optimisons les performances en termes d'empreinte mémoire, d'économie d'énergie et de temps d'exécution. Nous avons également développé une infrastructure robuste, entouré le cœur de l'IA d'un logiciel pour le connecter au reste du système et développé un système transparent pour des mises à jour fréquentes à mesure que de nouvelles fonctionnalités sont ajoutées. 

Réunir les scientifiques et les ingénieurs de Roblox avec certains des esprits les plus pointus de la communauté scientifique est un élément clé dans notre quête d'une technologie de rupture. Nous sommes fiers de partager ces premiers résultats et invitons la communauté des chercheurs à s'engager avec nous et à tirer parti de ces avancées.

Horodatage:

Plus de Roblox