Downloads · 30 days
3K
30% of all-time downloads
Papuguinho/gemmuguinho-636m
gemmuguinho-636m is a text generation model from Papuguinho. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as gemma.
<div align="center" <img src="gemmuguinho.jpg" alt="Gemmuguinho" width="200"/
Downloads · 30 days
3K
30% of all-time downloads
All-time downloads
10.1K
Public
Parameters
637M
1.3 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors1.3 GB · 99%
From the Hugging Face model README
Gemma + Papuguinho — born to communicate
A sovereign, CPU-friendly Mixture-of-Experts language model that generates Augmentative and Alternative
Communication (AAC/CAA) pictogram boards in Brazilian Portuguese — and edits them by natural-language
command. Built for Papuguinho to run fully on-device (no GPU) via llama.cpp.
The name Gemmuguinho combines the base architecture (Gemma-3 by Google) with the Papuguinho project it was born from — much like the mascot image: a hatchling with its own identity, grown from another's egg.
TL;DR — Type "Quero uma prancha de escola" → get a ready-to-use 12-pictogram communication board. Ask "adiciona 3 frutas" or "apagar pictograma do cachorro" → get a structured edit plan. ≈212M active params (top-2), ≈90–175 tok/s on 4 CPU threads, no GPU (175 tok/s measured on a 4-vCPU AMD EPYC VM).
gemma3moe — Gemma-3-270m upcycled to an 8-expert MoE (top-2)Gemmuguinho is a small Mixture-of-Experts (MoE) language model specialized for AAC (Augmentative and Alternative Communication). AAC boards are grids of pictograms that non-verbal or minimally-verbal people — often autistic children or people with speech disorders — use to communicate. Building good boards by hand is slow; this model produces coherent, thematically-balanced boards in seconds, on commodity hardware.
It is upcycled from Google's gemma-3-270m: the vocabulary
was trimmed to a compact 64k Portuguese-focused set via
embedding-vocab-trimmer, and every dense feed-forward
block was replaced by a routed MoE block (8 experts, top-2) via
gemma3moe-builder. Experts were diversely seeded
(Branch-Train-miX style) from gemma-3-270m (base), gemma-3-270m-it (instruct), a board fine-tune, and a
distilled variant, then trained on the AAC corpus. The result runs on llama.cpp with a custom gemma3moe architecture.
| ✅ Use it for | ⚠️ Not designed for |
|---|---|
| Generating AAC/CAA pictogram boards in pt-BR | Languages other than Brazilian Portuguese |
| Editing boards via natural-language commands (add/remove/retitle) | Open-domain chat / general assistant use |
| On-device / offline assistive-communication apps | Medical, legal, or safety-critical decisions |
| Speech-therapy and special-education tooling | Factual question answering |
R| confirmation, +| add, -| remove, T| retitle, C| columns, X| new theme.Each board line is label|category|search_terms (category ∈ s/v/a/e/p/l).
llama.cpp (recommended — CPU / on-device)Use the GGUF repo:
llama-cli -m gemmuguinho-636m-Q8_0.gguf --jinja \
-sys "$(cat corpo_chatbot.txt)" \
-p "quero uma prancha de escola" -n 200 -st
trust_remote_code)from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
repo = "Papuguinho/gemmuguinho-636m"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, trust_remote_code=True, dtype=torch.float32).eval()
msgs = [{"role": "system", "content": SYSTEM_PROMPT}, # see corpo_chatbot.txt
{"role": "user", "content": "quero uma prancha de escola"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt", return_dict=True)
out = model.generate(ids["input_ids"], max_new_tokens=200, do_sample=False)
print(tok.decode(out[0][ids["input_ids"].shape[1]:], skip_special_tokens=True))
⚠️ Generate single-sequence (batch size 1). Left-padded batched generation can corrupt outputs due to Gemma-3's sliding-window attention.
Brazilian-Portuguese corpus of 44,865 examples (683 held out for validation), mixing:
Teachers: a mix of Gemini models. No human data; no personal data.
Scored by a discriminative LLM judge (0–10 rubric: theme coherence, concentration/dispersion balance, picturability, usefulness). Reference points on the same rubric: a 1B dense baseline scores 7.8, the teacher ≈ 9.2.
| Model | Judge (0–10) | Notes |
|---|---|---|
| Gemmuguinho (MoE 636M, top-2) | ≈ 9.1 | near-teacher board quality |
| 1B dense baseline | 7.8 | reference |
| 2B dense baseline | 8.4 | reference |
| 4B dense baseline | 9.0 | reference |
| Teacher (Gemma4 31B) | 9.2 | upper reference |
Command-following (edit DSL) is reliable across quantizations, including exact-count adds and id-correct removals.
| Base model | google/gemma-3-270m (vocab trimmed to 64k) |
| Architecture | gemma3moe — Gemma-3 with routed MoE FFN |
| Experts | 8 total, top-2 active by default (softmax + renormalized); k selectable at runtime |
| Parameters | ≈636M total · active: ≈141M (k=1) / ≈212M (k=2) / ≈283M (k=3) |
| Layers / hidden | 18 / 640 |
| Context | inherits Gemma-3-270m |
| Inference | llama.cpp (CPU), or Transformers |
| Resource | Description |
|---|---|
| ⚡ gemmuguinho-636m-GGUF | GGUF quantizations for llama.cpp |
| 🔍 aac-pictogram-retriever-ptbr-GGUF | Semantic pictogram retriever (157M, CPU) |
| 🔧 gemma3moe-builder | Tool for converting dense models to MoE |
| ✂️ embedding-vocab-trimmer | Vocabulary pruning for multilingual embedding models |
| 🌐 Papuguinho | The AAC system this model is being built for (integration in progress) |
| 🖨️ Estúdio Papuguinho | AI-powered printable board generator |
@misc{stekel2026gemmuguinho,
title = {Gemmuguinho: a compact MoE language model for AAC pictogram boards in Brazilian Portuguese},
author = {Stekel, Tardelli R. C. and Antonelli, Manuela and Baroni, Gabriel P. and {Carvalho Neto}, José A. and Souza, Marcela J. V.},
year = {2026},
note = {Papuguinho, https://www.papuguinho.com},
url = {https://huggingface.co/Papuguinho/gemmuguinho-636m},
doi = {10.57967/hf/9931}
}
Project: Papuguinho · License: Gemma