Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

Mangaba-Nano-1M

by Mangaba AI mangaba-ai/Mangaba-Nano-1M

Mangaba-Nano-1M is an open-weight model for text generation from Mangaba AI, released under Apache License 2.0. It has 1M parameters and a 512-token context. At 16-bit it needs about 0 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

Um modelo de linguagem de 1,4 milhão de parâmetros, treinado do zero em português do Brasil pela Mangaba AI.

Parameters1M
Context512
Weights14.4 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve Mangaba-Nano-1M (1M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.0 GB 0.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.0 GB 0.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.0 GB 0.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

Mangaba-Nano-1M on every accelerator the SAVRN Index prices, at every precision

Model Card

By Mangaba AI, published under apache-2.0, revision 675824e5733e.

Um modelo de linguagem de 1,4 milhão de parâmetros, treinado do zero em português do Brasil pela Mangaba AI. Relatório técnico completo (dados, arquitetura, Muon, ablações, controles e destilação): https://huggingface.co/spaces/mangaba-ai/mangaba-nano-artigo Não há modelo base: os pesos começaram aleatórios e o tokenizer também foi treinado do zero sobre o mesmo corpus. O treino rodou nas GPUs NVIDIA L40S da própria Mangaba, em datacenter no Brasil. É um modelo de pesquisa e de borda: cabe em 5,6 MB, roda em qualquer CPU e serve como base para estudar escalas minúsculas, fazer ajuste fino em tarefas estreitas (classificação, autocompletar, extração simples) ou rodar em microcontroladores e…

Read Mangaba AI's full model card

Um modelo de linguagem de 1,4 milhão de parâmetros, treinado do zero em português do Brasil pela Mangaba AI.

Relatório técnico completo (dados, arquitetura, Muon, ablações, controles e destilação): https://huggingface.co/spaces/mangaba-ai/mangaba-nano-artigo

Não há modelo base: os pesos começaram aleatórios e o tokenizer também foi treinado do zero sobre o mesmo corpus. O treino rodou nas GPUs NVIDIA L40S da própria Mangaba, em datacenter no Brasil.

É um modelo de pesquisa e de borda: cabe em 5,6 MB, roda em qualquer CPU e serve como base para estudar escalas minúsculas, fazer ajuste fino em tarefas estreitas (classificação, autocompletar, extração simples) ou rodar em microcontroladores e navegadores. Não é um assistente de chat e não sabe fatos: a 1M de parâmetros, ele aprende ortografia, morfologia e sintaxe do português, e só um pouco de semântica.

Benchmarks

Modelo Parâmetros Dados de treino BPB GigaVerbo ↓ BPB Wikipédia PT ↓ CALAME-PT ↑ Story Cloze PT ↑
Mangaba-Nano-1M 1,41M PT-BR, 2,85B tokens 1,282 1,593 17,1% 56,2%
Baseline Qwen3 + AdamW (mesmos dados) 1,41M PT-BR, 2,85B tokens (idênticos) 1,323 1,635 16,2% 55,9%
Baseline GPT-2 + AdamW (mesmos dados) 1,42M PT-BR, 2,85B tokens (idênticos) 1,425 1,736 11,7% 56,7%
TinyStories-1M 3,75M inglês (TinyStories); ~1M sem embedding 6,407 6,273 0,0% 50,0%
Tucano-160m 162M PT-BR (GigaVerbo v1) 0,929 0,955 45,6% 61,7%

Como ler. - BPB (bits por byte): perda medida por byte de texto, então independe do tokenizer e compara modelos de vocabulários diferentes. GigaVerbo é a validação separada do corpus de treino; Wikipédia PT são 400 artigos (3.000 caracteres cada) fora desse domínio. - CALAME-PT (Polygl0t/CALAME-PT, 2.076 textos): o modelo precisa gerar exatamente a última palavra do texto. - Story Cloze PT (1.511 histórias): escolher o final certo entre dois, pela log-verossimilhança normalizada por byte. O acaso dá 50%. Com 1.511 itens, a margem de erro é de ±2,5 pontos (IC 95%): aqui os três modelos PT de ~1M empatam, e só o Tucano-160m se destaca. - Baselines: mesmo tamanho (≈1,41M), mesmos 2,85B tokens e mesmo tokenizer, com a receita clássica (AdamW + cosseno, LR escolhido por varredura: 2e-2 no Qwen3; 3e-3 no GPT-2, porque o 1e-2 que venceu a varredura curta divergiu no passo ~2.900 do treino longo). Eles isolam o efeito da receita do Mangaba (Muon + WSD + arquitetura moderna). - O TinyStories-1M (o modelo público mais próximo em tamanho: 3,75M no total, ~1M fora do embedding) foi treinado em inglês e entra como régua de tamanho, não de idioma. O Tucano-160m é mais de 100× maior e serve de teto de referência.

Todos os números vêm do bench.py deste repositório, rodado em CPU com float32.

Arquitetura

Decoder no desenho padrão atual (o mesmo de Qwen3 e Llama), carregado com Qwen3ForCausalLM do Transformers. A classe é só a implementação desse desenho: os pesos começaram aleatórios e nenhum peso da Qwen foi usado (por isso o config.json mostra model_type: qwen3).

Camadas 6
Dimensão oculta 128
FFN (SwiGLU) 256
Atenção 4 cabeças de query, 2 de key/value (GQA), head_dim 32, QK-norm
Posição RoPE (θ = 10.000), contexto de 512 tokens
Normalização RMSNorm pré-camada
Embeddings amarrados entre entrada e saída
Vocabulário 4.096 tokens, BPE byte-level treinado do zero (≈3,5 caracteres por token em PT-BR)
Parâmetros 1.411.072 (524.288 de embedding, 886.784 nas camadas)

Receita de treino

Técnicas atuais de pré-treino eficiente, escolhidas por ablação curta antes da rodada final:

  • Otimizador Muon (ortogonalização de Newton-Schulz com momentum de Nesterov) nas matrizes ocultas, e AdamW nos embeddings e nas normas. Busca de LR em rodadas de 40M tokens: Muon 0,015, AdamW 0,015.
  • Agenda Warmup-Stable-Decay (WSD): 2% de aquecimento, platô, e resfriamento final de 25% com curva 1−√t.
  • Precisão mista bf16, torch.compile com a cross-entropy fundida no grafo, recorte de gradiente em 1,0.
  • Lote de 65.536 tokens por passo, 43.487 passos, 2,85 bilhões de tokens (1 época, sem repetição; cerca de 2.000 tokens por parâmetro).
  • Tempo: 67 minutos em uma L40S, usando menos de 0,5 GB de VRAM, ao lado do modelo de produção que divide a mesma GPU.

Dados

Só dados públicos em português:

Documentos com menos de 200 caracteres foram descartados e o texto foi normalizado em Unicode NFC. Total tokenizado: 2,9 bilhões de tokens (≈1 bilhão sintéticos e ≈1,9 bilhão edu_high).

Uso

from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("mangaba-ai/Mangaba-Nano-1M")
model = AutoModelForCausalLM.from_pretrained("mangaba-ai/Mangaba-Nano-1M")

ids = tok("A fotossíntese é o processo", return_tensors="pt").input_ids
out = model.generate(ids, max_new_tokens=60, do_sample=True, temperature=0.7,
                     top_p=0.9, repetition_penalty=1.15)
print(tok.decode(out[0], skip_special_tokens=True))

Com llama.cpp (o GGUF está neste repositório):

llama-cli -m Mangaba-Nano-1M-F32.gguf -p "O Brasil é um país" -n 60 --temp 0.7

Exemplos (amostragem, temperatura 0,7)

O Brasil é um país de gado, entretanto, em que há uma reação dos direitos humanos. Para ele, é preciso considerar a forma como os homens estão se relacionando com o mundo e com os seus filhos. Ainda assim, muitos professores também têm o direito à educação e ao ensino público.

A Constituição Federal de 1988, sendo a primeira vez que o homem de Israel tem sido uma nova fase para a qual se aplica a um sistema de defesa da sociedade, o qual é fundamental para o desenvolvimento e o desenvolvimento da democracia, mas sim do processo de construção da democracia.

A fotossíntese é o processo de transmissão de dados, mas o que está sendo feito para isso é muito difícil, porque pode ser inevitável.

Limitações

  • Com 1,4M de parâmetros, o texto é gramatical e com vocabulário correto, mas perde o fio em poucas frases e inventa fatos. Não use para responder perguntas.
  • Sem ajuste de instrução nem alinhamento. Os tokens <|im_start|> e <|im_end|> já estão no vocabulário para um ajuste fino de chat futuro.
  • Contexto máximo de 512 tokens.
  • Herda os vieses do texto da web em português.

Licença

Pesos e código sob Apache-2.0. Os dados de treino seguem as licenças das fontes listadas nos cartões do GigaVerbo-v2.


Feito pela Mangaba AI.

Configuration

Architecture
Qwen3ForCausalLM
Context length (tokens)
512
Layers
6
Hidden size
128
Feed-forward size
256
Attention heads
4
Key/value heads
2
Head dimension
32
Vocabulary size
4,096
RoPE base
10000
Model type
qwen3

Identity and Version

Repository
mangaba-ai/Mangaba-Nano-1M
Publisher
Mangaba AI
Task
Text generation
Modality
Text
Library
transformers
Parameters
1M parameters
Languages
pt
Revision
675824e5733ee164adc057d7c1efcece1822e86b
First published
2026-10-17
Last updated
2026-10-18

Files and Weights

19 files, 14.8 MB in total. The weights are 3 files totalling 14.4 MB in gguf, safetensors.

Weights3 files · 14.4 MB
Configuration10 files · 26.0 KB
Tokenizer2 files · 268.8 KB
Documentation1 file · 8.0 KB
Other2 files · 71.4 KB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
Mangaba-Nano-1M-F16.ggufWeights3.0 MB adb60f313260
Mangaba-Nano-1M-F32.ggufWeights5.8 MB a72dd96fdae9
model.safetensorsWeights5.7 MB 8c7974297b2f
bench.pyConfiguration4.3 KB —
config.jsonConfiguration877 B —
eval_bpb.pyConfiguration2.0 KB —
generation_config.jsonConfiguration132 B —
make_card.pyConfiguration5.4 KB —
prep.pyConfiguration3.0 KB —
sample.pyConfiguration839 B —
special_tokens_map.jsonConfiguration364 B —
train.pyConfiguration8.6 KB —
train_args.jsonConfiguration451 B —
README.mdDocumentation8.0 KB —
bench.pngOther68.8 KB —
log.jsonlOther2.6 KB —
.gitattributesRepository1.6 KB —
tokenizer.jsonTokenizer267.8 KB —
tokenizer_config.jsonTokenizer1.0 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
14.4 MB
Download from Mangaba AI

Released by Mangaba AI through its official repository on Hugging Face. Read the license.

Built From

  • Trained on (disclosed) Polygl0t/gigaverbo-v2
  • Trained on (disclosed) Polygl0t/gigaverbo-v2-synth

Evaluations

Each result is shown as reported, with the conditions its reporter stated. None is a SAVRN measurement. A comparison lines two results up only when their configuration, unit and setup are all stated and identical.

BenchmarkConditionsResultReported byRevisionDate
GigaVerbo-v2 (validação separada, edu_high + synth) Task text-generationMetric bits_per_byteComparison conditions not established 1.282 mangaba-ai
Publisher reported
Evaluated revision not stated —
GigaVerbo-v2 (validação separada, edu_high + synth) Task text-generationMetric perplexityComparison conditions not established 22.57 mangaba-ai
Publisher reported
Evaluated revision not stated —

Memory Requirements

PrecisionWeights in memory
As published14.4 MB
16-bit0.0 GB
8-bit0.0 GB
4-bit0.0 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About Mangaba-Nano-1M

How much GPU memory does Mangaba-Nano-1M need?

About 0 GB at 16-bit and 0 GB at 4-bit: the weights (1M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run Mangaba-Nano-1M on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use Mangaba-Nano-1M commercially?

Yes. Mangaba-Nano-1M is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is Mangaba-Nano-1M's context length?

512 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text generation

Ornith-1.0-9B

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit 1M parameters 262,144 tokens transformers

This package uses the standard Transformers Llama causal-language-model architecture with OpenWALDO's schema-1 byte tokenizer. Load the tokenizer with trustremotecode=True. BOM.json inventories every release file and EU-BOM.json contains the EU GPAI training-content disclosure mapping.

Open weights 820,736 parameters 512 tokens transformers

This package uses the standard Transformers Llama causal-language-model architecture with OpenWALDO's schema-1 byte tokenizer. Load the tokenizer with trustremotecode=True. BOM.json inventories every release file and EU-BOM.json contains the EU GPAI training-content disclosure mapping.

Open weights 820,736 parameters 512 tokens transformers

This package uses the standard Transformers Llama causal-language-model architecture with OpenWALDO's schema-1 byte tokenizer. Load the tokenizer with trustremotecode=True. BOM.json inventories every release file and EU-BOM.json contains the EU GPAI training-content disclosure mapping.

Open weights 820,736 parameters 512 tokens transformers

This package uses the standard Transformers Llama causal-language-model architecture with OpenWALDO's schema-1 byte tokenizer. Load the tokenizer with trustremotecode=True. BOM.json inventories every release file and EU-BOM.json contains the EU GPAI training-content disclosure mapping.

Open weights 820,736 parameters 512 tokens transformers

This package uses the standard Transformers Llama causal-language-model architecture with OpenWALDO's schema-1 byte tokenizer. Load the tokenizer with trustremotecode=True. BOM.json inventories every release file and EU-BOM.json contains the EU GPAI training-content disclosure mapping.

Open weights 820,736 parameters 512 tokens transformers