Downloads · 30 days
95
41% of all-time downloads
Magurofg/pocket-lm-269m
pocket-lm-269m is a text generation model from Magurofg. Use it when you need the model to write or continue text. The card lists the license as apache-2.0.
Modelo de linguagem decoder de 269M de parâmetros, treinado do zero em português, feito para rodar offline em celulares de entrada (177 MB, ou 169 MiB, em Q4KM. Velocidade medida, não estimada: 18,3 fichas/s com 1 núc…
Downloads · 30 days
95
41% of all-time downloads
All-time downloads
231
Public
Repo size
1.6 GB
Likes
1
Public
Click a slice to open those files.
.pt1.1 GB · 66%
From the Hugging Face model README
Modelo de linguagem decoder de 269M de parâmetros, treinado do zero em português, feito para rodar offline em celulares de entrada (177 MB, ou 169 MiB, em Q4_K_M. Velocidade medida, não estimada: 18,3 fichas/s com 1 núcleo, 33,5 com 2 e 36,3 com 4 num Galaxy A14 5G (Dimensity 700, 3,6 GB) — aparelho de entrada, medição em 06/08/2026 no AWS Device Farm com este mesmo GGUF; e 80 fichas/s num Dimensity 9500s. Comando de voz responde em menos de 1 s no A14).
Nenhum peso de terceiros: outras IAs participaram apenas como professoras (geração e filtragem de dados), nunca como fonte de pesos.
Código de treino, receitas, bases e medições da família 269M: github.com/MaxxArtes/pocket-lm-269m. Réguas de avaliação e lições de medição (incluindo resultados negativos): github.com/MaxxArtes/pocket-lm-notas.
Família nesta conta: pocket-lm-269m-generica, -conversa, -executor (bases de
pré-treino em safetensors) e -adapter-app, -adapter-whats (SFT experimentais). O
artefato recomendado para uso é o pocket-assistente-v2-q4_k_m.gguf deste repositório.
pocket-assistente-v2-q4_k_m.gguf (177 MB) substitui o pocket-assistente como
artefato recomendado. Receita: média de pesos (model soup) entre dois estágios de
treino da mesma base — sem retreino, mesma arquitetura, mesma velocidade.
| métrica | v1 (pocket-assistente) | v2 |
|---|---|---|
| CALAME-PT (última palavra) | 48,2 | 51,1 |
| LAMBADA-PT | 38,4 | 42,2 |
| Intenção (MASSIVE-BR, 1035) | 87,7 | 87,1 (empate estatístico, McNemar p=0,32) |
| F1 de campos | 78,0 | 77,6 |
| 5-shot (aprender com exemplos no prompt) | 9,3 | 54,0 |
| ifeval-pt (seguir restrições, estrito) | — | 40,6 |
| Rejeição fora de escopo (limiar 0,05) | 99,5% | não confirmado |
| Rejeição fora de escopo difícil (limiar 0,02) | 74,5% | não confirmado |
Os valores de rejeição fora de escopo da v2 foram retirados até haver uma medição reproduzível.
O salto de 5-shot (9→54) habilita personalização por exemplos no próprio prompt —
a maior capacidade nova da família. Configuração recomendada: temperature 0.8,
repeat_penalty 1.3, EOS nativo do template (id 199). Para segurança máxima em
comandos, use o limiar de confiança 0,02, que rejeita mais pedidos fora de escopo ao
custo de ~5% de falsa rejeição em comandos válidos; o limiar 0,05 mantém o equilíbrio
da v1.
pocket-lm-269m-q4_k_m.gguf, 05/08/2026; externos medidos em 19/08)| benchmark | Pocket-LM 269M | referência |
|---|---|---|
| LAMBADA-PT (n=5.153) | 36,85 | melhor entre os modelos treinados para português de porte comparável (Tucano-1b1: 34,70 com 250B fichas). Na mesma régua, modelos multilíngues maiores vão além: Qwen2.5-0.5B 41,55, TinyLlama-1.1B 43,20, Llama-3.2-1B 49,21 (medidos por nós em 19/08) |
| 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 (reexecução posterior na esteira nova: 41,56) |
Ressalva de sobreposição com o CALAME-PT (08/09/2026). Uma varredura por 13-gramas no material de treino do projeto achou correspondência para 155 das 2.076 frases (7,5%). Sobreposição não prova que o modelo memorizou essas frases, e a varredura cobriu mais texto do que este modelo viu. Até publicarmos o CALAME das 1.921 frases sem correspondência detectada, leia as comparações de CALAME com modelos externos com essa ressalva. O LAMBADA-PT não foi varrido.
Retiramos a linha do MultiBLiMP (96,3%): não há script público que reproduza o número.
Total de treino: 16,2 bilhões de fichas únicas — cerca de 15× menos que o comparável mais próximo (Tucano-1b1, 250B).
Correção (21/08/2026). Publicamos antes 25,4 bi. Ao auditar o treino distribuído descobrimos que os 4 processos liam o mesmo lote: a última fase varreu 25% do corpus, quatro vezes cada ficha. As fichas únicas foram 3,08 bi, não 12,31 — e o acumulado, 16,2 bi. O defeito está corrigido no código. O número menor reforça a eficiência do modelo: os resultados abaixo foram obtidos com menos dado do que anunciávamos. Avaliação pareada por item; detalhes e réguas no repositório do projeto.
pocket-lm-269m-conversa e pocket-lm-269m-executor foram pré-treinadas
do zero (inicialização aleatória) sobre o mesmo corpus da última fase, sem a fase
ClassiCC-PT. A fase final da conversa usou diálogos gerados por Qwen2.5-14B-Instruct
(modelo Apache-2.0; a licença do professor, sozinha, não define a dos textos gerados).
A origem do dado de ações da fase final do executor ainda não está documentada aqui.llama-cli -m pocket-lm-269m-q4_k_m.gguf -p "O Brasil é um país" -n 50 -t 4
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).
pocket-assistente-q4_k_m.gguf (177 MB, substituído pelo v2 em 28/08) — 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 de 06/08; a tabela v2 acima usa outra régua, n=1.035, onde este arquivo faz 87,7 / 78,0): 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.
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"
| 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.
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.
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 funcionou no nosso teste: custou 5 pontos de intenção e degradou a conversa.
Conversa (correção de 11/08/2026). Publicamos antes 24,4% de coerência (n=160). Aquela avaliação usou a rubrica de qualidade de dado de treino, não a de "a resposta faz sentido?". Uma avaliação nova, em outro conjunto (n=52, não pareada com a antiga), sobre o adapter de conversa experimental (LoRA r=16 sobre a base pura, decodificação gulosa) e com juiz binário de três famílias de modelo, deu 77–81% no geral e 34/40 (85%) nos pedidos dentro do escopo do produto (saudação, dica curta, apoio). Pedidos abertos e generativos ("conte uma história") ficaram em ~50% (n=12) e tendem a repetir. Não testamos se um modelo maior resolve a conversa aberta.
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.
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.