Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Intelligenza artificiale# Calcolo e linguaggio# Apprendimento automatico

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


CodeIt: Una Nuova Era perCodeIt: Una Nuova Era perl'IAcompiti di ragionamento complesso.Rivoluzionare i modelli linguistici per
Indice

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:

  1. 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.
  2. 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.

Fonte originale

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.

Altro dagli autori

Articoli simili