Les chercheurs d’Apple ont développé une méthode pour former un modèle de grande langue open source, Starchat-Beta, pour générer du code d’interface utilisateur Swiftui en créant un large ensemble de données synthétiques et en le raffinant de manière itérative grâce à des commentaires automatisés.
La recherche, détaillée dans l’article « UICODER: Finetuning de grands modèles de langue pour générer du code d’interface utilisateur via des commentaires automatisés»» Aborde les défis auxquels sont confrontés les modèles de grande langue (LLMS) dans la génération de code d’interface utilisateur (UI) syntaxiquement correct et bien conçu. Le code d’interface utilisateur peut constituer moins d’un pour cent des exemples totaux.
Pour surmonter cette rareté de données, les chercheurs ont lancé leur approche à l’aide de Starchat-Beta, un LLM open source spécialement conçu pour les tâches de codage. Ils ont fourni à Starchat-Beta une collection de descriptions d’interface utilisateur, demandant au modèle de générer un ensemble de données synthétique substantiel comprenant des programmes Swiftui dérivés de ces descriptions. Cette phase de génération synthétique visait à produire un large ensemble initial d’exemples de code d’interface utilisateur.
Après la génération de code, chaque programme a subi un processus de validation en deux étapes. Tout d’abord, le code a été exécuté via un compilateur Swift pour vérifier son statut exécutable. Deuxièmement, GPT-4V, un modèle de vision en langue de vision, a analysé l’interface compilée, en la comparant à la description de l’interface utilisateur d’origine pour évaluer la fidélité et l’exactitude.
Les sorties qui n’ont pas réussi à compiler, ont été jugées non pertinentes à la description, ou ont été des doublons, ont été systématiquement rejetées. Les résultats restants, ayant répondu aux critères de compilation et de pertinence, ont formé un ensemble de formation de haute qualité. Cet ensemble de données raffiné a ensuite été utilisé pour affiner le modèle Starchat-Beta.
Les chercheurs ont mis en œuvre un processus de raffinement itératif, répétant l’intégralité du cycle de génération et de validation à plusieurs reprises. Chaque itération a démontré une amélioration de la capacité du modèle à générer du code Swiftui, ce qui, à son tour, a contribué à la création de ensembles de données encore plus propres et plus précis pour des tours d’adaptation ultérieurs. Cette boucle de rétroaction continue était au cœur de l’amélioration progressive du modèle.
Après avoir terminé cinq cycles complets de ce processus itératif, les chercheurs avaient amassé environ 996 000 programmes Swiftui distincts. Cet ensemble de données étendu a été utilisé pour former le modèle final, nommé UICODER. Les tests effectués sur UICODER ont indiqué qu’il compilait systématiquement et produisait des interfaces qui s’alignaient considérablement plus près des invites d’origine par rapport au modèle initial de Starchat-Beta. Les mesures automatisées et les évaluations humaines ont toutes deux confirmé la surperformance substantielle par UICODER du modèle de base Starchat-Beta pour générer du code Swiftui.
UICODER a également démontré des capacités comparables à GPT-4 en termes de qualité globale du code, et a notamment dépassé le GPT-4 dans son taux de réussite de la compilation. Une conclusion importante de l’étude a été l’exclusion accidentelle du code Swiftui des données de formation initiales de Starchat-Beta. Starchat-Beta a été principalement formé sur trois corpus: Thestack, un grand ensemble de données de référentiels de code autorisés avec permis avec 250 milliards de jetons; pages Web rampées; et Openassistant-Guanaco, un ensemble de données d’instruction plus petit.
Les chercheurs ont déterminé que les référentiels de code SWIFT étaient exclus par inadvertance lors de la création de l’ensemble de données Thestack. En outre, l’inspection manuelle a révélé que l’ensemble de données OpenAssistant-Guanaco ne contenait qu’un seul exemple de code rapide sur dix mille entrées dans son champ de réponse. Les chercheurs ont émis l’hypothèse que tous les exemples rapides rencontrés par Starchat-Beta au cours de sa formation initiale proviennent probablement des pages Web rampantes, qui ont tendance à être de qualité inférieure et moins structurées que le code du référentiel.
Cette exclusion par inadvertance implique que les gains de performance d’Uicoder n’étaient pas attribuables à la re-processus d’exemples Swiftui préexistants de sa formation de base, car il n’y en avait pratiquement aucun. Au lieu de cela, les améliorations provenaient entièrement des ensembles de données auto-générés et rigoureusement organisés développés via la boucle de rétroaction automatisée d’Apple.
Ce résultat a conduit les chercheurs à émettre l’hypothèse que leur méthode, tout en étant efficace pour la mise en œuvre d’UIS à l’aide de Swiftui, possède le potentiel de généraliser à d’autres langages de programmation et kits d’outils d’interface utilisateur. L’étude complète est accessible sur ArXIV.