Evaluating and Achieving Controllable Code Completion in Code LLM
Este artigo apresenta o Controllable Code Completion Benchmark (C3-Bench) para abordar a falta de avaliação de seguimento de instruções em LLMs de código, revela lacunas significativas de desempenho entre modelos de código aberto e proprietários e propõe um pipeline de síntese de dados que permite a um modelo ajustado alcançar resultados de estado da arte no novo benchmark.
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ê é um mestre chef (a IA) trabalhando em uma cozinha movimentada. Por muito tempo, a maneira de testar esses chefs era simples: dávamos a eles um prato semi-preparado (o código antes da parte faltante) e um prato semi-preparado depois (o código após a parte faltante), e pedíamos para preencherem o meio. Se o prato final tivesse um gosto bom (passasse nos testes unitários), o chef ganhava uma estrela de ouro.
O Problema: A "Receita" Estava Faltando
Os autores deste artigo argumentam que essa velha forma de testar é falha. No mundo real, um chef executivo não diz apenas: "Preencha o meio". Ele diz: "Preencha o meio, mas use apenas ingredientes vegetarianos", ou "Preencha o meio, mas faça com que tenha exatamente três linhas", ou "Preencha o meio, mas use um tipo específico de faca".
Os modelos de IA atuais são ótimos em fazer a comida ter um gosto bom, mas eles frequentemente ignoram as instruções específicas sobre como fazer o prato. Eles podem usar carne quando você pediu vegetais, ou escrever um parágrafo quando você pediu uma única linha. Os testes antigos não detectavam isso porque verificavam apenas se a comida era comestível, não se o chef ouviu o pedido.
A Solução: C3-Bench (O Teste de "Seguir Instruções")
Para corrigir isso, a equipe criou um novo teste chamado C3-Bench (Benchmark de Conclusão de Código Controlável). Pense nisso como uma nova, muito mais rigorosa competição de culinária.
Em vez de apenas pedir uma peça de código faltante, cada teste no C3-Bench vem com uma instrução específica e detalhada. Eles dividiram essas instruções em duas categorias principais:
- As Instruções de "Como Fazer" (Controle de Implementação):
- Analogia: "Construa uma ponte, mas você deve usar um design de suspensão, não um design de viga."
- A IA tem que escrever um código que funcione e siga um estilo, algoritmo ou estrutura específica. Por exemplo, "Ordene esta lista usando um método de ordenação específico" ou "Trate erros desta maneira específica".
- As Instruções de "Tamanho" (Controle de Escala):
- Analogia: "Escreva uma frase que tenha exatamente 10 palavras", ou "Escreva um parágrafo que tenha exatamente 3 sentenças."
- A IA tem que gerar um código que se ajuste a um limite de tamanho estrito, como exatamente 5 linhas de código, nem mais, nem menos.
O Que Eles Descobriram
A equipe testou mais de 40 modelos de IA diferentes (tanto modelos gratuitos e de código aberto quanto modelos caros e fechados) neste novo teste. Aqui está o que eles descobriram:
- Os Modelos de Código Aberto "Superconfiantes": Nos testes antigos, muitos modelos de IA gratuitos e de código aberto apresentavam um desempenho tão bom quanto os modelos caros e de alto nível. No entanto, neste novo C3-Bench, eles tiveram dificuldades significativas. Acontece que eles haviam "memorizado" os testes antigos, mas não sabiam realmente como seguir instruções complexas. Eles eram como alunos que memorizaram o gabarito, mas não conseguiam resolver um novo problema com um toque diferente.
- O Abismo: Existe um enorme abismo entre modelos que conseguem apenas "fazer o código funcionar" e modelos que conseguem "fazer o código funcionar exatamente como você pediu". Mesmo alguns dos modelos mais inteligentes e caros tiveram problemas com as instruções de "Tamanho" (como escrever exatamente o número certo de linhas).
- A Correção: Os autores não apenas apontaram o problema; eles construíram uma solução. Eles criaram um pipeline para gerar automaticamente milhares de novos exemplos de treinamento onde uma IA escreve código e segue uma instrução específica. Eles usaram esses dados para treinar uma nova versão de seu modelo, chamado Qwen2.5-Coder-C3.
- O Resultado: Este novo modelo tornou-se o melhor em seguir instruções na conclusão de código, vencendo quase todos os outros no novo teste, enquanto ainda era bom nos testes antigos.
A Lição Principal
Este artigo introduz uma nova maneira de medir as habilidades de codificação de IA que realmente importa para o uso no mundo real: A IA consegue ouvir?
Eles descobriram que muitos modelos de IA atuais são como músicos talentosos que tocam as notas certas, mas ignoram as mudanças de tempo do maestro. Ao criar este novo benchmark e um método para treinar os modelos para ouvirem melhor, os autores estão ajudando desenvolvedores a construir ferramentas de IA que não apenas escrevem código, mas escrevem o código certo de acordo com as necessidades específicas e detalhadas do usuário. Eles disponibilizaram todos os seus dados e modelos para que outros possam usar e melhorar.
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.