Pull Requests as a Training Signal for Repo-Level Code Editing
Este artigo apresenta o Clean-PR, um paradigma de mid-training que aproveita um grande corpus de pull requests do GitHub reconstruídos para permitir que os modelos internalizem capacidades de edição de código em nível de repositório, superando significativamente os baselines no SWE-bench sem depender de scaffolds de agentes complexos.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você tem uma biblioteca imensa e antiga (um repositório de software) com milhões de livros (arquivos de código). Seu objetivo é corrigir um erro de digitação específico ou adicionar um novo capítulo a um desses livros.
Normalmente, para fazer isso, você contrata um bibliotecário muito inteligente, mas um pouco desastrado (um modelo de IA). Como a biblioteca é tão grande, o bibliotecário precisa de uma equipe de assistentes, um sistema complexo de leitura de mapas e muito tempo para encontrar o livro certo, abrir na página certa e fazer a alteração. É assim que a maioria dos "engenheiros de software de IA" atuais trabalha: eles usam ferramentas pesadas e complicadas para navegar na bagunça.
Este artigo faz uma pergunta simples: Podemos ensinar o bibliotecário a ser tão bom em encontrar e consertar coisas que ele não precise mais dos assistentes pesados?
Os autores dizem "Sim", e é assim que eles fizeram isso, usando algumas analogias criativas:
1. O Problema: A Biblioteca "Ruidosa"
Os autores observaram o GitHub, que é como um registro público gigante de pessoas corrigindo e alterando códigos. Eles descobriram que esse registro é incrivelmente bagunçado.
- O Ruído: Imagine tentar aprender a consertar um carro assistindo a um vídeo de alguém trocando um pneu, mas 40% do vídeo é apenas a pessoa almoçando, 25% é um robô fingindo ser um mecânico e 25% é um vídeo que nunca foi terminado.
- O Resultado: Se você apenas alimentar seu bibliotecário de IA com esse vídeo bagunçado, ele ficará confuso. Ele aprenderá hábitos ruins, como tentar consertar coisas que não precisam de conserto ou se perder no corredor errado.
2. A Solução: "Clean-PR" (O Vídeo Filtrado)
A equipe construiu uma máquina chamada Clean-PR. Pense nisso como um editor de vídeo superinteligente que assiste a todos esses vídeos bagunçados do GitHub e corta a sujeira.
- O Filtro: Ele joga fora os vídeos onde nenhum trabalho real foi feito, onde um robô fez o trabalho ou onde o conserto nunca foi aprovado.
- A Tradução: Em vez de mostrar à IA uma imagem "antes e depois" bagunçada (que é difícil de ler), a máquina traduz o conserto em uma instrução clara e passo a passo: "Encontre o parágrafo que começa com 'Olá' e mude para 'Adeus'."
- A Verificação: Antes de salvar a instrução, a máquina realmente tenta aplicar a instrução a um livro de teste para garantir que ela funcione perfeitamente. Se não funcionar, a instrução é descartada.
O resultado é uma biblioteca enorme e limpa de 2 milhões de instruções perfeitas (chamadas de "Pull Requests") cobrindo 12 linguagens diferentes.
3. O Treinamento: Aprendizado em Duas Etapas
Eles não apenas despejaram esses dados na IA. Eles a ensinaram em dois estágios específicos:
Estágio 1: Mid-Training (A Fase de "Aprendiz")
Eles alimentaram a IA com esta biblioteca limpa de 2 milhões de instruções. Isso foi como dar ao bibliotecário um curso intensivo sobre como as pessoas reais consertam coisas em bibliotecas reais. A IA aprendeu os padrões de edição sem precisar falar com ninguém mais. Isso "internalizou" a habilidade no cérebro da IA (seus pesos).Estágio 2: Prática Especializada (A Fase "SFT")
Problemas do mundo real são complicados. Às vezes, o bibliotecário recebe uma lista de 1.000 livros, mas o problema está em apenas um deles. Se o bibliotecário tentar consertar todos eles, ele fará uma bagunça.
Para corrigir isso, os autores criaram um exercício de treinamento especial onde eles enganaram a IA. Eles deram a ela o livro certo mais vários livros errados (distratores) e perguntaram: "Qual deles precisa de conserto?"
Isso ensinou a IA a dizer: "Eu não preciso tocar nesses outros livros", evitando que ela faça alterações desnecessárias.
4. O Resultado: Um Super-Bibliotecário
Quando testaram este novo IA no SWE-bench (um exame difícil para engenheiros de software de IA):
- O Jeito Antigo: Os modelos principais anteriores precisavam de uma grande equipe de assistentes digitais e loops de planejamento complexos para resolver cerca de 20% dos problemas.
- O Novo Jeito: Esta nova IA, usando uma abordagem muito mais simples, "sem assistentes", resolveu 30,6% dos problemas.
- A Surpresa: Embora esta IA fosse menor (32 bilhões de "células cerebrais") do que alguns concorrentes (72 bilhões), ela teve um desempenho melhor.
A Grande Conclusão
O artigo prova que você não precisa de uma máquina gigante e complexa com muitas ferramentas para consertar software. Em vez disso, se você fornecer a um modelo exemplos de alta qualidade e verificados de como consertar coisas, ele pode aprender a habilidade diretamente.
É como a diferença entre ensinar um aluno a dirigir dando a ele um manual sobre como consertar o motor de um carro (bagunçado, teórico) versus deixá-lo sentado no banco do motorista de um carro que já foi dirigido perfeitamente por um profissional por 2 milhões de milhas (Clean-PR). O aluno aprende o sentimento de dirigir tão bem que não precisa de um copiloto para dizer onde virar.
Em resumo: Os autores limparam os dados bagunçados da internet, ensinaram uma IA a aprender a partir da versão limpa e mostraram que isso torna a IA um engenheiro de software muito melhor e mais independente.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.