Instructions to use Magurofg/pocket-lm-269m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Magurofg/pocket-lm-269m with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf Magurofg/pocket-lm-269m:Q4_K_M # Run inference directly in the terminal: llama cli -hf Magurofg/pocket-lm-269m:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Magurofg/pocket-lm-269m:Q4_K_M # Run inference directly in the terminal: llama cli -hf Magurofg/pocket-lm-269m:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf Magurofg/pocket-lm-269m:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf Magurofg/pocket-lm-269m:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf Magurofg/pocket-lm-269m:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf Magurofg/pocket-lm-269m:Q4_K_M
Use Docker
docker model run hf.co/Magurofg/pocket-lm-269m:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use Magurofg/pocket-lm-269m with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Magurofg/pocket-lm-269m" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Magurofg/pocket-lm-269m", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Magurofg/pocket-lm-269m:Q4_K_M
- Ollama
How to use Magurofg/pocket-lm-269m with Ollama:
ollama run hf.co/Magurofg/pocket-lm-269m:Q4_K_M
- Unsloth Studio
How to use Magurofg/pocket-lm-269m with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Magurofg/pocket-lm-269m to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Magurofg/pocket-lm-269m to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for Magurofg/pocket-lm-269m to start chatting
- Docker Model Runner
How to use Magurofg/pocket-lm-269m with Docker Model Runner:
docker model run hf.co/Magurofg/pocket-lm-269m:Q4_K_M
- Lemonade
How to use Magurofg/pocket-lm-269m with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Magurofg/pocket-lm-269m:Q4_K_M
Run and chat with the model
lemonade run user.pocket-lm-269m-Q4_K_M
List all available models
lemonade list
- Atomic Chat
- Pocket-LM 269M — LM brasileiro para rodar no celular
Pocket-LM 269M — LM brasileiro para rodar no celular
Modelo de linguagem decoder de 269M de parâmetros, treinado do zero em português, feito para rodar offline em celulares de entrada (169 MB em Q4_K_M, ~15 tok/s num Helio G36, 80 tok/s medidos num Dimensity 9500s via llama.cpp).
Nenhum peso de terceiros: outras IAs participaram apenas como professoras (geração e filtragem de dados), nunca como fonte de pesos.
Medições, réguas de avaliação e lições do projeto (incluindo resultados negativos): github.com/MaxxArtes/pocket-lm-notas.
Resultados (05/08/2026)
| benchmark | Pocket-LM 269M | referência |
|---|---|---|
| LAMBADA-PT (n=5.153) | 36,85 | 1º entre modelos <1,2B em pt (Tucano-1b1: 34,70 com 250B tokens) |
| CALAME-PT (n=2.076) | 53,13 | 3º, acima de Bloom-1b1 e GlórIA-1b3 (4× o tamanho) |
| IFEval-pt (n=308) | 39,61 | sem nenhum treino de instrução |
| MultiBLiMP (gramática) | 96,3% | acaso: 50% |
Total de treino: 25,4 bilhões de tokens — 10× menos que o comparável mais próximo. Avaliação pareada por item; detalhes e réguas no repositório do projeto.
Linhagem de dados (transparência)
- Última fase (12,3B tokens): 100% corpus com licença declarada — finepdfs (ODC-By), FineWeb2-HQ (ODC-By), HPLT 2.0 (CC0) — deduplicado globalmente, com shards de validação segregados.
- Fases anteriores (13,1B tokens): Common Crawl filtrado (ClassiCC-PT, sem licença explícita no cartão), Wikipédia-PT (CC-BY-SA) e sintético permissivo (Apache-2.0).
- Ou seja: a última rodada é integralmente licenciada; a linhagem completa dos pesos inclui uma fase anterior de licença indefinida. Um retreino do zero 100% limpo está no roteiro.
Limitações honestas
- Não é chat. É modelo base: completa texto. Para uso, dê começos de frase ou acople a um fluxo de instrução.
- Não sabe recusar: medimos que julgamento de respondibilidade não se forma neste porte (três controles independentes; artigo a caminho). Não use para QA factual sem camada de verificação.
- Conhecimento de mundo limitado pelo porte: erra fatos com confiança.
- Contexto de 512 tokens.
Uso rápido (llama.cpp)
llama-cli -m pocket-lm-269m-q4_k_m.gguf -p "O Brasil é um país" -n 50 -t 4
Atribuições de dados
finepdfs e FineWeb2-HQ (HuggingFaceFW/epfml, ODC-By 1.0) · HPLT 2.0 (CC0) · Wikipédia-PT (CC-BY-SA 3.0) · gigaverbo-v2-synth (Apache-2.0) · ClassiCC-PT (citado; sem licença declarada) · avaliações: CALAME-PT, LAMBADA-PT (TucanoBR), MASSIVE (CC-BY-4.0).
Assistente de ações (novo, 06/08/2026)
pocket-assistente-q4_k_m.gguf (177 MB) — um arquivo que entende comandos E lê
texto: fusão 0,85·SFT-de-ações + 0,15·base, quantizada com imatrix. Números (fatia
cega): 88,2% de intenção / 79,3 de slot F1 no MASSIVE localizado pt-BR;
CALAME 50,9 (base pura: 53,1).
Como usar no modo comando: prompt frase: <comando>\nacao: com stop=["\n"] e
temperatura 0; saída intencao;campo=valor|.... Recomendado: se o modelo não disse
desconhecido mas p(token " desconhecido") > 0,05 no 1º passo, trate como
desconhecido (rejeição near-domain sobe de 57,5% para 77,5%, custando 0,8pp de
intenção). Confirme com o usuário antes de executar qualquer ação.
Extensão: 9 funções nativas de celular (adapter de 20 MB, 07/08/2026)
Um adapter LoRA de 20 MB (r=16, sobre a base congelada) adiciona nove comandos nativos que o MASSIVE não cobre: timer, lembrete, ligação, mensagem, lanterna, abrir aplicativo, Wi-Fi/Bluetooth/modo avião, cálculo e conversão de unidade.
Arquivo: pocket-lora-acoes-v6.gguf — usar com a base pura
(pocket-lm-269m-q4_k_m.gguf), não com o pocket-assistente já fundido:
llama-server -m pocket-lm-269m-q4_k_m.gguf \
--lora-scaled pocket-lora-acoes-v6.gguf:1.0 -c 512
# prompt: "frase: me acorda às sete\nacao:" -> " alarm_set;time=sete"
Medições (mesmo avaliador, mesma fatia, comparado ao adapter de ações anterior)
| métrica | adapter anterior | v6 |
|---|---|---|
| intenção (60 do MASSIVE) | 88,6 | 90,0 |
| F1 de campos | 78,2 | 79,9 |
| recusa fora do escopo | 97,7 | 99,0 |
| falso-desconhecido | 1,4% | 1,0% |
| 9 funções novas | — | 87,4% |
| hard-OOS (fronteira difícil) | 61,0 | 54,5 |
Por função (teste cego de 1.051 exemplos independentes, ~117 por função): toggles 99,0 · ligação 97,5 · timer 94,2 · cálculo 91,7 · abrir app 88,9 · lanterna 87,6 · conversão 86,7 · mensagem 72,5 · lembrete 69,5.
Limitação conhecida, medida e não resolvida
O hard-OOS cai 6,5 pontos (61,0 → 54,5). Adicionar intenções move a fronteira do que é "fora do escopo": comandos que antes eram claramente externos passam a se parecer com as funções novas. Os negativos do treino foram limpos dos casos que viraram válidos, mas não foram acrescentados negativos das novas bordas — essa correção está pendente. Com a regra de confiança do app (p(desconhecido) > 0,05 no primeiro token), a recusa difícil vai de 54,5 para 74,0.
Duas funções (lembrete e mensagem) estão abaixo de 75% e não deveriam ser habilitadas num produto sem mais dado de treino.
Troca de modo (ação ↔ conversa)
Dois adapters podem ficar residentes e alternar por escala (1,0 no modo ativo, 0,0 no outro) — a troca leva 1 ms e não recarrega o modelo. Somar os dois não funciona: custa 5 pontos de intenção e degrada a conversa. Um adapter de conversa experimental existe, mas conversa livre não é viável neste tamanho (24,4% de coerência em teste cego de 200 prompts) — fica para o modelo de 400M.
Qual quantização usar (matriz medida, 07/08/2026)
Doze níveis medidos neste modelo, com o adapter v6 fundido na base e o mesmo conjunto de teste em todos (300 MASSIVE, 300 nativas, 150 fora de escopo, 150 fronteira difícil, 400 CALAME). Números de 7B da comunidade não se transferem para cá — por isso medimos.
Intervalos de confiança de 95%, para leitura honesta da tabela: intenção, nativas e F1 ±3,7 a 4,0pp · recusa ±2,7pp · hard-OOS ±8,0pp · CALAME ±4,9pp. Diferença menor que o IC não é resultado.
| nível | MB | intenção | F1 campos | nativas | recusa OOS | CALAME |
|---|---|---|---|---|---|---|
| F16 | 514,6 | 87,67 | 75,38 | 88,33 | 98,00 | 49,25 |
| Q8_0 | 274,6 | 87,33 | 75,71 | 88,33 | 98,00 | 49,00 |
| Q6_K | 212,6 | 87,67 | 75,99 | 88,67 | 98,00 | 49,00 |
| Q5_K_M | 190,0 | 87,33 | 75,72 | 88,67 | 97,33 | 49,25 |
| Q4_K_M (publicado) | 168,8 | 87,00 | 75,16 | 87,67 | 98,00 | 49,75 |
| Q3_K_M | 141,3 | 89,67 | 75,99 | 87,33 | 97,33 | 50,50 |
| Q3_K_S | 118,8 | 88,00 | 76,38 | 88,33 | 97,33 | 48,75 |
| Q2_K | 110,7 | 86,00 | 71,97 | 87,33 | 96,67 | 45,75 |
| Q2_K + imatrix | 110,7 | 87,00 | 74,46 | 86,67 | 97,33 | 47,00 |
| IQ2_M + imatrix | 100,1 | 86,67 | 73,63 | 88,67 | 96,00 | 48,50 |
| Q2_K_S + imatrix | 96,3 | 87,33 | 73,08 | 84,00 | 96,67 | 45,50 |
| IQ2_XXS + imatrix | 80,3 | 84,33 | 70,07 | 81,33 | 86,00 | 43,75 |
| IQ1_M + imatrix | 74,3 | 81,67 | 61,22 | 71,33 | 80,00 | 40,00 |
Recomendação: Q4_K_M (o arquivo publicado). Se precisar de menos espaço, Q3_K_S (118,8 MB) não custa nada mensurável, e IQ2_M (100,1 MB) é o piso. Não use IQ2_XXS nem 1 bit.
O que a matriz ensinou
De F16 até Q3_K_S não há perda mensurável. Diverge do reportado para modelos de 7B, onde 3 bits já dói. Hipótese: a tarefa aqui é classificar e extrair campos, não gerar texto livre — bem mais tolerante a peso grosseiro.
"Q2_K" quase não é 2 bits neste modelo. As regras de mistura do llama.cpp deixam só o
ffn_up em Q2_K; attn_qkv (categoria sensível, e somos MHA), attn_output e ffn_down
vão para Q3_K, e token_embd amarrado vai para Q6_K. Daí o Q3_K_S custar só 8 MB a mais
em vez dos 25% que a razão de bits sugeriria.
Quem define o piso é a recusa, não a acurácia. No IQ2_XXS a intenção ainda parece aceitável (84,3%), mas a recusa cai de 98,0 para 86,0 — 14% dos pedidos fora de escopo o modelo tenta executar em vez de dizer "não sei". O modelo perde a noção do próprio limite antes de perder a capacidade.
Métrica de recusa nunca se lê sozinha. O hard-OOS melhor de toda a matriz (61,3) é o do Q2_K sem imatrix — a pior configuração testada. Ao corrigir esse nível com imatrix, o modelo melhora em F1 e CALAME e o hard-OOS desaba para 44,0. Aquele 61 era um modelo degradado se escondendo no "desconhecido", não detecção de fronteira.
Acerto conjunto: 60,7%. Intenção certa e todos os campos certos ao mesmo tempo — a condição real para o app executar — contra 87,7% de intenção e 75,4 de F1 nos mesmos itens. O F1 dá crédito parcial por acertar dois campos de três; o usuário não. O gargalo do produto é extração de campos, não classificação. Considere este o número de referência.
- Downloads last month
- 47
4-bit