alt.freeweights.text / flint-mixed-3-4bit
From: mlx-community <huggingface.co/mlx-community>Newsgroups: alt.freeweights.textSubject:

flint-mixed-3-4bit

Date: 2026-11-15Commit: b1c3058Signed: 2DC28CC7B26A283B ✓

Text generation model with 39.8B parameters. Safetensors weights, 17.8 GB in all. Published by mlx-community under Apache-2.0.

39.8B params17.8GBflint-mixed-3-4bitsafetensorspermissive
FactsParams39.8BSize17.8 GBFormatssafetensorsTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get mlx-community/flint-mixed-3-4bit
# manifest sha256 679d56465f6e… · 17.8 GB · 16 files
$ fw verify ./flint-mixed-3-4bit mlx-community/flint-mixed-3-4bit
From sourceHosted (signed)mlx-community/flint-mixed-3-4bitLast check: 2026-11-15 04:51 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of flint-int4.

Works with

Overview

Size
17.8 GB
Weights
17.8 GB (safetensors)
Parameters
39.8B
Formats
safetensors
Task
text generation
License
Apache-2.0 (permissive)
Files
16, each with a sha256
Publisher
mlx-community
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: RecursiveSI/flint-int4

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 04:51 UTCpassed

Model card

From the publisher at commit b1c3058. Shown as plain text with links; images open at the publisher.

Flint for 24 GB Macs (MLX, 3-bit, 17.8 GB)#

Run Recursive Flint, the 40B coding model, on a 24 GB or 32 GB Apple Silicon Mac.

Recursive's own builds need more memory: their INT4 is 22.6 GB, and their rec app asks for 48 GB. This build is 17.8 GB and peaks at about 19.5 GB in use. In our tests it solved the same tasks as Recursive's INT4.

Unofficial community build, not released or endorsed by Recursive.

Converted and measured by Navneet Sharma (@Nav8ha).

Quick start#

1. Install mlx-vlm. Version 0.7.10 and later can run Flint:

pip install -U mlx-vlm

2. On a 24 GB Mac only: let the GPU use more memory. By default macOS gives the GPU about 16 GB on a 24 GB Mac. This raises it to 20 GB until the next restart. Skip this step on 32 GB Macs.

sudo sysctl iogpu.wired_limit_mb=20480

3. Run it. Keep these sampling settings: they are Recursive's recommendation.

mlx_vlm.generate --model mlx-community/flint-mixed-3-4bit --temperature 1.0 --top-p 0.95 --top-k 20 \
  --max-tokens 32768 --prompt "Write a Python function that merges overlapping intervals."

For coding agents (pi, OpenCode, anything that speaks the OpenAI API), start a local server and send temperature 1.0, top_p 0.95, top_k 20 with each request. The model's thinking comes back separately from its answer.

mlx_vlm.server --model mlx-community/flint-mixed-3-4bit --port 8080

Agent tool calls: in mlx-vlm 0.7.10, Flint sometimes uses wrong argument names (for example path instead of filePath), so some tool calls fail and the agent retries. In our OpenCode test, 41 of 85 calls failed, but all tasks still passed. A fix that keeps tool calls inside each tool's schema is in review (mlx-vlm #2571). Once it's released, add --constrain-tool-calls to the server command.

Prefer mlx-lm? Flint support is in PR #1998, not yet released: pip install "mlx-lm @ git+https://github.com/ml-explore/mlx-lm@refs/pull/1998/head", then mlx_lm.generate / mlx_lm.server with --temp 1.0 --top-p 0.95 --top-k 20.

Tips for 24 GB: close heavy apps (browsers with many tabs, design tools). Flint thinks before it answers, often 10–30K tokens, so give it room: keep total context around 32K.

What to expect#

Recursive INT4This build
Size on disk22.6 GB17.8 GB
Smallest Mac48 GB (rec)24 GB (with step 2)
Coding tasks we ran (6)6/66/6
Picks the same next token as the INT4—86% of the time
Speed in mlx-vlm, M5 Max—76–119 tokens/s (slower as output grows)

Not tested on a real 24 GB Mac yet. The fit comes from the peak memory we measured on a 64 GB Mac. If you run it on 24 or 32 GB, please post your memory use and speed in the Community tab, so others know what to expect.

How it was made#

Recursive's INT4 has trained 4-bit weights, so it is a better starting point than the full 16-bit checkpoint. We cut only the routed experts (95% of the weights) from 4 to 3 bits, choosing for each group of 64 weights the scale with the smallest rounding error. Attention, embeddings and the output layer keep Recursive's trained values.

Full numbers and method

Starting point. Recursive's INT4 beats a plain 6-bit quant of the BF16 checkpoint, so BF16 is the wrong source for small Flint builds:

BuildSizePerplexity ↓
Recursive INT4 (trained)22.6 GB4.62
6-bit from BF16~30 GB4.86
3-bit experts + 6-bit rest, from BF1617 GB5.19
3-bit experts + 4-bit rest, from BF1616 GB8.44
This build (3-bit experts from INT4)17.8 GB4.42

A lower perplexity than the INT4 does not mean "better than the INT4". The predictions moved, and on this code they happened to favour the true next token.

Closeness to the INT4. 48 × 1,024 tokens of private code (Swift, Python, TypeScript), not in any training set. KL over the reference top-32 tokens plus one bucket for the rest. Self-check (INT4 vs itself): KL 0.0000, 100%.

BuildKL ↓Top-1 agreement ↑
This build0.34386.2%
3-bit experts from INT4, plain min/max scales0.33285.9%
6-bit from BF16 (~30 GB)0.34186.4%
3-bit experts + 6-bit rest, from BF160.49082.3%

Flint is sensitive to quantization in general: unsloth's charts show their Q8_0 GGUF at about 92% top-1 against BF16.

Tasks. A 43-test expression parser (precedence, errors, edge cases) and a reversing-Josephus puzzle, 3 seeds each, temperature 1.0 / top-p 0.95 / top-k 20, 32K output budget. INT4: 6/6. This build: 6/6, plus 3/3 parser runs in mlx-vlm 0.7.10. A small check, not a benchmark: no SWE-bench or Terminal-Bench.

Speed (M5 Max 64 GB, runs alternated to cancel out heat):

EngineBuildOutput tokensTokens/s
rec 0.1.0Recursive INT48.8K117
rec 0.1.0, one local check relaxedthis build8.4K117
mlx-vlm 0.7.10this build14.0K119
mlx-vlm 0.7.10 serverthis build16.7K / 22.2K91 / 76
mlx-lm (PR #1998)this build26.6K76

rec 0.1.0 already contains a 3-bit-expert path, but its checkpoint check accepts only 4-bit experts. We relaxed that check in a local copy to measure speed; that is not a supported setup. If Recursive ships its own (trained) 3-bit build, prefer theirs.

Method.

  1. Load Recursive's INT4. Its weights are packed as uint8; mlx-lm expects uint32, so view each packed weight as uint32 (same bit layout).
  2. For each routed-expert projection (switch_mlp.{gate,up,down}_proj): dequantize, then quantize to 3 bits, group size 64. Per group, try clip ratios 1.0, 0.95 … 0.70 of the group's min/max and keep the lowest squared error.
  3. Leave everything else as is. The router (mlp.gate) stays BF16.

Scripts in this repo: experts3_from_int4.py (build), eval_kl.py (KL, top-1, perplexity).

Limits. Not trained for 3-bit (a QAT 3-bit from Recursive would likely be better). Small evaluation. All numbers from one 64 GB M5 Max.

License#

Apache 2.0, same as Flint. Model by Recursive. See LICENSE.

Files

16 files · 17.8 GBWeights 17.8 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 16 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
LICENSE11.4 KB43070e2d4e532684de521b885f385d0841030efa2b1a20bafb76133a5e1379c1
README.md6.77 KB5b9994955424a87a6a228e4d8730213dd199e88ef00998a58ad436493a47ea6d
chat_template.jinja2.33 KB7940f4ffa3275c36caa4a582f845aaad79da11018b3961e8fbcad6ae29733466
config.json30.5 KB4d13bc57eeaf5c24abcb56b9fcd1a15af2420157b8e80ab57dcf988de06c2f70
eval_kl.py3.66 KBffaad28cbfb2ee9f85349fc4f236b01f7bcf9953a0c70416343e9906db64bf81
experts3_from_int4.py2.76 KBf55f41d0cfa747a37b7ffedbeeb8b49600a6f0d06ce3630e9caf4ba347e076a1
generation_config.json202 Ba499c71895e008abd572558a5ad5904feaed92cf2a3b6e2cb0e9cabf03b96ed3
model-00001-of-00004.safetensors5.30 GBd05c6bcf0836f5f80ac7f74f70cfd679a42876d5637e3c998a990bd561add84d
model-00002-of-00004.safetensors5.36 GB944ab77d484cb3b2e8f464bd98c1e377441ed3aeaecbadaf0f28b16729922ff9
model-00003-of-00004.safetensors5.29 GB33dc84f510cd4f83003e602920221833ce219adccc819b9d5369a13b8120b531
model-00004-of-00004.safetensors1.88 GBadc1057c1e9e9cfa1a73655c20136bcfb9078dbbf90a21d4a69df3ee30276417
model.safetensors.index.json159 KBd2013f38b5be074831214ff03f9717a1027a16b08ddcbc95944fd06769248910
special_tokens_map.json20.2 KBbe37b302338dda189bc70bfbe902d8faebeb5986d60c1342713439eefc4ca182
tokenizer.json10.9 MBa263cce0b7e2b03f7ee07ce809783ef4b47f160c3f268a4ea1524f638da45b68
tokenizer_config.json30.4 KB159ac88217e90ffd0a4a294726048bb302829e82e1958dc85bb203aa79138fbf
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
b1c305855a pinned now2026-11-15 04:51 UTC16 files · 17.8 GB

Use it

$ fw get mlx-community/flint-mixed-3-4bit
# manifest sha256 679d56465f6e… · 17.8 GB · 16 files
$ fw verify ./flint-mixed-3-4bit mlx-community/flint-mixed-3-4bit
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/mlx-community/flint-mixed-3-4bit.json --dir ./flint-mixed-3-4bit $ python3 fw.py verify ./flint-mixed-3-4bit ./mlx-community__flint-mixed-3-4bit.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mlx-community/flint-mixed-3-4bit --revision b1c305855ae7c3464813815be4dbd544b22c36aa --local-dir ./flint-mixed-3-4bit
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("mlx-community/flint-mixed-3-4bit", revision="b1c305855ae7c3464813815be4dbd544b22c36aa") model = AutoModelForCausalLM.from_pretrained("mlx-community/flint-mixed-3-4bit", revision="b1c305855ae7c3464813815be4dbd544b22c36aa", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve mlx-community/flint-mixed-3-4bit --revision b1c305855ae7c3464813815be4dbd544b22c36aa

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
LICENSE
Text sha256
43070e2d4e532684de521b885f385d0841030efa2b1a20bafb76133a5e1379c1
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: mlx-community <huggingface.co/mlx-community>Newsgroups: alt.freeweights.textSubject: flint-mixed-3-4bitDate: 2026-11-15Commit: b1c3058Signed: 2DC28CC7B26A283B ✓
Upstream
mlx-community/flint-mixed-3-4bit
Pinned commit
b1c305855ae7c3464813815be4dbd544b22c36aa
Manifest
flint-mixed-3-4bit.json · .minisig
Manifest sha256
679d56465f6eb54b14c6fd819efc552c1dfc3f5b912552c25221b31a0c560dd4
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 04:51 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/mlx-community/flint-mixed-3-4bit.json $ curl -O https://freeweights.allternit.com/manifests/mlx-community/flint-mixed-3-4bit.json.minisig $ minisign -Vm flint-mixed-3-4bit.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

RecursiveSI/flint-int4 · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mlx-community/flint-mixed-3-4bit
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. flint-mixed-3-4bit.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B