O conteúdo deste site foi traduzido usando inteligência artificial (IA) ou tecnologia de tradução automática e pode conter erros.

Skip to content
Artificial Intelligence
Programming Languages

SelfCodeAlign: Autoalinhamento para geração de código

Author

Yuxiang Wei (Universidade de Illinois em Urbana-Champaign), Federico Cassano (Universidade Northeastern e Cursor AI), Jiawei Liu (Universidade de Illinois em Urbana-Champaign), Yifeng Ding (Universidade de Illinois em Urbana-Champaign), Naman Jain (Universidade da Califórnia em Berkeley), Zachary Mueller (Hugging Face), Harm de Vries (ServiceNow), Leandro von Werra (Hugging Face), Arjun Guha (Universidade Northeastern e Roblox), Lingming Zhang (Universidade de Illinois em Urbana-Champaign)

Venue

NeurIPS 2024

Abstract

O ajuste de instruções é uma abordagem de ajuste fino supervisionado que melhora significativamente a capacidade dos grandes modelos de linguagem (LLMs) de seguir instruções humanas. Propomos o SelfCodeAlign, o primeiro pipeline totalmente transparente e flexível para o autoalinhamento de LLMs de código, sem a necessidade de extensas anotações humanas ou destilação. O SelfCodeAlign emprega o mesmo modelo base para inferência ao longo de todo o processo de geração de dados. Primeiramente, ele extrai diversos conceitos de codificação a partir de trechos de código de alta qualidade para gerar novas tarefas. Em seguida, ele amostra múltiplas respostas por tarefa, emparelha cada uma com casos de teste e as valida em um ambiente sandbox. Por fim, exemplos aprovados são selecionados para o ajuste de instruções. Em nossos experimentos principais, usamos o SelfCodeAlign com o CodeQwen1.5-7B para gerar um conjunto de dados com 74 mil pares de instrução-resposta. O ajuste fino nesse conjunto de dados resulta em um modelo que atinge 67,1% de aprovação no HumanEval+, superando o CodeLlama-70B-Instruct apesar de ser dez vezes menor. Em todos os benchmarks, esse modelo ajustado supera consistentemente a versão original treinada com o OctoPack, o método de ponta anterior para ajuste de instruções sem anotações humanas ou destilação. Além disso, mostramos que o SelfCodeAlign é eficaz em LLMs de vários tamanhos, de 3B a 33B, e que os modelos base podem se beneficiar mais do alinhamento com sua própria distribuição de dados. Validamos ainda mais a eficácia de cada componente em nosso pipeline, mostrando que o SelfCodeAlign supera tanto a destilação direta do GPT-4o quanto os principais métodos de destilação baseados no GPT-3.5, como o OSS-Instruct e o Evol-Instruct. O SelfCodeAlign também levou à criação do StarCoder2-Instruct, o primeiro LLM de código totalmente transparente, com licença permissiva e autoalinhado que alcança desempenho de codificação de ponta.