BarunLM-35M: Como Uma Única GPU H200 Treinou o Melhor Modelo de Linguagem Pequeno com Menos de 100M de Parâmetros

BarunLM-35M: Como Uma Única GPU H200 Treinou o Melhor Modelo de Linguagem Pequeno com Menos de 100M de Parâmetros

Uma única H200, 5,7 bilhões de tokens de treinamento, 35 milhões de parâmetros — e uma pontuação média de 41,01% em nove benchmarks zero-shot. Essa combinação foi suficiente para superar o Liquid LFM2.5-230M-Base, um modelo com 6,55 vezes mais parâmetros, além do GPT-2 125M e do Pythia-160M. O desenvolvedor independente Harshal Singh disponibilizou o BarunLM-35M como open source sob Apache 2.0, chamando-o de o melhor modelo da classe sub-100M, com pesos, código de treinamento e scripts de avaliação todos públicos.

Isso não é um truque de leaderboard. A arquitetura incorpora ideias comprovadas na fronteira por modelos da classe DeepSeek e Kimi — atenção local, QK Norm, RoPE parcial — e adiciona um seletor residual aprendível customizado. Para pesquisa em modelos pequenos, ensino e prototipagem local, é uma implementação de referência completa que você realmente pode executar.

De Onde Vem a Eficiência de Parâmetros

O design do BarunLM se resume a três ideias: um ritmo misto de atenção, roteamento residual seletivo e um orçamento de treinamento alinhado à capacidade.

1. Um ritmo de atenção local-global de 3:1

A atenção global padrão escala quadraticamente com o comprimento da sequência, mas boa parte da estrutura de dependências da linguagem vive entre tokens vizinhos. O BarunLM executa três camadas consecutivas de atenção local sobre uma janela de 256 tokens e usa cada quarta camada para uma troca global completa de informações. A atenção global deixa de ser um pedágio pago em todas as camadas e se torna uma camada periódica de comunicação — computação economizada, fluxo de longo alcance preservado. O ritmo de 3:1 vem diretamente do manual de atenção esparsa dos modelos de fronteira da classe DeepSeek e Kimi.

2. Um seletor residual aprendível a cada 4 camadas

Em uma rede pequena, cada camada é preciosa: características úteis formadas cedo podem ser sobrescritas por computações posteriores, e o modelo não tem capacidade sobrando para reaprendê-las. O BarunLM insere um seletor convexo leve a cada quatro camadas que decide o que levar adiante entre a entrada do bloco e seu estado transformado — efetivamente uma via de fidelidade aprendida para cada grupo de 4 camadas, a um custo de parâmetros praticamente invisível.

3. Treinamento alinhado à capacidade: 162,5 tokens por parâmetro

5,7B de tokens ÷ 35M de parâmetros ≈ 162,5 tokens por parâmetro. O corpus mistura FineWeb-Edu, Cosmopedia v2, FineMath-4+, DCLM, CodeSearchNet Python e CodeParrot Clean — texto educacional, dados sintéticos, matemática e código, totalmente deduplicados. O estágio final de 4B de tokens rodou em uma única H200 com o otimizador Muon ao longo de 40.690 passos.

A avaliação é incomumente cuidadosa para essa faixa de tamanho. Todos os nove benchmarks zero-shot rodaram no LM Evaluation Harness 0.4.12; uma varredura de correspondência exata de 13 tokens por todo o corpus de treinamento sinalizou e removeu 1.854 amostras contaminadas antes de qualquer comparação; e a margem sobre o LFM2.5 foi testada com 10.000 reamostragens bootstrap, resultando em um intervalo de confiança de [+0,92, +2,71] pontos percentuais.

O que torna este lançamento útil além da pontuação é que nada está escondido. A pesquisa com modelos pequenos costuma viver em dois extremos: laboratórios de fronteira publicando artigos sem pesos, e projetos amadores publicando pesos sem treinamento reproduzível. O BarunLM fica no meio produtivo — uma receita completa em que o ritmo de atenção, o posicionamento dos seletores, a mistura de dados e o cronograma do otimizador são todos inspecionáveis, e cada número de destaque carrega a cadeia de evidências que o produziu.

Código e Configuração Principais: Executando em Dez Minutos

Comece com inferência para confirmar que o modelo é mais do que um comunicado de imprensa:

# 1. Clone o repositório
git clone https://github.com/harrrshall/barunlm-35m.git
cd barunlm-35m

# 2. Configure o ambiente
python -m venv .venv
source .venv/bin/activate
pip install -e .

# 3. Gere (baixa os pesos do HF automaticamente, verifica SHA-256, usa CUDA se disponível)
python examples/generate.py \
  --prompt "The future of efficient language models is" \
  --max-new-tokens 48 \
  --temperature 0.8
# Para saída determinística: --temperature 0

Somente os pesos, se preferir:

hf download harrrshall/BarunLM-35M --local-dir BarunLM-35M
sha256sum -c BarunLM-35M/SHA256SUMS

A arquitetura principal, conforme medido no barun_config.json:

{
  "parameters": 35072768,        // 35M
  "layers": 12,
  "hidden_size": 448,
  "num_attention_heads": 7,      // 7 cabeças de query
  "num_key_value_heads": 1,      // 1 cabeça KV compartilhada (GQA)
  "local_window": 256,           // janela de atenção local
  "attention_rhythm": "3:1",     // 3 camadas locais + 1 global
  "position_encoding": "50% partial RoPE",
  "ffn_width": 1228,
  "residual_selector_every": 4,  // um seletor a cada 4 camadas
  "vocab_size": 16384,           // BPE em nível de byte
  "context_length": 2048,
  "tie_embeddings": true
}

Replicar o treinamento exige computo da classe H200: estágio final com Muon, taxa de aprendizado de pico 1e-4, weight decay 0,1, batch size 48. Uma ressalva antes de construir sobre ele — este é um modelo base puro, sem ajuste por instrução, então use-o com prompts como um modelo de continuação, não como um assistente de chat.

Orientações Práticas

  • Prototipagem local. Com 35M de parâmetros e contexto de 2K, a inferência roda em uma única GPU de consumo ou até em uma CPU — muito adequado para experimentos de continuação de texto e demonstrações em sala de aula. O autor recomenda explicitamente contra uso médico, jurídico ou financeiro.

  • Referência de pesquisa. Se você vai treinar seu próprio modelo pequeno, copie diretamente as três jogadas: o ritmo misto de atenção 3:1 (economiza mais de 40% da computação de atenção), os seletores residuais (preservação de características) e um orçamento alinhado à capacidade começando próximo de 162,5 tokens por parâmetro. A pilha estabilizadora — GQA, RoPE parcial, QK Norm, SwiGLU limitado, embeddings atados — já vem pronta.

  • Reproduza a avaliação. O benchmark_results.json no repositório traz pontuações completas por tarefa, intervalos de confiança e hashes de evidência, para que você possa rodar novamente todos os nove benchmarks e comparar diretamente.

  • Respeite os limites. Sem capacidade de seguir instruções, qualidade factual muito abaixo dos modelos grandes — não o trate como substituto do ChatGPT. Seu valor é a densidade de capacidade por parâmetro, não a capacidade absoluta.

Recursos

Um orçamento de treinamento de GPU única produzindo um modelo genuinamente competitivo — esse tipo de diversão retrô está se tornando o novo normal na pesquisa com modelos pequenos. O próximo recorde sub-100M pode estar escondido nos seus próprios experimentos de GPU única.

Notícias Relacionadas