La programmazione per esempi è risolta dai modelli linguistici di grandi dimensioni (LLM)?
Is Programming by Example solved by LLMs?
June 12, 2024
Autori: Wen-Ding Li, Kevin Ellis
cs.AI
Abstract
La Programmazione tramite Esempi (PBE, Programming-by-Examples) mira a generare un algoritmo a partire da esempi di input-output. Tali sistemi sono importanti sia dal punto di vista pratico che teorico: per gli utenti finali, vengono distribuiti a milioni di persone, mentre dal punto di vista dell'IA, la PBE corrisponde a una forma molto generale di inferenza induttiva con pochi esempi. Considerando il successo dei Modelli Linguistici di Grande Scala (LLMs, Large Language Models) nei compiti di generazione di codice, qui indaghiamo fino a che punto si possa affermare che gli LLMs abbiano "risolto" la PBE. Sperimentiamo su domini classici come liste e stringhe, e su un dominio insolito di programmazione grafica non ben rappresentato nei tipici dati di pre-addestramento. Scopriamo che i modelli pre-addestrati non sono efficaci nella PBE, ma che possono essere perfezionati per ottenere prestazioni molto più elevate, a condizione che i problemi di test siano all'interno della distribuzione. Analizziamo empiricamente cosa fa sì che questi modelli abbiano successo o falliscano, e compiamo passi verso la comprensione di come ottenere una migliore generalizzazione fuori distribuzione. Collettivamente, questi risultati suggeriscono che gli LLMs compiono progressi significativi verso la risoluzione della tipica gamma di compiti PBE, potenzialmente aumentando la flessibilità e l'applicabilità dei sistemi PBE, pur evidenziando anche i modi in cui gli LLMs sono ancora carenti.
English
Programming-by-Examples (PBE) aims to generate an algorithm from input-output
examples. Such systems are practically and theoretically important: from an
end-user perspective, they are deployed to millions of people, and from an AI
perspective, PBE corresponds to a very general form of few-shot inductive
inference. Given the success of Large Language Models (LLMs) in code-generation
tasks, we investigate here the extent to which LLMs can be said to have
`solved' PBE. We experiment on classic domains such as lists and strings, and
an uncommon graphics programming domain not well represented in typical
pretraining data. We find that pretrained models are not effective at PBE, but
that they can be fine-tuned for much higher performance, provided the test
problems are in-distribution. We analyze empirically what causes these models
to succeed and fail, and take steps toward understanding how to achieve better
out-of-distribution generalization. Collectively these results suggest that
LLMs make strong progress toward solving the typical suite of PBE tasks,
potentially increasing the flexibility and applicability of PBE systems, while
also identifying ways in which LLMs still fall short.