Les chercheurs d’Apple ont récemment publié une étude captivante sur une méthode innovante pour former des modèles de langage open-source à générer des interfaces utilisateur en SwiftUI. Cette démarche, qui allie intelligence artificielle et développement, soulève des questions fascinantes sur la création de code tout en restant performant. Voici un aperçu de leur approche et des résultats obtenus.
Une approche unique pour surmonter les limites des modèles de langage
Dans leur étude intitulée UICoder : Finetuning Large Language Models to Generate User Interface Code through Automated Feedback, les chercheurs soulignent que malgré les avancées des modèles de langage, ces derniers peinent encore à produire du code d’interface utilisateur à la fois correct sur le plan syntaxique et bien conçu. Une des raisons principales réside dans la rareté des exemples de code UI dans les jeux de données de finetuning.
Les exemples de code UI ne représentent parfois même pas 1% des échantillons dans ces ensembles de données.
Pour pallier ce manque, les chercheurs ont utilisé le modèle StarChat-Beta, spécialisé dans le codage. En lui fournissant des descriptions d’interface utilisateur, ils ont pu générer un énorme jeu de données synthétiques de programmes SwiftUI, ce qui a permis de constituer une base solide pour l’apprentissage.
Un processus itératif et des résultats impressionnants
Chaque pièce de code générée a été soumise à un compilateur Swift pour vérifier son bon fonctionnement, suivie d’une analyse par un modèle de vision/langage, GPT-4V, qui a comparé l’interface compilée à la description initiale. Les sorties non valides, peu pertinentes ou dupliquées ont été écartées, ne laissant qu’un ensemble de haute qualité pour affiner le modèle.

Le processus répétitif a porté ses fruits. Après cinq itérations, les chercheurs ont réussi à générer près d’un million de programmes SwiftUI, obtenant ainsi un modèle qu’ils ont baptisé UICoder. Ce dernier compile de manière constante et produit des interfaces beaucoup plus proches des descriptions initiales que son modèle de base.

Les résultats sont impressionnants : UICoder a surpassé le modèle de base StarChat-Beta, tant sur les métriques automatisées que sur les évaluations humaines. De plus, il a presque atteint le niveau de qualité de GPT-4, surpassant même ce dernier en termes de taux de succès de compilation.
Une découverte inattendue sur les données d’entraînement
Un aspect intéressant de cette étude réside dans une petite erreur de parcours. Le modèle StarChat-Beta a été entraîné sur trois ensembles de données, mais, par inadvertance, peu d’exemples SwiftUI y figuraient. Cela a conduit les chercheurs à constater que les améliorations d’UICoder ne provenaient pas de l’exploitation d’exemples existants, mais de jeux de données auto-générés et soigneusement élaborés.
