Apple crea un modello AI che impara da solo a scrivere interfacce SwiftUI
Apple crea un modello AI che impara da solo a scrivere interfacce SwiftUI
Un team di ricercatori Apple ha descritto in uno studio un metodo interessante per far sì che un modello open source imparasse a generare autonomamente codice di interfaccia utente in SwiftUI. Il risultato è sorprendente: il modello non solo funziona, ma supera GPT-4 in alcune metriche, pur non avendo praticamente mai visto SwiftUI durante la fase di addestramento iniziale.
Nel paper intitolato “UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback“, gli autori partono da un dato di fatto: nonostante i modelli linguistici abbiano fatto enormi progressi nella scrittura creativa e nella programmazione, faticano ancora a generare codice di interfaccia utente corretto, elegante e funzionante.
Il motivo è semplice:
“Anche nei dataset curati o costruiti manualmente per il fine-tuning, gli esempi di codice per UI sono estremamente rari e, in alcuni casi, rappresentano meno dell’1% del totale”.
Come ha fatto Apple a creare UICoder da zero?
I ricercatori hanno preso StarChat-Beta, un LLM open source specializzato nella programmazione, e gli hanno fornito una lista di descrizioni testuali di interfacce. Il compito era generare una grande quantità di codice SwiftUI a partire da quelle descrizioni.
Ogni pezzo di codice prodotto è stato:
compilato tramite il compilatore Swift per verificarne la validità;
analizzato da GPT-4V, il modello multimodale di OpenAI, per confrontare il risultato grafico con la descrizione testuale originale.
Se un output non compilava, risultava irrilevante, duplicato o incoerente, veniva eliminato. Gli altri venivano invece usati per costruire un dataset di addestramento sintetico ma di alta qualità con cui veniva poi fatto il fine-tuning dello stesso modello.
Questo ciclo è stato ripetuto cinque volte e, a ogni giro, il modello generava output sempre migliori, il che migliorava il dataset e, a sua volta, il modello. Alla fine, Apple si è ritrovata con 996.000 programmi SwiftUI generati e un nuovo modello, UICoder, che riusciva a compilare con successo e a produrre interfacce utente (UI) molto più coerenti con le richieste.
Meglio di GPT-4, almeno in parte
Nei test condotti, UICoder ha superato il modello di base StarChat-Beta sia nei test automatici che in quelli condotti da esseri umani. Ma non solo: si è avvicinato molto a GPT-4 in termini di qualità complessiva e l’ha superato per quanto riguarda il tasso di compilazione riuscita.
Curiosamente, il modello StarChat-Beta, da cui tutto è partito, non era mai stato addestrato in modo approfondito su SwiftUI. Questo perché, durante la costruzione del dataset TheStack, erano state escluse per errore le repository Swift e, nei dati dell’OpenAssistant-Guanaco, c’era un solo esempio Swift su diecimila.
Quindi, i progressi di UICoder non derivano da semplici rielaborazioni del codice visto durante la fase di addestramento, ma da un sistema di autoapprendimento basato su un feedback automatizzato e su una selezione intelligente dei dati generati.
Un metodo che può andare oltre SwiftUI
Secondo gli stessi ricercatori, questo metodo è potenzialmente generalizzabile.
“Anche se il nostro approccio si è dimostrato efficace per generare interfacce SwiftUI, riteniamo che possa essere esteso anche ad altri linguaggi e toolkit per UI”.
Lo studio completo è disponibile su arXiv con il titolo “UICoder: finetuning large language models to generate user interface code through automated feedback”.