Migliorare i modelli linguistici con il metodo di iterazione del codice
CodeIt migliora le prestazioni dei modelli di intelligenza artificiale su compiti di ragionamento complessi.
― 6 leggere min
Indice
- La Sfida di ARC
- Panoramica di Code Iteration
- Risultati dell'Uso di CodeIt
- La Struttura dei Compiti di ARC
- Come Funziona CodeIt
- Campionamento di Programmi
- Rietichettatura Retrospettiva
- Fase di Apprendimento
- Insights sulla Performance
- Confronto tra CodeIt e Altri Metodi
- Importanza dell'Iterazione Esperta
- Il Ruolo del Pre-addestramento
- Valutare le Performance di CodeIt
- Sfide e Limitazioni
- Conclusione
- Fonte originale
- Link di riferimento
I modelli di linguaggio grandi stanno diventando sempre più bravi in compiti che molti pensano abbiano bisogno di pensiero a livello umano. Eppure, questi modelli faticano con le misure di intelligenza generale, come l'Abstraction and Reasoning Corpus (ARC). Questo articolo parla di un nuovo metodo chiamato Code Iteration (CodeIt), progettato per aiutare i modelli di linguaggio a migliorare in compiti come quelli che si trovano in ARC.
La Sfida di ARC
ARC è un test per l'intelligenza artificiale che presenta una varietà di compiti per vedere quanto bene l'AI riesce a generalizzare le sue conoscenze. I compiti in ARC sono tosti perché richiedono ragionamento su oggetti, azioni, numeri e spazio. A differenza degli esseri umani, che possono risolvere molti di questi compiti rapidamente, i modelli AI spesso fanno fatica. Ad esempio, i partecipanti umani possono risolvere circa l'80% dei compiti negli studi, mentre alcuni dei migliori modelli AI ottengono solo circa il 12% giusto.
Ogni compito in ARC viene fornito con esempi, che includono griglie di input e output. L'obiettivo è prevedere l'output per nuovi input basandosi sugli esempi forniti. I modelli efficaci devono riconoscere schemi e usare conoscenze generali per collegare i punti. Ad esempio, potrebbero vedere che le celle vicine dello stesso colore formano un gruppo o che forme diverse possono interagire tra loro.
Panoramica di Code Iteration
L'approccio che seguiamo è vedere ARC come una sfida di programmazione in cui un modello impara dagli esempi. CodeIt è la nostra tecnica che migliora i modelli di linguaggio attraverso due passaggi principali:
- Campionamento di Programmi e Rietichettatura Retrospettiva: In questa fase, generiamo programmi basati su coppie input-output, a volte correggendoli successivamente usando gli output che otteniamo realmente.
- Apprendimento da Replay di Esperienze Prioritarie: Questo comporta riapprendere dalle esperienze che raccogliamo, concentrandoci su quelle più significative.
Modificando gli output per riflettere ciò che il programma ha effettivamente prodotto, anche quando non corrisponde all'obiettivo originale, CodeIt aiuta ad affrontare il problema delle ricompense scarse nei compiti di programmazione.
Risultati dell'Uso di CodeIt
Quando abbiamo applicato CodeIt al dataset ARC, ha mostrato grandi risultati. Combinando replay di esperienze prioritarie con pre-addestramento e aumento dei dati, abbiamo raggiunto una buona generalizzazione attraverso i compiti. CodeIt è stato il primo metodo in grado di gestire l'intero dataset di valutazione ARC.
CodeIt è riuscito a risolvere 59 su 400 compiti, superando altri metodi, sia neurali che simbolici. Questo ha mostrato una performance all'avanguardia mentre sfruttava sia la conoscenza pregressa che le esperienze apprese.
La Struttura dei Compiti di ARC
In ARC, ogni compito consiste di esempi dimostrativi abbinati a input di test che necessitano di previsioni. Un modello solido utilizzerà la sua comprensione dei quattro sistemi di conoscenza fondamentali-oggetti, azioni, numeri e spazio-per generalizzare dagli esempi forniti.
Ad esempio, se un compito coinvolge forme colorate in diverse disposizioni, il modello deve riconoscere che le forme dello stesso colore potrebbero essere raggruppate insieme o interagire in modo diverso rispetto alle forme di altri colori.
Come Funziona CodeIt
Campionamento di Programmi
Durante la fase di campionamento, otteniamo nuovi programmi basati su una politica collegata a coppie input-output. Il sistema traduce input e output target in una forma testuale e genera un programma, che viene poi eseguito per vedere quale output crea. Se l'output è valido, viene registrato in un buffer per l'apprendimento successivo.
Rietichettatura Retrospettiva
La rietichettatura retrospettiva è fondamentale. Ci permette di prendere gli output che il programma genera-anche se differiscono da quello che intendevamo-e usarli per migliorare l'apprendimento. Questo metodo crea un modo per imparare da esperienze che inizialmente non erano viste come successi.
Fase di Apprendimento
Nella fase di apprendimento, addestriamo la politica usando informazioni dal nostro buffer, concentrandoci su input e output corretti, e sui programmi corrispondenti. L'obiettivo è minimizzare gli errori migliorando la capacità di prevedere correttamente gli output.
Insights sulla Performance
Attraverso una sintonizzazione attenta del nostro approccio, abbiamo raggiunto risultati notevoli mentre risolvevamo compiti in ARC. Il metodo ha dimostrato che rivedendo le esperienze in base alla priorità, il modello potrebbe meglio trattenere informazioni critiche ed evitare di dimenticare esperienze importanti.
Confronto tra CodeIt e Altri Metodi
Confrontando CodeIt con metodi esistenti, abbiamo trovato che eccelleva rispetto agli approcci tradizionali, che si basano o su reti neurali che prevedono direttamente gli output o su metodi simbolici che prima creano una rappresentazione del compito.
CodeIt utilizza efficacemente una combinazione di reti neurali e rappresentazioni simboliche, permettendogli di elaborare sia la conoscenza pregressa che le esperienze apprese di recente. Questa combinazione si è dimostrata potente nella generazione e affinamento delle soluzioni.
Importanza dell'Iterazione Esperta
L'Iterazione Esperta (ExIt) è un concetto che coinvolge il miglioramento del processo di apprendimento di un'AI alternando tra la raccolta di nuove esperienze e il miglioramento della sua politica sottostante a partire da quelle esperienze. I metodi attuali si basano tipicamente su tecniche potenti ma potrebbero non scalare bene quando si tratta di gestire più compiti.
Seguendo un approccio simile a quello di un esperto tenendo presente i limiti di tempo e calcolo, CodeIt può generare esperienze da un modello senza richiedere una ricerca computazionalmente pesante. Questo porta a un apprendimento più efficiente mantenendo la qualità.
Il Ruolo del Pre-addestramento
Il pre-addestramento è un aspetto fondamentale del nostro approccio. Utilizzando un modello pre-addestrato, CodeIt beneficia di conoscenze esistenti, rendendo più facile imparare nuovi compiti senza partire da zero. Questo aumenta l'efficienza e l'efficacia del processo di apprendimento.
Anche quando abbiamo provato a ripristinare i pesi della politica pre-addestrata, CodeIt ha ancora dimostrato la capacità di apprendere, sebbene più lentamente. Questo mostra che partire da una base solida con conoscenze pre-addestrate aiuta significativamente il processo di apprendimento.
Valutare le Performance di CodeIt
Valutare le performance di CodeIt ha coinvolto misurare quanto bene fosse in grado di risolvere i compiti rispetto ai metodi precedenti. Mentre i metodi di base spesso vacillavano quando presentati con una gamma di compiti, CodeIt ha mostrato una capacità più sostenuta di trovare soluzioni.
Tracciando la performance su più esecuzioni, abbiamo raccolto spunti sull'efficacia del nostro approccio. Ad esempio, abbiamo visto miglioramenti nella qualità delle soluzioni nel tempo, con molte istanze in cui CodeIt ha affinato soluzioni precedenti rendendole più brevi e efficaci.
Sfide e Limitazioni
Nonostante i suoi successi, CodeIt affronta ancora alcune sfide. L'approccio si basa su un linguaggio personalizzato, il che significa che la sua efficacia può dipendere dal design di questo linguaggio. La necessità di un interprete per valutare i programmi aggiunge anche complessità al sistema.
Anche se CodeIt può imparare da nuove esperienze, attualmente ha bisogno di alcune conoscenze fondamentali, sia da un DSL che da un modello pre-addestrato, per eccellere davvero.
Conclusione
In sintesi, CodeIt presenta un approccio promettente per migliorare i modelli di linguaggio per compiti come quelli in ARC. Utilizzando una combinazione di campionamento di programmi, rietichettatura retrospettiva e replay di esperienze prioritarie, raggiunge performance impressionanti.
Questo metodo non solo avanza il nostro modo di affrontare i compiti di programmazione ma sottolinea anche il valore di combinare conoscenze preesistenti con l'apprendimento continuo. Man mano che modelli come CodeIt continuano a evolversi, promettono di sbloccare nuove possibilità nell'intelligenza artificiale, migliorando la nostra capacità di risolvere problemi complessi.
Titolo: CodeIt: Self-Improving Language Models with Prioritized Hindsight Replay
Estratto: Large language models are increasingly solving tasks that are commonly believed to require human-level reasoning ability. However, these models still perform very poorly on benchmarks of general intelligence such as the Abstraction and Reasoning Corpus (ARC). In this paper, we approach ARC as a programming-by-examples problem, and introduce a novel and scalable method for language model self-improvement called Code Iteration (CodeIt). Our method iterates between 1) program sampling and hindsight relabeling, and 2) learning from prioritized experience replay. By relabeling the goal of an episode (i.e., the target program output given input) to the realized output produced by the sampled program, our method effectively deals with the extreme sparsity of rewards in program synthesis. Applying CodeIt to the ARC dataset, we demonstrate that prioritized hindsight replay, along with pre-training and data-augmentation, leads to successful inter-task generalization. CodeIt is the first neuro-symbolic approach that scales to the full ARC evaluation dataset. Our method solves 15% of ARC evaluation tasks, achieving state-of-the-art performance and outperforming existing neural and symbolic baselines. Our code is available at https://github.com/Qualcomm-AI-research/codeit .
Autori: Natasha Butt, Blazej Manczak, Auke Wiggers, Corrado Rainone, David W. Zhang, Michaël Defferrard, Taco Cohen
Ultimo aggiornamento: 2024-07-01 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2402.04858
Fonte PDF: https://arxiv.org/pdf/2402.04858
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.