ControlNet et StarCoder : avancées de la recherche Roblox en matière d'IA générative

Nous sommes profondément engagés à mener des recherches responsables et impliquant la communauté dans tous les domaines, y compris l'intelligence artificielle (IA). Nous y parvenons grâce à la transparence, à la validation externe et au soutien apporté aux institutions universitaires par le biais de collaborations et de parrainages. Cette approche nous permet d'accélérer la réalisation des avancées les plus significatives 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 conclusions et les résultats de deux de nos projets de recherche en IA générative. ControlNet est un réseau neuronal open source qui ajoute un contrôle conditionnel aux modèles de génération d'images pour des résultats plus précis. StarCoder est un modèle linguistique de grande envergure (LLM) open source de pointe destiné à la génération de code.
Ces deux projets sont le fruit de collaborations entre le monde universitaire et l'industrie. Ils visent tous deux à fournir des outils nettement plus puissants à nos créateurs : artistes 3D et programmeurs. Plus important encore, et conformément à notre mission d'investir dans une perspective à long terme par le biais d'une recherche transformatrice, ces projets laissent entrevoir des avancées dans la compréhension scientifique fondamentale et le contrôle de l'IA pour de nombreuses applications. Nous pensons que ces travaux pourraient avoir un impact significatif sur l'avenir de Roblox et du secteur dans son ensemble, et nous sommes fiers de les partager ouvertement.
ControlNet
Les récentes percées en matière d’IA — en particulier les méthodes d’apprentissage automatique (ML) basées sur les données et utilisant des réseaux neuronaux profonds — ont permis de nouvelles avancées dans les outils de création. Ces avancées incluent nos fonctionnalités Code Assist et Material Generator, disponibles au public 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 », affinées par des milliards d'opérations d'entraînement. Les modèles les plus puissants aujourd'hui sont multimodaux, ce qui signifie qu'ils sont entraînés sur un mélange de médias tels que le texte, les images et l'audio. Cela leur permet de trouver les significations sous-jacentes communes à tous les médias plutôt que de se focaliser sur des éléments spécifiques d'un ensemble de données, comme les palettes de couleurs ou l'orthographe.
Ces nouveaux systèmes d'IA possèdent une puissance expressive considérable, mais cette puissance est principalement canalisée par le biais de l'« ingénierie des invites ». Cela consiste simplement à modifier le texte d'entrée, un peu comme on affine une requête sur un moteur de recherche si celle-ci ne donne pas les résultats escomptés. Bien que cela puisse être une façon attrayante de jouer avec une nouvelle technologie telle qu'un chatbot non dirigé, ce n'est pas un moyen efficace 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 un pas en avant vers la résolution de certains de ces défis. Il offre un moyen efficace d’exploiter la puissance des grands modèles d’IA pré-entraînés tels que Stable Diffusion, sans recourir à l’ingénierie des invites. ControlNet renforce le contrôle en permettant à l’artiste de fournir des conditions d’entrée supplémentaires allant au-delà des simples invites textuelles. Maneesh Agrawala, chercheur chez Roblox et professeur à l’université de Stanford, et Lvmin Zhang, chercheur à Stanford, définissent les objectifs de notre projet commun ControlNet comme suit :
- Développer une meilleure interface utilisateur pour les outils d'IA générative. Aller au-delà de la manipulation obscure des invites et s'appuyer sur des moyens plus naturels de communiquer une idée ou un concept créatif.
- Fournir un contrôle spatial plus précis, afin d'aller au-delà de la simple création d'« une image semblable à » ou « une image dans le style de... » pour permettre de réaliser exactement l'image que le créateur a en tête.
- Transformer l'entraînement de l'IA générative en un processus plus efficace sur le plan informatique, qui s'exécute plus rapidement, nécessite moins de mémoire et consomme moins d'énergie électrique.
- Étendre l'IA générative d'images pour en faire un élément de base réutilisable. Elle pourra alors être intégrée à des pipelines standardisés de traitement d'images et de rendu 3D.
En permettant aux créateurs de fournir une image supplémentaire pour le contrôle spatial, ControlNet offre un plus grand 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 texte-image existant a produit une grande variété d’images, comme illustré ci-dessous :

Ces images générées à l'aide des solutions d'IA précédentes sont attrayantes, mais il s'agit malheureusement de résultats essentiellement arbitraires : il n'y a aucun contrôle. Il n'existe aucun moyen, sur ces anciens systèmes de génération d'images, d'orienter le résultat, si ce n'est en modifiant la consigne textuelle.
Avec ControlNet, le créateur dispose désormais d'un pouvoir bien plus grand. Une façon d'utiliser ControlNet consiste à fournir à la fois une consigne et une image source afin de déterminer la forme générale à respecter. Dans ce cas, les images obtenues offriraient toujours une certaine variété, mais, surtout, elles conserveraient la forme spécifiée :

Le créateur aurait également pu spécifier un ensemble de bords, une image sans aucune indication, ou de nombreuses autres façons de fournir une entrée expressive au système.
Pour créer un ControlNet, nous clonons les poids d'un grand modèle de diffusion en deux versions. L'une est le réseau entraînable (qui assure le contrôle ; c'est « le ControlNet ») et l'autre est le réseau verrouillé. Le réseau verrouillé conserve les capacités acquises à partir de milliards d'images et peut être n'importe quel générateur d'images existant. Nous entraînons ensuite le réseau entraînable sur des ensembles de données spécifiques à la tâche afin d'apprendre le contrôle conditionnel à partir de l'image supplémentaire. Les copies entraînables et verrouillées sont reliées par un type unique de couche de convolution que nous appelons « convolution zéro », où les poids de convolution passent progressivement de zéro à 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étermine le niveau optimal de contrôle à exercer sur le réseau verrouillé.
Comme les poids d'origine sont préservé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 de convolution zéro accélère considérablement le processus — ce qui s'apparente davantage à un réglage fin d'un modèle de diffusion qu'à l'entraînement de nouvelles couches à partir de zéro.
Nous avons procédé à une validation approfondie de cette technique pour la génération d’images. ControlNet ne se contente pas d’améliorer la qualité de l’image de sortie. Il rend également l’entraînement 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. Lors d’expériences, ControlNet offre un gain d’efficacité pouvant atteindre 10 fois supérieur par rapport à d’autres scénarios nécessitant un réentraînement complet du modèle. Cette efficacité est cruciale, car le processus de création de nouveaux modèles est chronophage et gourmand en ressources par rapport au développement logiciel traditionnel. Rendre l'entraînement plus efficace permet d'économiser de l'électricité, de réduire les coûts et d'accélérer le rythme d'ajout de nouvelles fonctionnalités.
La structure unique de ControlNet lui permet de fonctionner efficacement avec des ensembles de données d'entraînement de différentes tailles et sur de nombreux types de médias. Il a été démontré que ControlNet fonctionne avec de nombreux types de modalités de contrôle, notamment les photos, les croquis dessinés à la main et la détection de poses OpenPose. Nous pensons que ControlNet peut être appliqué à de nombreux types de supports pour la création de contenu IA génératif. Cette recherche est ouverte et accessible au public afin que la communauté puisse l'expérimenter et s'en inspirer, et nous continuerons à présenter davantage d'informations à mesure que nous ferons de nouvelles découvertes grâce à elle.
StarCoder
L'IA générative peut être utilisée pour produire des images, du son, du texte, du code source de programme ou toute autre forme de média enrichi. Cependant, parmi les différents types de médias, les applications qui remportent le plus de succès sont généralement celles dont le résultat est évalué de manière subjective. Par exemple, une image est réussie lorsqu'elle plaît à un observateur humain. Certaines erreurs dans l'image, telles que des détails étranges sur les bords ou même un doigt en trop sur une main, peuvent passer inaperçues si l'image dans son ensemble est captivante. De même, un poème ou une nouvelle peut comporter des erreurs grammaticales ou des sauts logiques, mais si l'essentiel est captivant, nous avons tendance à les pardonner.
Une autre façon d'envisager les critères subjectifs est de considérer 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. Dans d'autres domaines et pour d'autres formes de médias, le résultat est jugé objectivement. Par exemple, le code source produit par un assistant de programmation IA générative est soit correct, soit incorrect. Si le code ne passe 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 défectueux jusqu’à ce qu’il fonctionne soudainement.
Les LLM utilisés pour la production de texte fonctionnent bien pour des applications subjectives et continues telles que les chatbots. Ils semblent également bien fonctionner pour la génération 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 les langages de programmation que pour ces langues humaines. Le code est une forme de mathématiques qui constitue une manière très différente et objective d’exprimer du sens par rapport au langage naturel. Il s’agit d’un espace de résultats discret plutôt que continu. Pour offrir aux créateurs Roblox une génération de code de la plus haute qualité, nous avons besoin de méthodes d’application des LLM capables de bien fonctionner dans cet espace discret et objectif. Nous avons également besoin de méthodes robustes pour exprimer la fonctionnalité du code indépendamment de la syntaxe d’un langage particulier, tel 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 face à ce défi technique et un LLM véritablement ouvert à tous. StarCoder est l’un des résultats du consortium de recherche BigCode, qui regroupe plus de 600 membres issus de laboratoires de recherche universitaires et industriels. Arjun Guha, chercheur chez Roblox et professeur à la Northeastern University, a contribué à diriger cette équipe pour développer StarCoder. Ces premiers résultats publiés se concentrent exclusivement sur l’aspect code, domaine dans lequel le secteur a le plus besoin de nouveaux progrès compte tenu du succès relatif des méthodes subjectives.
Pour proposer une IA générative via des LLM qui soutiennent l’écosystème plus large de l’IA et la communauté Roblox, nous avons besoin de modèles qui ont été entraîné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 quiconque puisse les utiliser, s’appuyer sur eux et contribuer en retour à 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 avec le modèle lui-même. En revanche, StarCoder est un modèle véritablement ouvert, créé grâce à une coalition de chercheurs issus de l’industrie et du monde universitaire, et concédé sous licence sans restriction pour une application commerciale à n’importe quelle échelle. StarCoder est entraîné exclusivement sur du contenu collecté de manière responsable et sous licence appropriée. Le modèle a été initialement entraîné sur du code public, et un processus de désinscription est disponible pour ceux qui préfèrent que leur code ne soit pas utilisé pour l’entraînement.
Aujourd’hui, StarCoder fonctionne sur 86 langages de programmation différents, dont Python, C++ et Java. À la date de publication de l’article, il surpassait tous les LLM à code ouvert prenant en charge plusieurs langages et était même compétitif face à de nombreux modèles fermés et propriétaires.
Le LLM StarCoder est une contribution à l’écosystème, mais notre objectif de recherche va bien plus loin. L’impact le plus important de cette recherche réside dans l’avancement de la modélisation sémantique des modèles multimodaux tant objectifs que subjectifs, incluant le code, le texte, les images, la parole et la vidéo, ainsi que dans l’amélioration de l’efficacité de l’entraînement 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 intrigante d’une technologie émergente et un produit sûr, fiable et efficace qui apporte de la valeur à sa communauté d’utilisateurs. Pour nos modèles d’apprentissage automatique, 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 de logiciels pour le connecter au reste du système, et mis au point un système fluide permettant 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 brillants de la communauté scientifique est un élément clé de notre quête de technologies révolutionnaires. Nous sommes fiers de partager ces premiers résultats et invitons la communauté de recherche à s'engager à nos côtés pour tirer parti de ces avancées.


