Suzuki-m1 GPT — modelo causal pré-treinado do zero em português

Modelo de linguagem GPT-2 style (decoder-only) treinado do zero sobre o corpus em português Raivatv24/Suzuki-m1. Projeto de demonstração/acadêmico: pequeno, mas completo (tokenizador BPE próprio + treino do zero + checkpointing continuado no Hub).

Versão do checkpoint no Hub: passo 2000 (o treino continua; o app atualiza automaticamente quando novos passos são pushados).

Tamanho

Item Valor
Parâmetros ~23M (GPT2 config)
Tipo Causal LM (decoder-only)
Vocabulário 32.000 (BPE próprio, treinado sobre o corpus)
Contexto (block) 256 tokens

Arquitetura

from transformers import GPT2Config
cfg = GPT2Config(
    vocab_size=32000,
    n_positions=256,
    n_embd=384,
    n_layer=6,
    n_head=6,
)

Treinamento

Item Valor
Otimizador AdamW
LR 3e-4 (cosine com warmup de 200 steps)
Batch efetivo 64 (16 × grad accumulation 4)
Passos 10.000 planejados (em andamento)
Hardware Notebook Kaggle, acelerador GPU
Salva A cada 1.000 passos (ckpt.pt + model.safetensors + tokenizer)

O treino usa RESUME=True: se a sessão cair, ele baixa o ckpt.pt do Hub e continua de onde parou.

Uso

Para transformers >= 4.49 (carrega tokenizer e config direto):

from transformers import pipeline

pl = pipeline("text-generation", model="Raivatv24/suzuki-m1-gpt")
pl("Era uma vez", max_new_tokens=60)

Atenção (bug conhecido): o tokenizer_config.json foi serializado com transformers 5.17 (classe TokenizersBackend), que não existe em transformers 4.48.x. Se der erro Tokenizer class TokenizersBackend does not exist, carregue o tokenizer pelo arquivo:

from transformers import AutoConfig, AutoModelForCausalLM, PreTrainedTokenizerFast

cfg = AutoConfig.from_pretrained("Raivatv24/suzuki-m1-gpt")
model = AutoModelForCausalLM.from_pretrained("Raivatv24/suzuki-m1-gpt")

tk = PreTrainedTokenizerFast(
    tokenizer_file="/caminho/para/tokenizer.json",  # baixou do repositório
    eos_token="<|endoftext|>",
    pad_token="<|pad|>",
    unk_token="<|endoftext|>",
    bos_token="<|endoftext|>",
    model_max_length=256,
)

IDs especiais do tokenizador: <|endoftext|> = 0, <|pad|> = 1.

Dataset

Treinado sobre Raivatv24/Suzuki-m1 (JSONL, campo text), que mistura:

  • Wikipédia em português
  • C4 multilingual (filtrado pt)
  • Wikisource (pt)
  • Livros clássicos em português adaptados ao português moderno
  • Legendas de filmes/séries (EN→PT)
  • Texto de anime (romance/light novels em inglês)
  • Problemas de matemática (MATH-500)
  • Código Python de exemplo
  • Revisões de filmes (IMDB)
  • Raciocínio de alta qualidade (Fable reasoning)

Demos

Ambos recarregam o modelo automaticamente quando um checkpoint novo é publicado.

Uso pretendido

  • Estudo de treino de LLMs do zero (pipelines completos)
  • Geração de texto curto em português
  • Fine-tune e experimentos de linguagem

Limitações

  • Modelo pequeno (~23M params) e corpus limitado — expectativas de qualidade baixas; produz texto incoerente/experimental
  • Mistura pt-BR/pt-PT e fontes derivadas podem conter ruído
  • Contexto curto (256 tokens)
  • Não é adequado para produção ou uso comercial sem avaliação
  • Nesta fase inicial (passo 2000) o modelo ainda está "aprendendo a língua"; salidas podem conter sequências sem sentido

Licença

Modelo publicado sob cc-by-sa-4.0, derivado de um corpus com as mesmas restrições. Verifique os termos das fontes originais antes de uso comercial.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using Raivatv24/suzuki-m1-gpt 1