Downloads · 30 days
29
28% of all-time downloads
pierjoe/limite-1b-violetto-mlx-4bit
limite-1b-violetto-mlx-4bit is a text generation model from pierjoe. Use it when you need the model to write or continue text. It is set up for mlx. The card lists the license as apache-2.0.
paradigma-inc/limite-1b-violetto converted for MLX on Apple Silicon. 4bit - Standard 4-bit. Works, but 4bit-hq is strictly better for a negligible size increase.
Downloads · 30 days
29
28% of all-time downloads
All-time downloads
103
Public
Parameters
1B
594 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors583 MB · 98%
How the weights are stored.
U321B · 100%
From the Hugging Face model README
paradigma-inc/limite-1b-violetto converted for MLX
on Apple Silicon. 4bit - Standard 4-bit. Works, but 4bit-hq is strictly better for a negligible size increase.
| size on disk | 0.55 GiB |
| effective bits/weight | 4.59 |
| KL divergence from bf16 | 0.25203 nats |
| top-1 agreement with bf16 | 82.2% |
| generation speed | 71 tok/s |
| peak memory | 0.61 GiB |
Speed and memory are measured on an M2 (8 GB) with mlx-lm 0.31.3. Fidelity is
measured on the deployed distribution rather than as raw perplexity, because this
model's head squashes logits into [0, 23] via 23 * sigmoid((raw + 5) / 7.5)
before sampling ever sees them.
limite is not one of mlx-lm's built-in architectures, so stock mlx-lm needs one
extra package to know how to build this model. It registers itself through a
sys.meta_path hook, so mlx-lm's own files are never modified and an mlx-lm
upgrade cannot break it:
pip install mlx-lm "limite-mlx @ https://huggingface.co/pierjoe/limite-mlx/resolve/main/limite_mlx-0.1.0-py3-none-any.whl"
Nothing to import and nothing to configure after that. The same file is also in
this repo as limite.py if you would rather drop it into
mlx_lm/models/ yourself.
mlx_lm.generate --model pierjoe/limite-1b-violetto-mlx-4bit \
--prompt "What is the remainder when 7^2026 is divided by 13?" \
--max-tokens 3000 --temp 0.6 --top-p 0.95
from mlx_lm import generate, load
model, tokenizer = load("pierjoe/limite-1b-violetto-mlx-4bit")
prompt = tokenizer.apply_chat_template(
[{"role": "user", "content": "How many positive divisors does 360 have?"}],
add_generation_prompt=True,
tokenize=False,
)
print(generate(model, tokenizer, prompt, max_tokens=3000))
The chat template is required. Without it the model emits <|endoftext|>
immediately. temperature=0.6 / top_p=0.95 are the upstream recommendation.
This is a reasoning model that writes long <think> passages, so budget
500-3000 tokens per answer.
Weights are untouched. Two things were fixed so the model is usable:
config.json and
generation_config.json say eos_token_id = 151645 (<|im_end|>), while
tokenizer_config.json says <|endoftext|> (151643). mlx-lm takes the id
from generation_config.json only, so generation never stopped and padded
output with <|endoftext|> until the token limit. Both ids are now set.tie_word_embeddings is required by this
architecture, so embed_tokens is also the output head and there is no
lm_head module. mlx-lm's stock mixed recipes key on the string lm_head,
so they silently push the output head to the lowest bit width. The -hq
variants protect it explicitly; see the 3bit vs 3bit-hq gap.The architecture was reimplemented from the reference vLLM plugin and checked against an independent NumPy oracle with bit-level bfloat16 emulation:
This architecture is unusually sensitive to rounding: its residual stream
reaches |h| ~ 1.5e5 by layer 47, and a single bfloat16 ULP perturbation at
layer 1 shifts the final logits by 1.26. That is why quantization KL values here
look higher than for a typical 1B model.
Apache-2.0, inherited from the original model. All credit for the model itself goes to Paradigma. The MLX port and quantization are mechanical work on top.
@misc{paradigma2026limite,
title = {{Limite 1B - Violetto}},
author = {Prignano, Mario and Cirillo, Gabriele and Morosini, Alessio and
Cerovaz, Luca and Bartolocci, Alessandro and Rodol\`a, Emanuele and
Starace, Giulio and Pappone, Francesco},
year = {2026},
howpublished = {\url{https://paradigma.inc/blog/limite-1b-violetto/}}
}