Opa, Marcelo, claro!
O que eu fiz foi um um fine-tuning local para uma tarefa bem específica, que é: receber um git diff e devolver uma mensagem no padrão Conventional Commits, em PT-BR.
O dataset saiu do meu próprio histórico de commits. Como eu já usava o Seshat (https://github.com/juniormartinxo/seshat) para fazer meus commits usando IA (Deepseek, Codex, Claude etc), eu extraí os commits dos repositórios que eu trabalho, normalizei para formato chat, removendo WIP, revert, commits genéricos, bots, diffs só de whitespace, mensagens fora de Conventional Commits e duplicatas. No fim, ficaram 4.869 amostras de treino + 256 de avaliação, a partir de 13.525 commits brutos.
O modelo base foi o Qwen 2.5 Coder 7B Instruct em 4-bit. Fiz QLoRA com Unsloth/TRL, LoRA r=16, alpha=16, focando só em ensinar o padrão de saída e o meu estilo de commit, não em transformar o modelo num chat geral. Tanto que, se você perguntar algo diferente de "gerar commit", é capaz de ele responder algo absurdo. O que ele sabe fazer, e faz bem, é texto para commit.
O treino rodou localmente numa RTX 5070 Ti 16 GB e fechou com loss final de 0.2768. Depois exportei para GGUF, quantizei em Q4_K_M e publiquei para uso via Ollama.
A ideia é rodar 100% local:
```
git diff --cached | ollama run juniormartinxo/seshat-commit
```
Ou direto pelo Seshat com `seshat commit --yes`.