Apple a entraîné une IA capable de créer de jolies interfaces SwiftUI
Dans une étude, des chercheurs d’Apple ont dévoilé une approche pour enseigner aux modèles de langage (LLM) la création d’interfaces utilisateur en SwiftUI. Cette méthode s’appuie sur l’auto-apprentissage et pourrait transformer la façon dont les développeurs abordent la programmation d’interfaces.
Le défi des interfaces utilisateur pour les IA
Actuellement, les grands modèles de langage excellent dans de nombreuses tâches d’écriture, notamment la rédaction créative et la programmation générale. Cependant, ils peinent encore à générer de manière fiable un code d’interface utilisateur syntaxiquement correct et bien conçu.
L’équipe d’Apple a identifié la source du problème : même dans les données soigneusement sélectionnées, les exemples de code d’interface représentent moins de 1 % de l’ensemble des exemples de programmation disponibles.
Pour contourner cette limitation, les chercheurs ont adopté une stratégie particulièrement ingénieuse. Ils ont d’abord sélectionné StarChat-Beta, un modèle open source spécialisé dans la programmation, puis lui ont fourni une série de descriptions d’interfaces utilisateur. Le modèle devait ensuite générer des données synthétiques de programmes SwiftUI basées sur ces descriptions. Cette première étape constituait le point de départ d’un processus d’amélioration itératif.
Un système de validation rigoureux
Chaque fragment de code généré passait ensuite par un processus de validation en deux étapes. D’abord, un compilateur Swift vérifiait que le code fonctionnait correctement. Ensuite, GPT-4V, un modèle vision-langage, comparait l’interface compilée avec la description originale.
Les résultats défaillants, non pertinents ou dupliqués étaient systématiquement éliminés. Seuls les codes de haute qualité formaient le nouvel ensemble de données d’entraînement pour affiner le modèle.
Les chercheurs ont répété ce processus à cinq reprises. À chaque cycle, le modèle amélioré générait du code SwiftUI de meilleure qualité, créant ainsi un ensemble de données encore plus propre pour l’itération suivante.
Au terme de ce processus, l’équipe disposait de près d’un million de programmes SwiftUI (996 000 exactement) et d’un modèle baptisé UICoder. Ce dernier compile de manière consistante et produit des interfaces beaucoup plus fidèles aux descriptions initiales que le modèle de départ.
UICoder surpasse ses concurrents
Les tests révèlent qu’UICoder dépasse significativement le modèle StarChat-Beta de base, tant sur les éléments automatisés que lors des évaluations humaines. Plus impressionnant encore, UICoder rivalise avec GPT-4 en matière de qualité globale et le surpasse même sur le taux de réussite de compilation.
En outre, l’étude révèle un élément particulièrement intéressant suite à une erreur initiale. StarChat-Beta avait été entraîné sur trois corpus principaux : TheStack (250 milliards de tokens de référentiels de code sous licence permissive), des pages Web collectées et OpenAssistant-Guanaco, un petit ensemble de données d’ajustement d’instructions.
Or, comme l’expliquent les chercheurs d’Apple, les données d’entraînement de StarChat-Beta ne contenaient pratiquement aucune donnée SwiftUI. Les référentiels de code Swift avaient été accidentellement exclus lors de la création de l’ensemble de données TheStack. Après une inspection manuelle, ils ont découvert qu’OpenAssistant-Guanaco ne contenait qu’un seul exemple Swift sur 10 000.
Un apprentissage véritablement créatif
Cette absence de données SwiftUI dans l’entraînement initial démontre que les gains d’UICoder ne proviennent pas simplement d’un recyclage d’exemples déjà vus. Au contraire, ils résultent entièrement des ensembles de données auto-générés et organisés qu’Apple développe grâce à sa boucle de rétroaction automatisée.
Cette découverte amène les chercheurs à formuler une hypothèse prometteuse : bien que leur méthode ait prouvé son efficacité pour implémenter des interfaces en SwiftUI, elle se généralisera probablement à d’autres langages et boîtes à outils d’interface utilisateur.
Cette approche ouvre ainsi la voie à une nouvelle génération d’outils de développement d’interfaces, où l’intelligence artificielle pourrait devenir un partenaire créatif pour les développeurs du monde entier.