LLM Legislativo Brasileiro — versão integral v1

Modelo de linguagem experimental, treinado do zero em PyTorch com textos legislativos oficiais brasileiros da Câmara dos Deputados e do Senado Federal. A arquitetura é um Transformer Decoder causal próprio do projeto; este repositório não é compatível diretamente com transformers.AutoModel.

Estado e uso previsto

Este é um artefato educacional e de pesquisa para modelagem de linguagem e geração exploratória de texto legislativo em português. Ele não foi validado para interpretar leis, resumir processos, apoiar decisões jurídicas ou produzir documentos oficiais. Não use as gerações como orientação jurídica nem como fonte factual. As amostras em evaluation/generation_samples.json são exemplos não verificados; o modelo pode inventar normas, atribuir conteúdo incorreto a leis ou produzir texto incoerente.

Arquitetura e treinamento

  • Transformer Decoder causal explícito implementado em PyTorch.
  • 6 camadas, 6 cabeças, dimensão oculta 384, contexto de 512 tokens.
  • Vocabulário byte-level BPE de 8.192 tokens; PAD=0, BOS=1, EOS=2.
  • Pesos do checkpoint final da execução pretraining_legislativo_atual_v1, passo 173.209, treinada no split train da release legislativo_atual_v1.
  • model.safetensors contém os pesos de inferência; estado do otimizador, dados e shards de treinamento não foram incluídos.

Avaliação

Avaliado no split test da release indicada. Os números, protocolo e limitações estão em evaluation/test_metrics_summary.json. A perplexidade depende do tokenizer; use também a métrica byte_nll_v1 para uma comparação normalizada por bytes e respeite a definição da versão.

  • Perda média por token: 2,1065.
  • Perplexidade por token: 8,2197.
  • Perplexidade por palavra (métrica identificada do projeto): 65,6509.
  • NLL por byte: 0,7298 nats/byte (1,0529 bits/byte).
  • 71.069 documentos e 19.430 janelas de teste.

As gerações são poucas amostras qualitativas, não uma avaliação de factualidade. O corpus/release possui cobertura histórica parcial; o modelo não deve ser tratado como completo ou atualizado.

Inferência

Requer Python, PyTorch, tokenizers, safetensors e PyYAML. O código de arquitetura compatível com os pesos está em source/model/. Na raiz do repositório clonado:

import json, torch
from safetensors.torch import load_file
from tokenizers import Tokenizer
from modeling.legislm.model.config import GPTConfig
from modeling.legislm.model.gpt import GPTModel

config = GPTConfig.from_dict(json.load(open("model_config.json")))
tokenizer = Tokenizer.from_file("tokenizer.json")
model = GPTModel(config)
model.load_state_dict(load_file("model.safetensors"), strict=True)
model.eval()
ids = tokenizer.encode("PROJETO DE LEI Nº\n\nAltera a Lei nº").ids
with torch.no_grad():
    logits = model(torch.tensor([ids], dtype=torch.long))
print(logits.shape)  # [1, comprimento, 8192]

Geração autorregressiva está disponível em source/model/generation.py.

Tokenizer

O arquivo tokenizer.json foi treinado somente no split train e está acompanhado por tokenizer_manifest.json, com seu hash e configuração. Use Tokenizer.from_file da biblioteca tokenizers; os IDs especiais seguem os valores documentados acima.

Dados, licença e limitações

Os dados de treinamento derivam de documentos legislativos oficiais; este repositório não inclui o corpus. A licença dos pesos do modelo não foi declarada pelo mantenedor. O campo license: unknown reflete essa ausência: não presume uma licença permissiva nem concede direitos de redistribuição ou uso comercial. Verifique as condições aplicáveis aos dados de origem e consulte o mantenedor antes de redistribuir ou usar comercialmente.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
18.7M params
Tensor type
F32
·
BOOL
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support