← Últimos artigos
🤖 machine learning

Merge-Bench: Resolve Merge Conflicts with Large Language Models

Este artigo apresenta o Merge-Bench, um conjunto de dados em larga escala de conflitos de mesclagem do mundo real, e o LLMergeJ, um modelo específico para Java treinado com Otimização de Política Relativa de Grupo que supera vários LLMs comerciais, embora mesmo os melhores modelos atualmente resolvam menos de 60% dos conflitos em 11 linguagens de programação.

Autores originais: Benedikt Schesch, Michael D. Ernst

Publicado 2026-05-26
📖 4 min de leitura☕ Leitura rápida

Autores originais: Benedikt Schesch, Michael D. Ernst

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ê está trabalhando em um projeto em grupo onde dois amigos estão editando o mesmo documento ao mesmo tempo. O Amigo A altera um parágrafo, e o Amigo B altera exatamente o mesmo parágrafo. Quando você tenta combinar o trabalho deles, o computador fica confuso e grita: "Não sei qual versão manter!" Isso é chamado de conflito de mesclagem.

Geralmente, um humano precisa intervir, ler ambas as versões, descobrir o que os amigos realmente pretendiam fazer e corrigir manualmente a bagunça. Isso leva tempo e pode levar a erros.

Este artigo apresenta uma nova maneira de ensinar computadores a corrigir essas bagunças automaticamente usando IA "inteligente" (Modelos de Linguagem Grandes). Aqui está a explicação do trabalho deles em termos simples:

1. O Problema: O Computador Está Desinformado

As ferramentas tradicionais são como um robô que só olha para as letras. Se o Amigo A escreveu "gato" e o Amigo B escreveu "cachorro", o robô apenas vê um choque. Ele não entende que talvez estivessem falando sobre animais de estimação, ou que talvez um fosse um erro de digitação. Ele precisa de um humano para explicar a intenção.

2. A Solução: Um Novo Campo de Treinamento (Merge-Bench)

Para ensinar uma IA a corrigir esses conflitos, você precisa de uma biblioteca massiva de exemplos mostrando "Aqui estava a bagunça, e aqui está como um especialista humano a corrigiu".

  • O Jeito Antigo: Outros pesquisadores tentaram criar essas bibliotecas manualmente ou executando testes. Isso era lento, caro e, às vezes, a IA "trapaceava" memorizando as respostas dos testes em vez de aprender a corrigir o código.
  • O Novo Jeito (Merge-Bench): Os autores construíram uma biblioteca gigante e automatizada chamada Merge-Bench. Eles coletaram 7.938 conflitos reais de 1.439 projetos de código públicos diferentes no GitHub.
    • A Analogia: Imagine um professor que não precisa corrigir cada tarefa de casa manualmente. Em vez disso, ele tem uma máquina que automaticamente captura 8.000 exemplos do mundo real de alunos cometendo erros e as respostas corretas escritas pelo professor. Como a máquina faz todo o trabalho, eles podem ter uma biblioteca enorme que nunca se esgota.

3. O Aluno: LLMergeJ

Os autores treinaram um modelo de IA específico chamado LLMergeJ (o "J" significa Java, a linguagem de programação em que se concentraram).

  • Como eles o ensinaram: Em vez de apenas mostrar ao modelo a resposta (como um professor padrão), eles usaram um método chamado Aprendizado por Reforço.
    • A Analogia: Pense como treinar um cachorro. Se o cachorro adivinhar o truque certo, ele ganha um petisco. Se adivinhar errado, não ganha nada. Se se recusar a adivinhar e apenas disser "Não sei" (preservando o conflito), ganha uma migalha minúscula.
    • A IA tentou milhares de vezes. Quando descobriu a maneira certa de combinar o código, recebeu uma grande recompensa. Com o tempo, aprendeu não apenas como era a resposta, mas como pensar sobre o problema para chegar lá.

4. Os Resultados: Cachorro Pequeno, Grandes Truques

Eles testaram seu modelo de 14 bilhões de parâmetros (que é relativamente pequeno para os padrões de IA) contra os maiores e mais caros modelos comerciais de IA disponíveis (como Gemini, Claude e Grok).

  • A Surpresa: Seu modelo pequeno e treinado especificamente funcionou melhor do que quase todos os modelos comerciais gigantes. Resolveu cerca de 59% dos conflitos corretamente (após ignorar diferenças menores de formatação).
  • A Comparação: O melhor modelo comercial (Gemini 2.5 Pro) foi ligeiramente melhor, mas o modelo dos autores superou os outros por uma margem significativa.
  • A Lição: Um modelo pequeno treinado especificamente em como corrigir conflitos de mesclagem usando recompensas é melhor do que um modelo gigante de propósito geral que apenas recebeu a tarefa uma vez.

5. Por Que Isso Importa

  • Sem Trapacear: Seu método de teste não depende de executar testes de código (o que a IA às vezes consegue enganar). Compara o código diretamente com o que o desenvolvedor humano realmente fez.
  • Escalável: Como não precisavam de humanos para rotular os dados, podiam tornar o conjunto de treinamento tão grande quanto quisessem.
  • Agnóstico à Linguagem: Embora tenham treinado o modelo apenas em Java, testaram os grandes modelos comerciais em 11 linguagens diferentes (C, Python, Rust, etc.). Descobriram que o comportamento da IA era semelhante em todas as linguagens, sugerindo que seu método poderia funcionar para qualquer linguagem de programação.

Resumo

Os autores construíram uma academia gigante e automatizada (Merge-Bench) para treinar um atleta de IA específico (LLMergeJ) para resolver conflitos de código. Ao usar um sistema de treinamento baseado em recompensas, ensinaram uma IA relativamente pequena a superar os maiores e mais caros modelos de IA nessa tarefa específica, provando que o treinamento especializado supera o tamanho geral quando se trata de corrigir bagunças de software.

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.

Experimentar Digest →