
Dans une nouvelle étude, un groupe de chercheurs d’Apple présente une approche fascinante pour apprendre à un modèle open-source à concevoir lui-même de bonnes interfaces en SwiftUI. Voici comment ils ont procédé.
Dans le document UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback, les chercheurs expliquent que bien que les modèles de langage aient progressé dans de nombreuses tâches d’écriture, ils peinent encore à « générer de manière fiable du code syntaxiquement correct et bien conçu pour les interfaces utilisateur ». Une des raisons ? Les jeux de données de formation contiennent très peu d’exemples de code UI.
Pour relever ce défi, ils ont utilisé StarChat-Beta, un modèle spécialisé dans le codage. Ils lui ont fourni des descriptions d’interfaces et l’ont chargé de 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é exécuté via un compilateur Swift pour s’assurer qu’il fonctionnait, suivi d’une analyse par GPT-4V, un modèle de vision-langage comparant l’interface compilée à la description originale.
Les sorties échouant à compiler ou ne correspondant pas à la description initiale ont été écartées. Les résultats restants ont servi à affiner le modèle.
Après cinq cycles, ils ont obtenu près d’un million de programmes SwiftUI (996 000 pour être précis) et un modèle nommé UICoder qui compilait de manière cohérente et produisait des interfaces nettement plus proches des consignes que le modèle de départ.
Fait intéressant : le jeu de données original n’incluait accidentellement presque pas de code SwiftUI. Comme expliqué par les chercheurs d’Apple, le modèle StarChat-Beta initial avait peu de chances d’avoir été exposé à des exemples de SwiftUI de qualité.
Ces progrès sont donc le fruit de jeux de données auto-générés et soigneusement sélectionnés. Les chercheurs pensent également que cette méthode pourrait être généralisée à d’autres langages et outils d’interface utilisateur.