← Últimos artigos
💻 computer science

No Resource, No Benchmarks, No Problem? Evaluating and Improving LLMs for Code Generation in No-Resource Languages

Este artigo aborda o desafio da geração de código em linguagens de programação sem recursos ao introduzir novos benchmarks e demonstrar que uma estratégia de baixo custo de pré-treinamento adicional de um modelo base em dados da linguagem alvo, seguida pela injeção de capacidades de seguimento de instruções via transferência de diferença de pesos, supera significativamente o ajuste fino direto de modelos ajustados para instrução.

Autores originais: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota

Publicado 2026-06-16
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota

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 um assistente robô brilhante e super inteligente (um Modelo de Linguagem de Grande Escala, ou LLM) que é um programador especialista. Você pode pedir a ele para escrever código em Python ou Java, e é como pedir a um mestre chef para cozinhar um prato clássico italiano — ele conhece a receita de cor porque leu milhões de livros de receitas (dados de treinamento) sobre essas linguagens específicas.

Mas o que acontece se você pedir a esse robô para cozinhar um prato de uma culinária nova e obscura, para a qual ninguém jamais escreveu um livro de receitas? Talvez seja uma linguagem inventada por uma empresa apenas ontem, ou uma ferramenta especializada para uma indústria específica que ainda não foi compartilhada na internet.

Este artigo é sobre ensinar esse robô a cozinhar esses pratos de "zero recursos".

O Problema: O Robô está Perdido

Os pesquisadores descobriram que, quando pediam aos principais modelos de IA para escrever código nessas linguagens novas (eles testaram Gleam e MoonBit), os robôs estavam quase completamente perdidos.

  • Linguagens de Alto Recurso (Python/Java): O robô acertava cerca de 80–90% das vezes.
  • Linguagens de Baixo Recurso (como Lua ou R): O robô estava razoável, acertando cerca de 50–60% das vezes.
  • Linguagens de Zero Recurso (Gleam/MoonBit): O robô falhava quase 100% das vezes.

A Analogia: É como pedir a um chef que só sabe cozinhar com uma faca para, de repente, usar uma ferramenta nova e de formato estranho que ele nunca viu. Eles não cometem apenas um pequeno erro; eles muitas vezes nem sabem como segurar a ferramenta corretamente. Os erros não eram apenas "cozinha ruim"; eram "erros de sintaxe" — o robô não conseguia nem escrever a estrutura básica do código porque não conhecia a gramática da nova linguagem.

O Experimento: Como ensinamos o robô?

A equipe tentou quatro maneiras diferentes de ajudar o robô a aprender essas novas linguagens, tratando as novas linguagens como uma nova matéria que o robô precisa estudar para uma prova.

  1. A "Folha de Cola" (Few-Shot & RAG): Eles deram ao robô alguns exemplos de código escrito na nova linguagem ou um trecho do manual logo antes de pedir para ele escrever.
    • Resultado: Ajudou um pouco, como dar a um aluno alguns problemas de prática. O rob em melhorou um pouco, mas ainda estava lutando com o básico.
  2. O "Curso Intensivo" (Fine-Tuning): Eles pegaram o robô e alimentaram-no com cada pedaço de código e documentação que conseguiam encontrar para a nova linguagem, forçando-o a reaprender tudo.
    • Resultado: Isso funcionou bem. O robô aprendeu a linguagem muito melhor.
  3. O "Mergulho Profundo" (Pre-Training): Eles pegaram uma versão bruta do robô (uma que ainda não foi ensinada a seguir instruções) e alimentaram-na com todos os dados disponíveis — cada arquivo de código e cada página de manual.
    • Resultado: Este foi o vencedor. Como eles usaram todos os dados (não apenas os exemplos organizados e arrumados usados para o fine-tuning), o robô aprendeu a linguagem de forma mais profunda. Ele obteve as melhores pontuações.

A Armadilha: O Robô "Esperto" vs. O Robô "Bruto"

Aqui está a reviravolta. O "Mergulho Profundo" (Pre-Training) funcionou melhor, mas teve um efeito colateral.

  • O robô que aprendeu a linguagem profundamente era um modelo "bruto". Ele conhecia a linguagem perfeitamente, mas tinha esquecido como ouvir instruções humanas. Se você pedisse a ele: "Escreva uma função para somar dois números", ele poderia apenas ficar te encarando ou escrever algo sem sentido porque não foi treinado para seguir comandos.
  • Os robôs "Esperto" (modelos ajustados por instrução) podiam seguir comandos perfeitamente, mas eram terríveis na nova linguagem.

A Solução: A "Transferência de Habilidade" (Instruction Transferring)

Os pesquisadores criaram um truque inteligente para obter o melhor dos dois mundos sem gastar uma fortuna em treinamento.

A Metáfora: Imagine que você tem dois gêmeos.

  • Gêmeo A é um mestre chef que conhece a nova culinária perfeitamente, mas é rude e não ouve ordens.
  • Gêmeo B é um garçom educado e obediente que não conhece nada da nova culinária.

Em vez de contratar um novo chef ou treinar o garçom do zero, os pesquisadores descobriram uma maneira de copiar a "polidez" e as "habilidades de escuta" do Gêmeo B e colá-las no Gêmeo A.

Eles calcularam a "diferença" entre o garçom educado e o chef bruto, e então adicionaram essa "diferença" ao novo robô, que é o especialista na linguagem.

  • O Resultado: Eles criaram um robô que é um especialista na nova linguagem E sabe seguir instruções perfeitamente.
  • O Bônus: Esse truque funcionou tão bem que um robô menor e mais barato (8 bilhões de parâmetros) com essa "transferência de habilidade" na verdade teve um desempenho melhor do que um robô muito maior e mais caro (32 bilhões de parâmetros) que passou apenas pelo fine-tuning normal.

A Conclusão

Se uma empresa inventar uma nova linguagem de programação hoje, ela não pode simplesmente comprar um assistente de IA pronto e esperar que funcione. A IA irá falhar.

No entanto, este artigo mostra um caminho a seguir:

  1. Reúna qualquer pequena parte de código que exista para essa nova linguagem.
  2. Ensine essa linguagem a um modelo de IA bruto (Pre-training).
  3. Use um truque de "transferência de habilidade" para dar a esse modelo a capacidade de seguir instruções.

Isso permite que as empresas construam seus próprios assistentes de codificação de IA especializados para suas linguagens únicas e proprietárias sem precisar gastar milhões de dólares em execuções de treinamento massivas. Elas podem pegar um modelo pequeno e inteligente e transformá-lo em um especialista de linguagem por centavos.

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 →