
O gate que aceitava 200 sem ler o conteúdo
Um health check que só olhava o código HTTP deixou passar respostas truncadas e vazias por dias. A sonda que veio depois mede o corpo, não o envelope.
20 posts

Um health check que só olhava o código HTTP deixou passar respostas truncadas e vazias por dias. A sonda que veio depois mede o corpo, não o envelope.

Perdi 810 steps de treino porque um checkpoint de 2 GB foi copiado direto no nome final e a máquina reiniciou no meio. Consertei a escrita no volume principal. Dois dias depois, o mesmo bug morava no espelho do segundo disco e tinha ficado pior: o arquivo truncado passava na checagem de retomada.

Um BitMamba 1B catatônico — tokenizador quebrado, gradientes a 10^18, ENOMEM no meio da madrugada e um wedge de CUDA que fingia ser GPU morta — fechou 500 steps e a validação reproduziu o eval loss até o quarto dígito. O diário da Fase 4B numa RTX 3060 de 12 GB.

Retomei uma rodada do zero do último checkpoint e ela seguiu firme — steps passando, gradiente saudável, nenhuma mensagem de erro. Só que a taxa de aprendizado tinha encolhido três ordens de grandeza sem pedir licença. A causa: o agendador de LR restaura mais do que deveria ao carregar estado antigo, e a correção foram duas linhas.

A rodada da Fase 4 caiu no meio sem traceback, sem OOM e sem log de erro: o processo simplesmente deixou de existir. Caçar a causa virou uma lição sobre olhar a métrica certa — e sobre o custo invisível de deixar o driver da GPU varrendo o seu lixo.

300 passos de treino, loss congelada em 10.8125 e um modelo que insistia em sair em branco. A causa não era a taxa de aprendizado baixa — eram pesos explodidos no checkpoint de partida. A história de como um treino parado virou um diagnóstico completo.

O post do codec terminou com uma pendência: o lm_head divergindo na validação. Duas semanas depois, uma auditoria metódica re-escalou a cabeça do modelo, gerou um checkpoint limpo e virou a base da Fase 4 — a Ressurreição.

Um repo que acumula artefatos de build e sync não conta a história limpa que você quer mostrar. O TatuEngine passou por uma higienização de versionamento: artefatos de build fora do git, auto-sync rodando e um repositório preparado pra quem for olhar de fora sem entregar a receita interna.

O BVH 1:1 do BitMamba-2 1B ocupava 27.26GB — inviável. Um codec de blocos ternários compactos entregou 114× de compressão, com o lm_head divergindo no meio da validação.

O TatuEngine tinha 5.7GB de modelos de IA commitados no git desde o primeiro dia. O GitHub rejeita objetos acima de 2GB com erro 422 — o push nunca passaria. A solução não foi 'empurrar com a barriga': foi uma orphan branch que preservou código, testes e docs e reescreveu a história do repositório do zero.

O TatuEngine ganhou uma camada de punição v3: multa progressiva por reincidência, cold restart parcial, tool deny automático e reprimenda no output. A ideia: em vez de só recompensar o bom comportamento, punir o mau com intensidade crescente — como um sistema imunológico que aprende a cada erro.

O agente autopoiético com ToolUse, MCP server e sandbox é a maior superfície de ataque do meu ecossistema. Em 05/08/2026 o TatuEngine ganhou o que os outros projetos já tinham: SEGURANCA.md v1.0, watchdog 24h e uma regra que muda como o projeto é desenvolvido.

Depois de aprender a inferir (GPU 252×), o TatuEngine partiu pro ciclo Mestre-Aprendiz: um teacher Qwen2.5-3B com LoRA destilando raciocínio estruturado ([THOUGHT]/[ANSWER]) pro student BitMamba-2 1B. Seis versões num dia (v0.17→v0.22.2), 381 exemplos e a convergência que não vinha até o fix do system message.

Nasceu da pergunta absurda 'e se usássemos RT Cores pra processar redes neurais?', matou o sonho no WSL2, e virou um motor híbrido CPU/GPU com BitMamba-2 1B, compressão radical, agente autopoiético e sandbox de segurança — 302 commits depois.

Quando sua engine executa código gerado por IA, você precisa de um sandbox que não atrapalhe o desenvolvimento mas também não deixe passar path traversal.

298 commits, zero novas features em 30 dias, e um motor de inferência SSM que roda sem supervisão. O TatuEngine não precisa de mudanças — ele só funciona.

Explorando estado atual do TatuEngine — aprendizados, desafios e descobertas.

A saga de fazer o Student BitMamba-1B aprender sem explodir: Adafactor vs AdamW, a economia de 4 GB de VRAM, e os 4 bugs que produziam NaN no treinamento em bf16.

A jornada (e as crateras) de treinar um Mamba-2 de 1.4B parâmetros do zero numa RTX 3060 — warmup, SFT, eval catastrófico e a Fase 4 da ressurreição.

Explorando os primórdios do TatuEngine — lições, desafios e descobertas.