Simple Science

Ciência de ponta explicada de forma simples

# Informática# Inteligência Artificial# Computação e linguagem# Aprendizagem de máquinas

Melhorando Modelos de Linguagem com o Método de Iteração de Código

O CodeIt melhora a performance dos modelos de IA em tarefas de raciocínio complexo.

― 7 min ler


CodeIt: Uma Nova Era paraCodeIt: Uma Nova Era paraIAtarefas de raciocínio complexo.Revolucionando modelos de linguagem pra
Índice

Modelos de linguagem grandes estão ficando melhores em tarefas que muitos acham que precisam de um raciocínio no nível humano. Mesmo assim, esses modelos têm dificuldades com medidas de inteligência geral, como o Abstraction and Reasoning Corpus (ARC). Este artigo fala sobre um novo método chamado Code Iteration (CodeIt), que é projetado para ajudar modelos de linguagem a melhorar em tarefas como as que são encontradas no ARC.

O Desafio do ARC

O ARC é um teste para inteligência artificial que apresenta uma variedade de tarefas para ver quão bem a IA consegue generalizar seu conhecimento. As tarefas no ARC são difíceis porque exigem raciocínio sobre objetos, ações, números e espaço. Ao contrário dos humanos, que conseguem resolver muitas dessas tarefas rapidamente, os modelos de IA muitas vezes ficam para trás. Por exemplo, participantes humanos conseguem resolver cerca de 80% das tarefas em estudos, enquanto alguns dos melhores modelos de IA acertam apenas cerca de 12%.

Cada tarefa no ARC vem com exemplos, que incluem grades de entrada e saída. O objetivo é prever a saída para novas entradas com base nos exemplos fornecidos. Modelos eficazes precisam reconhecer padrões e usar conhecimento geral para ligar as ideias. Por exemplo, eles podem perceber que células próximas da mesma cor formam um grupo ou que formas diferentes podem interagir entre si.

Visão Geral do Code Iteration

A abordagem que adotamos é ver o ARC como um desafio de programação onde um modelo aprende com exemplos. O CodeIt é a nossa técnica que melhora modelos de linguagem através de duas etapas principais:

  1. Amostragem de Programas e Reclassificação Retrospectiva: Nesta etapa, geramos programas com base em pares de entrada-saída, às vezes corrigindo-os depois, usando as saídas que realmente obtemos.
  2. Aprendizado com Replay de Experiências Priorizadas: Isso envolve re-aprender com as experiências que coletamos, focando nas mais significativas.

Ao ajustar as saídas para refletir o que o programa realmente produziu, mesmo quando não corresponde ao objetivo original, o CodeIt ajuda a lidar com o problema de recompensas escassas em tarefas de programação.

Resultados do Uso do CodeIt

Quando aplicamos o CodeIt ao conjunto de dados do ARC, ele mostrou ótimos resultados. Ao combinar replay de experiências priorizadas com pré-treinamento e aumento de dados, conseguimos uma boa generalização em várias tarefas. O CodeIt foi o primeiro método que conseguiu lidar com todo o conjunto de avaliação do ARC.

O CodeIt conseguiu resolver 59 de 400 tarefas, superando outros métodos, sejam eles neurais ou simbólicos. Isso mostrou um desempenho de ponta enquanto aproveitava tanto o conhecimento prévio quanto as experiências aprendidas.

A Estrutura das Tarefas do ARC

No ARC, cada tarefa consiste em exemplos de demonstração emparelhados com entradas de teste que precisam de previsões. Um modelo sólido usará seu entendimento dos quatro sistemas de conhecimento principais-objetos, ações, números e espaço-para generalizar a partir dos exemplos fornecidos.

Por exemplo, se uma tarefa envolve formas coloridas em diferentes arranjos, o modelo deve reconhecer que formas da mesma cor podem ser agrupadas ou interagir de maneira diferente do que formas de outras cores.

Como o CodeIt Funciona

Amostragem de Programas

Durante a etapa de amostragem, recebemos novos programas com base em uma política conectada a pares de entrada-saída. O sistema traduz entradas e saídas-alvo em uma forma textual e gera um programa, que é então executado para ver que saída ele cria. Se a saída for válida, ela é registrada em um buffer para aprendizado futuro.

Reclassificação Retrospectiva

A reclassificação retrospectiva é crucial. Ela nos permite pegar as saídas que o programa gera-mesmo que sejam diferentes do que pretendíamos-e usá-las para aprimorar o aprendizado. Esse método cria uma maneira de aprender com experiências que não foram inicialmente vistas como sucessos.

Etapa de Aprendizado

Na etapa de aprendizado, treinamos a política usando informações do nosso buffer, focando nas entradas e saídas corretas, e nos programas correspondentes. O objetivo é minimizar erros melhorando a capacidade de prever saídas corretamente.

Insights de Performance

Através do ajuste cuidadoso da nossa abordagem, conseguimos um desempenho notável ao resolver tarefas no ARC. O método mostrou que, ao revisar experiências com base em prioridades, o modelo poderia reter melhor informações críticas e evitar esquecer experiências importantes.

Comparando CodeIt com Outros Métodos

Ao comparar o CodeIt com métodos existentes, descobrimos que ele se destacou em relação a abordagens tradicionais, que ou dependem de redes neurais prevendo saídas diretamente ou métodos simbólicos que criam primeiro uma representação da tarefa.

O CodeIt usa de forma eficaz uma combinação de redes neurais e representações simbólicas, permitindo que processe tanto conhecimento prévio quanto experiências recém-aprendidas. Essa combinação se mostrou poderosa na geração e aprimoramento de soluções.

Importância da Iteração de Especialistas

A Iteração de Especialistas (ExIt) é um conceito que envolve aprimorar o processo de aprendizado de uma IA através da alternância entre reunir novas experiências e melhorar sua política subjacente a partir dessas experiências. Métodos atuais geralmente dependem de técnicas poderosas, mas podem não escalar bem ao lidar com várias tarefas.

Ao seguir uma abordagem parecida com a de um especialista, lembrando das limitações de tempo e computação, o CodeIt pode gerar experiências de um modelo sem exigir uma busca computacionalmente pesada. Isso resulta em um aprendizado mais eficiente enquanto mantém a qualidade.

O Papel do Pré-treinamento

O pré-treinamento é um aspecto essencial da nossa abordagem. Usando um modelo pré-treinado, o CodeIt se beneficia de conhecimentos existentes, facilitando o aprendizado de novas tarefas sem começar do zero. Isso aumenta a eficiência e a eficácia do processo de aprendizado.

Mesmo quando tentamos redefinir os pesos da política pré-treinada, o CodeIt ainda demonstrou uma capacidade de aprender, embora mais lentamente. Isso mostra que começar de uma base sólida com conhecimento pré-treinado ajuda significativamente no processo de aprendizado.

Avaliando o Desempenho do CodeIt

Avaliar o desempenho do CodeIt envolveu medir quão bem ele conseguia resolver tarefas em comparação com métodos anteriores. Enquanto os métodos de base muitas vezes falhavam ao serem apresentados a uma variedade de tarefas, o CodeIt mostrou uma habilidade mais sustentada para encontrar soluções.

Ao rastrear o desempenho em várias execuções, coletamos insights sobre a eficácia da nossa abordagem. Por exemplo, vimos melhora na qualidade das soluções ao longo do tempo, com muitas instâncias onde o CodeIt refinou soluções anteriores para serem mais curtas e eficazes.

Desafios e Limitações

Apesar de seus sucessos, o CodeIt ainda enfrenta alguns desafios. A abordagem depende de uma linguagem personalizada, o que significa que sua eficácia pode depender do design dessa linguagem. A necessidade de um interpretador para avaliar os programas também adiciona complexidade ao sistema.

Embora o CodeIt possa aprender com novas experiências, atualmente precisa de algum conhecimento básico, seja de uma DSL ou de um modelo pré-treinado, para realmente se destacar.

Conclusão

Em resumo, o CodeIt apresenta uma abordagem promissora para melhorar modelos de linguagem para tarefas como as do ARC. Usando uma combinação de amostragem de programas, reclassificação retrospectiva e replay de experiências priorizadas, ele alcança um desempenho impressionante.

Esse método não só avança a forma como podemos abordar tarefas de programação, mas também destaca o valor de combinar conhecimento pré-existente com aprendizado contínuo. À medida que modelos como o CodeIt continuam a evoluir, eles prometem desbloquear novas possibilidades em inteligência artificial, aprimorando nossa capacidade de resolver problemas complexos.

Fonte original

Título: CodeIt: Self-Improving Language Models with Prioritized Hindsight Replay

Resumo: 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 .

Autores: Natasha Butt, Blazej Manczak, Auke Wiggers, Corrado Rainone, David W. Zhang, Michaël Defferrard, Taco Cohen

Última atualização: 2024-07-01 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2402.04858

Fonte PDF: https://arxiv.org/pdf/2402.04858

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes