
Dans une étude récente, des chercheurs d’Apple ont dévoilé une approche innovante visant à faire en sorte qu’un modèle open-source apprenne à concevoir de bonnes interfaces en SwiftUI. Leur méthode est détaillée dans l’article UICoder : Finetuning Large Language Models to Generate User Interface Code through Automated Feedback.
D’après les chercheurs, bien que les LLMs (modèles de langage à grande échelle) aient accru leurs compétences dans diverses tâches d’écriture, y compris le codage, ils peinent encore à générer de manière fiable un code d’interface utilisateur conçu selon des normes esthétiques élevées. L’étude révèle que dans les ensembles de données de perfectionnement, les exemples de code UI sont extrêmement rares, représentant parfois moins d’un pour cent du total.
Pour remédier à cela, les chercheurs ont démarré avec StarChat-Beta, un LLM open-source axé sur le codage. Ils ont fourni au modèle une liste de descriptions d’interfaces utilisateur, l’invitant à générer un vaste ensemble de données synthétiques de programmes SwiftUI à partir de ces descriptions. Chaque morceau de code a ensuite été soumis à un compilateur Swift pour garantir sa fonctionnalité, suivi d’une analyse par GPT-4V, un modèle vision-langage qui comparait l’interface compilée avec la description originale.
Les sorties non compilables, jugées hors sujet ou en double ont été écartées. Les résultats restants ont constitué un ensemble de formation de haute qualité, utilisé pour affiner le modèle. Ce processus itératif a été répété plusieurs fois, et les chercheurs ont constaté qu’à chaque itération, le modèle amélioré générait un code SwiftUI de qualité supérieure.
Après cinq cycles, ils avaient presque un million de programmes SwiftUI (996 000 pour être précis) et un modèle nommé UICoder, capable de compiler des interfaces nettement plus fidèles aux prompts initialement fournis.
Il est intéressant de noter que l’étude a révélé que les gains de UICoder n’étaient pas dus à des exemples préexistants en SwiftUI, car l’ensemble de données original d’entraînement de StarChat-Beta en contenait très peu. Les chercheurs ont même observé que les données d’entraînement avaient accidentellement exclu le code SwiftUI, ce qui les a poussés à penser que leur méthode pourrait également s’appliquer à d’autres langages et outils de conception d’interfaces.
Le document complet, UICoder : Finetuning Large Language Models to Generate User Interface Code through Automated Feedback, est disponible sur arXiv.