Ir para o conteúdo principal
  • SLM
  • Fine Tuning
  • RAG
  • Qwen3
  • Hugging Face
  • Refauna

Tapirus Open 4B: fine tuning e RAG sobre o Qwen3-4B para um domínio que os LLMs generalistas não cobrem

Por que treinei um modelo pequeno de linguagem especializado em refaunação e restauração de interações ecológicas, como combinei fine tuning com RAG e o que aprendi ao publicar os pesos abertos no Hugging Face.

Por Rodrigo Coelho8 min de leitura

Modelos generalistas respondem sobre quase tudo — e é justamente por isso que respondem mal sobre refaunação. Quando a pergunta envolve reintrodução de espécies, dispersão de sementes por frugívoros ou restauração de interações ecológicas, o que sai costuma ser um texto fluente, plausível e impreciso. Foi esse incômodo que me levou a treinar um modelo próprio.

O resultado é o Tapirus Open 4B: um modelo pequeno de linguagem, com pesos abertos, especializado em refaunação, conservação da biodiversidade e restauração de interações ecológicas. A base é o Qwen/Qwen3-4B-Instruct-2507, sobre o qual apliquei fine tuning e, por cima, uma camada de RAG. Este texto é sobre as decisões de engenharia por trás disso — e sobre o que eu faria diferente.

O ponto cego dos modelos generalistas

Um LLM treinado majoritariamente na web aberta aprende a distribuição do que é abundante. Literatura técnica de ecologia da restauração é exatamente o oposto disso: pouco volume, vocabulário próprio e muita nuance regional. Termos como defaunação, síndrome de dispersão, linha de base ecológica ou megafauna extinta aparecem raramente — e quando aparecem, vêm descolados do contexto de aplicação.

Na prática isso produz dois tipos de erro. O primeiro é o mais óbvio: o modelo inventa interações entre espécies que não existem. O segundo é mais perigoso, porque passa despercebido: o modelo acerta o conceito geral, mas erra a escala, a região ou a espécie envolvida — e um texto bem escrito com o dado errado é pior do que uma recusa honesta.

Havia dois caminhos. Ajustar prompts sobre um modelo grande, ou construir algo especializado. Prompt engineering melhora a forma da resposta, mas não cria conhecimento que não está lá.

Por que um SLM, e não um LLM gigante

  • Em escopo estreito, especialização vence tamanho. O modelo não precisa saber escrever SQL nem discutir política externa. Precisa acertar um domínio.
  • Custo e latência. Um modelo de 4B responde rápido e barato o suficiente para ser usado de verdade, não apenas demonstrado.
  • Execução local. Roda em GPU modesta e, quantizado, até em notebook. Para pesquisa de campo — onde conectividade é limitada e dados nem sempre podem sair do ambiente — isso deixa de ser detalhe e vira requisito.
  • Reprodutibilidade. Pesos abertos permitem que outra pessoa verifique, critique e continue o trabalho.

Por que o Qwen3-4B-Instruct-2507

A escolha do modelo base foi menos sobre ranking em benchmark e mais sobre restrições concretas do projeto:

  • 4 bilhões de parâmetros é o ponto de equilíbrio entre capacidade de raciocínio e hardware acessível.
  • A variante Instruct já chega alinhada a diálogo, então o fine tuning parte de um comportamento conversacional útil em vez de construí-lo do zero.
  • Desempenho consistente em português, que é o idioma do corpus e do público do Refauna.
  • Janela de contexto longa, o que dá folga para os trechos recuperados pelo RAG sem espremer a pergunta do usuário.
  • Licença permissiva, condição para publicar um derivado com pesos abertos.
A escolha do modelo base é uma decisão de arquitetura, não de placar. Licença, idioma, hardware e o que você pretende publicar depois pesam mais do que dois pontos em um benchmark.

Fine tuning e RAG não competem: resolvem problemas diferentes

Essa talvez seja a confusão mais comum em projetos de IA aplicada. As duas técnicas são tratadas como alternativas — “faço fine tuning ou uso RAG?” — quando na verdade atacam camadas distintas do problema.

  • Fine tuning muda como o modelo fala. Tom, estrutura da resposta, vocabulário técnico, e — o mais subestimado — a disposição de recusar o que está fora do escopo.
  • RAG muda o que o modelo sabe agora. Fatos verificáveis, com fonte citável, atualizáveis sem retreinar nada.

A regra prática que uso: se a resposta certa muda quando um documento novo entra na base, o problema é de RAG. Se o modelo tem a informação mas a expressa mal, fora do vocabulário do domínio, o problema é de fine tuning. No Refauna, os dois problemas existiam — por isso as duas técnicas.

O pipeline, em quatro etapas

1. Preparação dos dados

O corpus do Refauna foi convertido em pares de instrução e resposta no chat template do próprio modelo base. Aqui a consistência de formato importa mais do que o volume: exemplos heterogêneos ensinam o modelo a ser heterogêneo.

Formato de um exemplo de treino (JSONL)
{"messages": [
  {"role": "system", "content": "Você é um assistente especializado em refaunação e restauração de interações ecológicas."},
  {"role": "user", "content": "Por que a perda de frugívoros de grande porte compromete a regeneração da floresta?"},
  {"role": "assistant", "content": "..."}
]}

2. Fine tuning supervisionado

O ajuste é feito sobre a variante Instruct, preservando o comportamento conversacional que ela já tem. O risco principal nessa etapa é o esquecimento catastrófico: treinar demais em um domínio estreito degrada habilidades gerais que você ainda quer manter, como seguir instruções e escrever bem. Treino curto e avaliação frequente valem mais do que uma rodada longa.

3. Avaliação

Montei um conjunto de perguntas de validação e comparei as respostas lado a lado com as do modelo base. O critério que importa não é fluência — o modelo base já é fluente — e sim precisão factual dentro do domínio e honestidade nos limites: reconhecer o que não sabe é um resultado positivo, não uma falha.

4. A camada de RAG

Com o modelo já especializado, o RAG entra para ancorar as respostas na base documental. O ganho de combinar as duas técnicas aparece aqui: um modelo que domina o vocabulário do domínio interpreta melhor os trechos recuperados, e erra menos ao sintetizá-los.

Inferência com contexto recuperado (Python)
from transformers import AutoModelForCausalLM, AutoTokenizer

MODEL_ID = "Refauna/tapirus-open-4b"

tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(MODEL_ID, device_map="auto")

# Os trechos recuperados entram como contexto, não como conhecimento implícito.
messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {"role": "user", "content": f"Contexto:\n{retrieved_chunks}\n\nPergunta: {question}"},
]

inputs = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)

output = model.generate(inputs, max_new_tokens=512)

Por que publicar com pesos abertos

Publicar no Hugging Face não é sobre distribuição, é sobre escrutínio. Um modelo de domínio que não pode ser auditado por quem entende do domínio tem valor limitado. O model card, nesse contexto, é tão importante quanto os pesos: ele precisa declarar o escopo, os dados de origem, as limitações conhecidas e — principalmente — o que o modelo não deve ser usado para decidir.

Um modelo especializado em conservação não substitui avaliação técnica de campo. Ele acelera leitura, síntese e formulação de hipóteses. Deixar isso explícito é parte da entrega.

O que eu levo para o próximo SLM

  1. Escopo estreito é vantagem, não limitação. Quanto mais claro o recorte, melhor o resultado por unidade de esforço.
  2. A licença do modelo base é decisão de produto. Ela determina o que você pode publicar no fim — e isso precisa ser verificado antes do primeiro treino, não depois.
  3. Qualidade e consistência dos dados superam volume. Poucos exemplos bem formatados batem muitos exemplos irregulares.
  4. Avalie contra o modelo base, sempre. Sem essa comparação você não sabe se o fine tuning ajudou ou apenas mudou o estilo da resposta.
  5. Fine tuning e RAG são camadas, não alternativas. Uma resolve forma, a outra resolve fato.

O Tapirus Open 4B continua em evolução. Se você trabalha com restauração ecológica, com modelos pequenos ou com os dois, tenho interesse genuíno em ouvir críticas — especialmente as técnicas. Fico à disposição no LinkedIn.

Newsletter

Receba os próximos textos por e-mail

Sem periodicidade fixa e sem ruído: você recebe um e-mail quando eu publico algo novo sobre produto, tecnologia e IA aplicada.

Sem spam. Você pode cancelar quando quiser.