A programação por exemplo é resolvida pelos LLMs?
Is Programming by Example solved by LLMs?
June 12, 2024
Autores: Wen-Ding Li, Kevin Ellis
cs.AI
Resumo
A Programação por Exemplos (PBE) tem como objetivo gerar um algoritmo a partir de exemplos de entrada e saída. Tais sistemas são praticamente e teoricamente importantes: do ponto de vista do usuário final, eles são implantados para milhões de pessoas, e do ponto de vista da IA, a PBE corresponde a uma forma muito geral de inferência indutiva de poucas amostras. Dado o sucesso dos Modelos de Linguagem Grandes (LLMs) em tarefas de geração de código, investigamos aqui em que medida os LLMs podem ser considerados como tendo "resolvido" a PBE. Experimentamos em domínios clássicos como listas e strings, e em um domínio de programação gráfica incomum e pouco representado em dados típicos de pré-treinamento. Descobrimos que os modelos pré-treinados não são eficazes na PBE, mas que podem ser ajustados finamente para um desempenho muito superior, desde que os problemas de teste estejam dentro da distribuição. Analisamos empiricamente o que faz com que esses modelos tenham sucesso e falhem, e tomamos medidas para entender como alcançar uma melhor generalização fora da distribuição. Coletivamente, esses resultados sugerem que os LLMs avançam significativamente na resolução da suíte típica de tarefas de PBE, potencialmente aumentando a flexibilidade e aplicabilidade dos sistemas de PBE, ao mesmo tempo em que identificam maneiras pelas quais os LLMs ainda não atendem completamente.
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.