license: apache-2.0
base_model: dima6312/Flint-40B-A2.5B-abliterated
base_model_relation: quantized
library_name: mlx
pipeline_tag: text-generation
language:
- en
tags: - mlx
- omlx
- oq
- apple-silicon
- moe
- flint
- bf16
- abliterated
- uncensored
Flint 40B-A2.5B abliterated — oQ8e · BF16 · M1-tested (MLX)
Family / Famille : oQ4e · oQ8e
🧭 Choose your quant / Choisissez votre quant
🇬🇧 This model comes in 2 sizes, one repo each. You are on the oQ8e page. Click the other size to switch:
🇫🇷 Ce modèle existe en 2 tailles, un dépôt chacune. Vous êtes sur la page oQ8e. Cliquez sur l'autre taille pour changer :
| Quant | Size / Taille | Best for / Idéal pour | Link / Lien |
|---|---|---|---|
| oQ4e | 23.4 GB | Smallest · for 32–48 GB Macs Le plus léger · pour les Mac de 32 à 48 Go |
➡️ Go to oQ4e / Aller à oQ4e |
| 📍 oQ8e | 42.3 GB | Closest to BF16 · same speed on M1 Max · for 64 GB+ Macs · our pick Le plus proche du BF16 · même vitesse sur M1 Max · pour les Mac de 64 Go et plus · notre choix |
← you are here / vous êtes ici |
📚 Both on one page / Les deux sur une seule page : Collection · Not sure? Read the TL;DR below. / Vous hésitez ? Lisez le TL;DR plus bas.
🇬🇧 English text first, 🇫🇷 French version right after each block. Tables are shared.
🇫🇷 Texte anglais d'abord, version française juste après chaque bloc. Les tableaux sont communs.
🇬🇧 Two mixed-precision oQ quantizations of
dima6312/Flint-40B-A2.5B-abliterated
(an abliterated version of RecursiveSI/flint: a 39.8B-parameter mixture-of-experts with about 2.5B active parameters per token), built and tested on an Apple M1 Max:
- 🛡️ BF16, on purpose, even on M1. Flint's activations exceed the FP16 range (see below), so scales, biases and non-quantized tensors stay in BF16. No NaN, no
!!!!: 0 non-finite positions out of 32,768 on WikiText-2. - 🚀 Fast, thanks to MoE. About 50 tok/s decode and 400–500 tok/s prefill on an M1 Max — as fast as Recursive's official MLX INT4 build on the same machine.
- 📝 Text only, no MTP. Flint has no multi-token-prediction head and no vision tower.
- 🎯 oQ8e: 0.077 mean KLD vs FP32 — below the model's own BF16 numerical floor (0.088).
🇫🇷 Deux quantifications oQ en précision mixte de
dima6312/Flint-40B-A2.5B-abliterated
(une version abliterée de RecursiveSI/flint : un mixture-of-experts de 39,8 milliards de paramètres, dont environ 2,5 milliards actifs par token), construites et testées sur un Apple M1 Max :
- 🛡️ BF16, volontairement, même sur M1. Les activations de Flint dépassent la plage du FP16 (voir plus bas) : échelles, biais et tenseurs non quantifiés restent donc en BF16. Aucun NaN, aucune sortie
!!!!: 0 position non finie sur 32 768 dans WikiText-2. - 🚀 Rapide, grâce au MoE. Environ 50 tok/s en décodage et 400 à 500 tok/s en préremplissage sur un M1 Max — aussi rapide que le build MLX INT4 officiel de Recursive sur la même machine.
- 📝 Texte uniquement, sans MTP. Flint n'a ni tête de prédiction multi-tokens ni tour vision.
- 🎯 oQ8e : KLD moyen de 0,077 face au FP32 — sous le plancher numérique BF16 du modèle lui-même (0,088).
🇬🇧 Coming next: oQ builds of more model families, and agentic / long-context benchmarks for Flint. Stay tuned! 🚀
🇫🇷 À venir : des builds oQ d'autres familles de modèles, et des tests agentiques et longs contextes pour Flint. Restez connectés ! 🚀
⬇️ Downloads / Téléchargements
🇬🇧 One repo per build, so every engine can load it by name. Pick one:
🇫🇷 Un dépôt par build, pour que chaque moteur puisse le charger par son nom. Choisissez-en un :
| Build | Size / Taille | Best for / Idéal pour | Repo | Download command / Commande |
|---|---|---|---|---|
| oQ4e | 23.4 GB | Smallest · for 32–48 GB Macs · Le plus léger · pour les Mac de 32 à 48 Go | Studio-Research-M1/Flint-40B-A2.5B-abliterated-oQ4e-BF16-MLX | hf download Studio-Research-M1/Flint-40B-A2.5B-abliterated-oQ4e-BF16-MLX --local-dir Flint-oQ4e |
| oQ8e (this repo / ce dépôt) | 42.3 GB | Closest to BF16 · same speed on M1 Max · for 64 GB+ Macs · our pick · Le plus proche du BF16 · même vitesse sur M1 Max · pour les Mac de 64 Go et plus · notre choix | Studio-Research-M1/Flint-40B-A2.5B-abliterated-oQ8e-BF16-MLX | hf download Studio-Research-M1/Flint-40B-A2.5B-abliterated-oQ8e-BF16-MLX --local-dir Flint-oQ8e |
TL;DR — which build should I download? / Quel build télécharger ?
🇬🇧 Unlike our dense-model families, Flint's 8-bit build is not slower than its 4-bit build on an M1 Max (decode 49.7 vs 48.2 tok/s at 1k, prefill even faster). Decoding is not limited by memory bandwidth here (our hypothesis: the MoE routing over 256 experts dominates). So:
- 64 GB Mac or more → oQ8e. Same speed, much closer to the original (KLD 0.077 vs 0.249 against FP32).
- 32–48 GB Mac → oQ4e. The oQ8e needs about 43 GB, beyond the default GPU memory limit of a 48 GB Mac.
🇫🇷 Contrairement à nos familles de modèles denses, le build 8 bits de Flint n'est pas plus lent que le 4 bits sur un M1 Max (décodage 49,7 contre 48,2 tok/s à 1k, préremplissage même plus rapide). Ici, le décodage n'est pas limité par la bande passante mémoire (notre hypothèse : le routage sur 256 experts domine). Donc :
- Mac de 64 Go ou plus → oQ8e. Même vitesse, beaucoup plus proche de l'original (KLD 0,077 contre 0,249 face au FP32).
- Mac de 32 à 48 Go → oQ4e. L'oQ8e demande environ 43 Go, au-delà de la limite mémoire GPU par défaut d'un Mac de 48 Go.
Memory guide / Guide mémoire (measured peaks on M1 Max, oMLX / pics mesurés sur M1 Max, oMLX)
| Build | Load (≈ disk size) | Peak, 1k prompt | Peak, 16k prompt | Mac RAM (our guidance / notre conseil) |
|---|---|---|---|---|
| oQ4e | 23.4 GB | 24.1 GB | 24.4 GB | 32 GB: borderline (not tested) · 48 GB: OK (not tested) · 64 GB: comfortable |
| oQ8e | 42.3 GB | 42.8 GB | 43.2 GB | 48 GB: too tight (default GPU limit ≈ 36 GB; not tested) · 64 GB: comfortable |
🇬🇧 Only the M1 Max 64 GB column is measured; the other RAM sizes are estimates. Flint's KV cache is small: 35 of its 49 layers use a 513-token sliding window, and the 14 full-attention layers have only 4 KV heads. From the published architecture we estimate about 28 KB per token in BF16, i.e. about 7.5 GB at the full 262,144-token context (not measured).
🇫🇷 Seule la configuration M1 Max 64 Go est mesurée ; les autres tailles de RAM sont des estimations. Le cache KV de Flint est petit : 35 de ses 49 couches utilisent une fenêtre glissante de 513 tokens, et les 14 couches à attention complète n'ont que 4 têtes KV. D'après l'architecture publiée, nous estimons environ 28 Ko par token en BF16, soit environ 7,5 Go au contexte maximal de 262 144 tokens (non mesuré).
Why BF16, even on M1? / Pourquoi du BF16, même sur M1 ? 🤔
🇬🇧 Our other M1-first builds use FP16, because M1 GPUs have no hardware BF16. Flint is the exception:
- In layer 46, the expert product
silu(gate) · uppeaks at about 90,000 (measured), above the FP16 maximum of 65,504. - In FP16 this overflows to
inf, thenNaN. Our first FP16 builds answered!!!!to simple prompts and gave non-finite logits on 50 to 60 % of WikiText-2 positions. - BF16 has the same exponent range as FP32, so the same value stays finite. And on our M1 Max, these BF16 builds run as fast as Recursive's official INT4 build (see Speed).
So: do not convert Flint to FP16, on any chip.
🇫🇷 Nos autres builds pensés pour M1 utilisent le FP16, car les GPU M1 n'ont pas de BF16 matériel. Flint fait exception :
- Dans la couche 46, le produit des experts
silu(gate) · upatteint environ 90 000 (mesuré), au-delà du maximum du FP16 (65 504). - En FP16, cela déborde en
inf, puis enNaN. Nos premiers builds FP16 répondaient!!!!à des prompts simples et donnaient des logits non finis sur 50 à 60 % des positions WikiText-2. - Le BF16 a la même plage d'exposants que le FP32 : la même valeur reste finie. Et sur notre M1 Max, ces builds BF16 tournent aussi vite que le build INT4 officiel de Recursive (voir Vitesse).
Donc : ne convertissez pas Flint en FP16, quelle que soit la puce.
Files at a glance / Fichiers en un coup d'œil
| oQ4e | oQ8e | Source BF16 | |
|---|---|---|---|
| Size on disk / Taille sur disque | 23.36 GB | 42.27 GB | 79.58 GB |
| Avg. bits (quantized weights) / Bits moyens (poids quantifiés) | 4.19 | 8.00 | 16 |
| Shards | 5 | 9 | — |
Quantization recipe / Recette de quantification (oQ / oQe)
🇬🇧 Both are built with the oQ quantizer of oMLX 0.7.3.dev2 with enhanced=true (imatrix-aware rounding), affine quantization, dtype=bfloat16, from the same importance matrix. Only oq_level changes.
🇫🇷 Les deux builds sont produits avec le quantificateur oQ d'oMLX 0.7.3.dev2, avec enhanced=true (arrondi guidé par l'imatrix), quantification affine, dtype=bfloat16, à partir de la même matrice d'importance. Seul oq_level change.
oQ4e (oq_level=4) |
oQ8e (oq_level=8) |
|
|---|---|---|
| Bit allocation (486 quantized modules) / Répartition des bits | Default 4 bits, group 64; 345 sensitive modules promoted to 8 bits (204 with group 64, 141 with group 128) | All 8 bits; 306 with group 64, 180 with group 128 |
| imatrix | oqe_code_multilingual, 512-token samples (128 requested, extended to 256 so every expert is seen); applied to 485 modules, 0 missing |
same |
| Non-quantized tensors / Tenseurs non quantifiés | 340 in BF16 | 340 in BF16 |
Quality vs the original / Qualité face à l'original
Weight fidelity / Fidélité des poids
🇬🇧 Every quantized module is dequantized and compared with BF16. Errors are parameter-weighted averages.
🇫🇷 Chaque module quantifié est déquantifié puis comparé au BF16. Les erreurs sont des moyennes pondérées par le nombre de paramètres.
| Build | Avg. bits | imatrix-weighted rel. error | Raw rel. error | Cosine |
|---|---|---|---|---|
| oQ4e | 4.19 | 7.40 % | 7.93 % | 0.99672 |
| oQ8e | 8.00 | 0.523 % | 0.573 % | 0.999983 |
Perplexity and KL divergence / Perplexité et divergence KL (WikiText-2 test)
🇬🇧 Protocol: 32 × 2048-token chunks; the second half of each chunk is scored (32,768 tokens). KL(reference ‖ quant) over the reference top-64 tokens plus one tail bucket (a lower bound of the exact KLD). The reference was computed layer by layer from the original BF16 weights.
🇫🇷 Protocole : 32 blocs de 2 048 tokens ; la seconde moitié de chaque bloc est évaluée (32 768 tokens). KL(référence ‖ quant) sur les 64 tokens les plus probables de la référence, plus un groupe pour le reste (borne basse du KLD exact). La référence a été calculée couche par couche à partir des poids BF16 d'origine.
| Comparison / Comparaison | PPL | Mean KLD | Median KLD | p99 KLD | Top-1 agreement |
|---|---|---|---|---|---|
| BF16 reference (BF16 compute) | 20.700 | — | — | — | — |
| Numerical floor: same BF16 weights, BF16 vs FP32 compute | 20.682 | 0.0879 | 0.0047 | 1.94 | 92.6 % |
| oQ8e, FP32 compute vs FP32 reference¹ | 20.681 | 0.0767 | — | 1.66 | 92.8 % |
| oQ4e, FP32 compute vs FP32 reference¹ | 20.844 | 0.2486 | — | 4.84 | 84.7 % |
| oQ8e, BF16 compute vs BF16 reference | 20.742 | 0.1006 | 0.0069 | 2.36 | 91.6 % |
| oQ4e, BF16 compute vs BF16 reference | 20.963 | 0.2460 | 0.0354 | 4.85 | 84.7 % |
¹ 🇬🇧 The FP32-compute rows were measured on our earlier FP16-scale builds made with the same recipe: identical quantized weights, up to the rounding of the scales. · 🇫🇷 Les lignes en calcul FP32 ont été mesurées sur nos premiers builds à échelles FP16, issus de la même recette : poids quantifiés identiques, à l'arrondi des échelles près.
🇬🇧 How to read it:
- Flint is numerically sensitive: even the unquantized weights drift by 0.088 KLD just by computing in BF16 instead of FP32. These KLD values are therefore not comparable with those of dense models.
- Measured without that noise (FP32 on both sides), the oQ8e (0.077) is below the BF16 floor: 8-bit quantization costs less than switching the compute to BF16. The oQ4e (0.249) shows a real but moderate quantization loss, about 3× the floor.
🇫🇷 Comment le lire :
- Flint est sensible numériquement : même les poids non quantifiés dérivent de 0,088 de KLD simplement en calculant en BF16 au lieu du FP32. Ces KLD ne sont donc pas comparables à ceux des modèles denses.
- Mesuré sans ce bruit (FP32 des deux côtés), l'oQ8e (0,077) passe sous le plancher BF16 : la quantification 8 bits coûte moins que le passage du calcul en BF16. L'oQ4e (0,249) montre une perte de quantification réelle mais modérée, environ 3 fois le plancher.
Speed on an M1 Max / Vitesse sur M1 Max (24-core GPU, 64 GB)
🇬🇧 All runs use oMLX 0.7.3.dev2, macOS 26.7.1, BF16 compute, 256 new tokens, batch 1.
🇫🇷 Toutes les mesures utilisent oMLX 0.7.3.dev2, macOS 26.7.1, le calcul en BF16, 256 nouveaux tokens, lot de 1.
vs Recursive's official MLX INT4 / face à l'INT4 MLX officiel de Recursive
🇬🇧 Streaming test, same machine, same engine, temperature 0, 2 runs per length, a unique prefix per run so the prompt cache cannot help. The official build (RecursiveSI/flint-int4) was repacked to load in oMLX (same bytes, uint8 viewed as uint32). It is the non-abliterated model: different weights, same architecture, so only speed is compared.
🇫🇷 Test en streaming, même machine, même moteur, température 0, 2 runs par longueur, un préfixe unique par run pour que le cache de prompt n'aide pas. Le build officiel (RecursiveSI/flint-int4) a été réemballé pour se charger dans oMLX (mêmes octets, uint8 vu comme uint32). C'est le modèle non abliteré : poids différents, même architecture, seule la vitesse est comparée.
| Build | Decode 1k / 4k / 16k (tok/s) | Prefill 1k / 4k / 16k (tok/s) | TTFT at 16k |
|---|---|---|---|
| Recursive INT4 (official) | 49.9 / 46.0 / 40.7 | 383 / 425 / 368 | 48.0 s |
| oQ4e | 48.2 / 45.4 / 39.5 | 406 / 452 / 364 | 48.6 s |
| oQ8e | 49.7 / 47.7 / 41.5 | 452 / 519 / 443 | 39.9 s |
🇬🇧 Recursive quotes 125+ tok/s on an M4 Pro with its own engine (Rec). We have not tested Rec, and M4 chips have native BF16; on an M1 Max with oMLX, all three builds land around 40–50 tok/s.
🇫🇷 Recursive annonce plus de 125 tok/s sur un M4 Pro avec son propre moteur (Rec). Nous n'avons pas testé Rec, et les puces M4 ont le BF16 natif ; sur un M1 Max avec oMLX, les trois builds se situent autour de 40 à 50 tok/s.
oMLX built-in benchmark / Banc intégré d'oMLX
| Build | Prefill 1k / 4k / 16k | TTFT at 16k | Decode 1k / 4k / 16k | Batch 4 at 1k (aggregate) |
|---|---|---|---|---|
| oQ4e | 450 / 496 / 421 tok/s | 38.9 s | 52.0 / 50.6 / 43.5 tok/s | 109.8 tok/s |
| oQ8e | 503 / 497 / 423 tok/s | 38.7 s | 45.9 / 45.7 / 39.7 tok/s | 97.1 tok/s |
🇬🇧 The two harnesses differ slightly (the oQ4e/oQ8e ranking at 1k flips by a few tok/s, within run-to-run variance); both agree that the 8-bit build costs no meaningful speed.
🇫🇷 Les deux outils de mesure diffèrent légèrement (le classement oQ4e/oQ8e à 1k s'inverse de quelques tok/s, dans la variance entre runs) ; tous deux montrent que le 8 bits ne coûte pas de vitesse notable.
Accuracy / Précision
🇬🇧 ⏳ Not measured yet. Flint reasons before answering even when thinking is disabled (1,000 to 8,700 tokens per question in our runs), which made our accuracy suite far too slow (~1.75 questions/min). We prefer showing nothing to showing a partial number. Upstream results for the abliterated model are on the base model card.
🇫🇷 ⏳ Pas encore mesurée. Flint raisonne avant de répondre même quand le raisonnement est désactivé (1 000 à 8 700 tokens par question dans nos runs), ce qui rendait notre suite de précision beaucoup trop lente (~1,75 question/min). Nous préférons ne rien afficher plutôt qu'un chiffre partiel. Les résultats amont du modèle abliteré sont sur la fiche du modèle de base.
Usage notes / Conseils d'utilisation
🇬🇧
- Flint reasons inside
<think>…</think>before answering; give it a generous token budget. - Upstream recommends temperature 1.0, top_p 0.95, top_k 20.
- Context: up to 262,144 tokens in the configuration (tested here up to ~18k).
🇫🇷
- Flint raisonne dans
<think>…</think>avant de répondre ; prévoyez un budget de tokens généreux. - L'amont recommande température 1,0, top_p 0,95, top_k 20.
- Contexte : jusqu'à 262 144 tokens dans la configuration (testé ici jusqu'à ~18k).
Compatibility / Compatibilité
| Engine / Moteur | Status / État |
|---|---|
| oMLX 0.7.3.dev2 | ✅ Tested: text, benchmarks above · Testé : texte, benchmarks ci-dessus |
mlx-vlm 0.7.10 (flint class) |
✅ Loads and runs (used in our diagnostics) · Se charge et fonctionne |
| mlx-lm | ⚠️ Needs Flint support; untested here · Nécessite le support de Flint ; non testé |
| LM Studio (MLX engine) | ⚠️ Untested · Non testé |
| llama.cpp / Ollama | ❌ MLX format; use a GGUF build instead · Format MLX ; utilisez plutôt un build GGUF |
⚠️ Uncensored model / Modèle non censuré
🇬🇧 The base model is abliterated: its refusal direction was removed. It may follow requests that aligned models refuse, and it may produce offensive, false or harmful content. You are responsible for how you deploy it: add your own safeguards, use it only on systems you are authorized to test, and do not expose it to end users without moderation. Quantization is not meant to change this behaviour.
🇫🇷 Le modèle de base est abliteré : sa direction de refus a été supprimée. Il peut répondre à des demandes que les modèles alignés refusent, et produire des contenus offensants, faux ou dangereux. Vous êtes responsable de son déploiement : ajoutez vos propres garde-fous, utilisez-le uniquement sur des systèmes que vous avez le droit de tester, et ne l'exposez pas à des utilisateurs finaux sans modération. La quantification n'est pas censée modifier ce comportement.
Reproducibility / Reproductibilité
🇬🇧
- Hardware: MacBook Pro M1 Max, 24-core GPU, 64 GB unified memory, macOS 26.7.1.
- Software: oMLX 0.7.3.dev2 (bundling mlx 0.32.4, mlx-lm 0.32.3.dev8, mlx-vlm 0.7.10).
- Source snapshot:
e7a627f372ddb6d41fa6f74971c8014e95565fb7. - Measured on 2026-10-28/31. Scripts: weight fidelity, streamed BF16/FP32 references and PPL/KLD (top-64 + tail), non-finite checks, oMLX throughput, streaming speed test. Available on request.
🇫🇷
- Matériel : MacBook Pro M1 Max, GPU 24 cœurs, 64 Go de mémoire unifiée, macOS 26.7.1.
- Logiciels : oMLX 0.7.3.dev2 (qui embarque mlx 0.32.4, mlx-lm 0.32.3.dev8, mlx-vlm 0.7.10).
- Snapshot source :
e7a627f372ddb6d41fa6f74971c8014e95565fb7. - Mesuré du 28 au 31/10/2026. Scripts : fidélité des poids, références BF16/FP32 en streaming et PPL/KLD (top-64 + reste), contrôles de valeurs non finies, débit oMLX, test de vitesse en streaming. Disponibles sur demande.
Credits / Remerciements
- dima6312 for the abliteration / pour l'abliteration, and Recursive for Flint / et Recursive pour Flint.
- oMLX and its oQ quantizer / et son quantificateur oQ, and the Apple MLX team / et l'équipe Apple MLX.
- KLD protocol adapted from community quantization comparisons (smcleod) / Protocole KLD adapté des comparatifs communautaires (smcleod).
🇬🇧 Happy local inferencing on your Mac! 🍏
🇫🇷 Bonne inférence locale sur votre Mac ! 🍏