SmolLM2-360M falando código em PT-BR
Faça um fine-tune completo do SmolLM2-360M-Instruct em 1.000 exemplos e ensine ele a responder pedidos de código em português, com bloco de código. O notebook padrão faz 2%: acerte a receita.
40 pedidos de página/estilo/JS em português natural. Conta ponto a resposta que tem prosa em português E um bloco de código fechado. O modelo base acerta ~15%.
O SmolLM2-360M-Instruct é um modelo real (360M parâmetros, arquitetura Llama, treinado em 4T tokens) que responde bem em inglês e mal em português: quando o pedido é natural ("faz uma página com um contador"), ele responde prosa sem código em mais da metade das vezes, e em PT fica pior ainda.
Você recebe 1.000 exemplos verificados (900 de código PT-BR no estilo "1 linha de intenção + código completo + bullets" e 100 de conversa PT) e faz um full fine-tune em bf16 numa A10G. A régua mede forma, não execução: prosa em PT + bloco de código fechado nos 40 pedidos do heldout.
Do jeito que o notebook vem (lr 2e-5, 2 épocas) o resultado é 2%: a loss nem sai de 1,7 e as respostas viram prosa em PT sem código, muitas vezes em loop. O modelo já "sabe" português; o que falta é sinal de treino suficiente pra mudar o formato. Com o learning rate certo a mesma receita passa de 75%; deixando a resposta terminar em vez de cortar, de 90%.
Passo a passo
- Abra no Lab numa A10G ou L4 (precisa de bf16; T4 não serve). Baixa o modelo (~700 MB), treina 2 épocas (~2 min) e gera as 40 respostas: ≈2%.
- Veja onde perde: sem bloco de código, prosa em inglês, ou bloco não fechado (resposta truncada em MAX_NEW).
- Alavanca 1: LR. Em 2e-5 a loss não anda; 5e-5 já passa da régua, 1e-4 a 2e-4 com 3 épocas dá 75-80%.
- Alavanca 2: MAX_NEW. Muito bloco fica aberto porque a resposta é cortada; 700 tokens leva a receita de lr 1e-4 a ~90%.
- Cuidado com o esquecimento: mais épocas no corpus de código podem destruir o chat. A célula bônus testa uma pergunta livre no fim.
Dados da missão
- smolcode_treino.jsonl · 1.000 exemplos (messages + loss_turns), formato ChatML
- smolcode_heldout.jsonl · 40 pedidos em PT-BR natural (id + prompt)
O notebook baixa esses arquivos sozinho de https://arena.dankicode.com/dados/.