Theo-10M · Base
O protótipo que provou ser possível.
The prototype that proved it could be done.
Sobre este modelo
Este é o menor modelo da série Theo — 7,4 milhões de parâmetros reais, treinado do zero em corpus bíblico-teológico em português brasileiro. Nenhum peso pré-treinado. Nenhum transfer learning. Só arquitetura, dados e tempo de GPU.
Com 4 camadas e dimensão interna de 256, o Theo-10M é a versão protótipo: simples, rápida de rodar em qualquer hardware, e surpreendentemente funcional para seu tamanho. O objetivo aqui não era qualidade máxima — era provar que o pipeline funcionava e que um Transformer treinado do zero em domínio bíblico consegue aprender padrões reais de linguagem.
Ele aprende. E isso, por si só, já é notável.
🔗 Versão de chat:
plvictor/Theo-10M-PTBR-Chat
Para que serve?
- Baseline de comparação — entender o impacto do scaling entre 10M → 25M → 50M → 78M
- Fine-tuning leve — ponto de partida para quem quer adaptar a um subdomínio específico
- Pesquisa educacional — estudar emergência linguística em modelos pequenos
- Deploy ultra-leve — roda em CPU, sem GPU, com latência aceitável
Arquitetura
| Parâmetro | Valor |
|---|---|
| Parâmetros reais | 7,4M |
| Tipo | Transformer decoder-only |
| Camadas (n_layers) | 4 |
| Cabeças de atenção (n_heads) | 4 |
| Dimensão do modelo (d_model) | 256 |
| Dimensão FFN (d_ff) | 1.024 |
| Contexto máximo | 512 tokens |
| Vocabulário | 16.000 tokens (BPE treinado do zero) |
| Ativação | GELU |
Treinamento
| Item | Detalhe |
|---|---|
| GPU | NVIDIA L40S 48 GB (RunPod) |
| Dataset CPT | ~400M tokens (corpus bíblico v1) |
| Fontes | Bíblia, comentários, sermões, sites teológicos em PT-BR |
| Épocas | 2 |
| Batch size | 64 |
| Learning rate | 4e-4 (com warmup de 100 steps) |
| Custo estimado | < $3 |
Como usar
# Clonar
git lfs install
git clone https://huggingface.co/plvictor/Theo-10M-Base
cd Theo-10M-Base
pip install -r requirements.txt
# Gerar texto
python generate.py --checkpoint theo-10m-base.pt --prompt "No princípio era o Verbo"
import torch
from config import get_config
from src.model import BabelTransformer
cfg = get_config("babel_10M")
model = BabelTransformer(cfg)
ckpt = torch.load("theo-10m-base.pt", map_location="cpu", weights_only=False)
model.load_state_dict(ckpt["model_state_dict"], strict=False)
model.eval()
Limitações
- Domínio restrito ao corpus bíblico-teológico em português
- Janela de contexto de 512 tokens
- Pode gerar texto sem sentido ou repetitivo — modelo experimental
- Não foi submetido a nenhum processo de alinhamento (RLHF, filtragem)
Autor
Paulo Victor Souza · plvictor.com · huggingface.co/plvictor
"No princípio era o Verbo." — João 1:1