alt.freeweights.deepseek / DeepSeek-V4-Flash-0731-2.4bit-mixed
From: mlx-community <huggingface.co/mlx-community>Newsgroups: alt.freeweights.deepseekSubject:

DeepSeek-V4-Flash-0731-2.4bit-mixed

Date: 2026-11-15Commit: 10001e0Signed: 2DC28CC7B26A283B ✓

Text generation model with 304.2B parameters. Safetensors weights, 92.8 GB in all. Published by mlx-community under MIT.

304.2B params92.8GBDeepSeek-V4-Flash-0731-2.4bit-mixedsafetensorspermissive
FactsParams304.2BSize92.8 GBFormatssafetensorsTasktext generationLicenseMITFrom sourcepermissive
$ fw get mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed
# manifest sha256 2abf7ac121a6… · 92.8 GB · 25 files
$ fw verify ./DeepSeek-V4-Flash-0731-2.4bit-mixed mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed
From sourceHosted (signed)mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixedLast check: 2026-11-15 05:00 UTC

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

Quantized of DeepSeek-V4-Flash-0731.

Works with

Overview

Size
92.8 GB
Weights
92.8 GB (safetensors)
Parameters
304.2B
Formats
safetensors
Task
text generation
License
MIT (permissive)
Files
25, each with a sha256
Publisher
mlx-community
Added
2026-11-15
Section
alt.freeweights.deepseek
Lineage

Original release from the publisher.

Base model: deepseek-ai/DeepSeek-V4-Flash-0731

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 05:00 UTCpassed

Model card

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

DeepSeek-V4-Flash-0731-2.4bit-mixed#

Mixed-precision MLX quantization of deepseek-ai/DeepSeek-V4-Flash-0731 (284B total, ~304B with MTP, ~13.8B active per token), at 2.44 bits/weight effective, 92.8 GB on disk. Produced with oMLX oQ level 2 enhanced and then hand-tuned: I requantized attention and the MTP experts myself, outside the oQ allocator, to get under 2.5 bpw without touching what the model actually needs. For Apple Silicon.

  • 92.8 GB on disk (86.5 GiB), down from 155 GB in the source's native FP8 e4m3 + FP4-expert format
  • 43 layers, 256 routed experts + 1 shared, top-6; MLA with grouped output projections, the sparse-attention indexer (index_topk 512), hyper-connections with Sinkhorn, YaRN to 1M context
  • All three DSpark MTP blocks are preserved (19.8B params)
  • Peak memory in my smoke test: 84.4 GB at short context, so this wants a 128 GB Mac
  • Converted and tested on a Macbook Pro M5 Max 128GB 40 GPU

Requirements#

oMLX 0.5.7 or newer. mlx-lm does not support the deepseek_v4 architecture. There are half a dozen open PRs (mlx-lm#1189 among them) and I haven't checked myself whether any of them work. oMLX loads this repo directly from the HF cache with no model setting.

The upstream checkpoint ships no chat template, and I kept it that way rather than inventing one. Use oMLX's apply_chat_template, as in Usage below.

Quantization#

The base is 2-bit affine at group size 128 and it carries the routed experts, which are 84% of the file. Everything read on every token got promoted: attention to 6 bits at group size 128, and the shared expert, embeddings and lm_head to 8 bits at group size 64. The MTP blocks' own experts sit at 3 bits, above the main model's 2, because there are only three of them and they cost almost nothing.

GroupTensorsBitsGroup sizeOn disk
routed experts (main model)129212877.9 GB
attention (wq_a/wq_b/wkv/wo_a/wo_b, compressor, indexer)39661284.0 GB
shared experts1388641.2 GB
embed_tokens, lm_head28641.1 GB
MTP routed experts931288.4 GB (whole MTP stack)

Output is standard MLX affine quantization, so no custom kernels or runtime are required.

Conversion check#

Smoke-tested after conversion with oMLX's loader, three ways: thinking mode greedy, chat mode greedy, and thinking mode at temperature 0.6 with repetition penalty 1.1. Coherent in all three, English throughout, solved 17 * 24 = 408 by the distributive property with the <think> block opening and closing correctly. No repetition loops. Greedy decoding is the thing to check on a build this aggressive: the earlier uniform 2-bit attempts only held together with sampling on, and collapsed into repeated fragments or drifted into Chinese mid-answer under greedy.

Performance#

Measured with oMLX's benchmark harness on a Macbook Pro M5 Max 128GB 40 GPU, single request, 128 generated tokens, speculative decoding off.

promptgen tok/sprefill tok/sTTFT mspeak GB
1k36.1498.3205579.76
4k33.8431.6949079.77
8k33.1371.12207879.86
16k32.6352.64647080.17
32k31.5336.69734780.80

Two things worth pointing out. Generation barely degrades with context, 33.8 tok/s at 4k against 31.5 at 32k, which is the sparse-attention indexer doing its job: index_topk 512 bounds how many tokens enter the attention computation regardless of prompt length. And peak memory rises by 1.03 GB across an 8x jump in context, because MLA compresses the KV cache hard. That is what makes a 304B model with 32k of context livable on a 128 GB machine. The cost sits in prefill: 97 seconds to first token at 32k.

Continuous batching at 1k prompt / 128 generated:

batchtg tok/sspeedupTTFT msE2E s
136.11.00x20555.61
243.91.22x471410.54
464.11.78x748816.92
883.22.30x1551128.30

Accuracy#

mmlu_pro, n=600 seeded samples, thinking off, greedy, identical questions on both rows. The bf16 row is the hosted API measured the same way, through an OpenAI-compatible endpoint with the same prompts, the same max_tokens and temperature 0. Standard error at this n is about 2 points on each row.

VariantSizebpwmmlu_pro (n=600)
DeepSeek-V4-Flash-0731-2.4bit-mixed (this repo)92.8 GB2.440.573
DeepSeek V4 Flash 0731 (API, bf16)—160.647

That is 7.3 points below full precision, which at this sample size sits around 2.6 standard errors: enough to point at a real loss, not enough to pin its size. A drop of roughly this shape is what you would expect from quantization at 2.44 bpw, and I would treat it as such rather than as a measured constant.

Treat this as a rough sighting, not a verdict. One benchmark at n=600 covers a narrow slice of what the model does, with no long-context work, no agentic loops and no real code, which is most of what this checkpoint was built for. I ran it to size the cost of the bit-width, not to certify the model. Test it on your own workload before trusting any of it.

Usage#

# oMLX discovers this from the HF cache and serves it as deepseek-v4-flash-0731-2-4bit-mixed
omlx serve
from omlx.utils.model_loading import load_text_model
from omlx.patches.deepseek_v4.chat_template_v4 import apply_chat_template
from mlx_lm import generate
from mlx_lm.sample_utils import make_sampler

model, tok = load_text_model("mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed")
prompt = apply_chat_template(
    [{"role": "user", "content": "Explain Bayes' theorem in two sentences."}],
    add_generation_prompt=True,
    thinking_mode="thinking",   # or "chat"
)
print(generate(model, tok, prompt, max_tokens=512, sampler=make_sampler(temp=0.0)))

License#

MIT, inherited from the base model. Refer to the original model card for architecture, benchmarks, and intended use.

Files

25 files · 92.8 GBWeights 92.8 GB (safetensors). Sizes and sha256 from the signed manifest.
Show all 25 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md6.73 KB2a558395e99de1d83aa3a59965caad0c25214c049ba63ce2acb61c50c8025d77
config.json127 KB44735712733fcf8f299bdf1faa1d87fac88f1917efe1d3876d6d4c582f79a68f
generation_config.json170 B5fccff80f55a4d455bbe516bdd552edf3e9623df95e99fbf2a3c3389fdf91af0
model-00001-of-00018.safetensors3.96 GB25fa95fe9ad4623e51662af5e963d95bc2f983ba3bcd883a5e891b184063c895
model-00002-of-00018.safetensors4.92 GB94da15caf6d45dfba6de48d7e84b5c5b8b9528226dcd98c1a24e6ebadbf791be
model-00003-of-00018.safetensors5.44 GBb896348a3d6142d3566bda24d43193809ef8ed98a36d05a177e851f36d4204d3
model-00004-of-00018.safetensors5.44 GB0a55451c72dcd6f3d84f6969e905ab10fd21e01f02f8b4c6a9c7a5b5d7ccec9c
model-00005-of-00018.safetensors5.44 GB76488d6d8ab51522aafc773825eba76d93332de3c9005d3c2fe6fd8d44cf0602
model-00006-of-00018.safetensors5.44 GB5d60b0dbac08f495d4571f8d192ec0d58c5c34e99911c588f61b027b04da6e1e
model-00007-of-00018.safetensors5.44 GB6748e0c786aa678803072f97cb2279eb99da9bdc0f3067360c0c194226a74840
model-00008-of-00018.safetensors5.44 GB91f23157b1f5570ffec949d36078acdc78f0fb6b9d396b60702f5456c42c8e8f
model-00009-of-00018.safetensors5.44 GB122d4728f119bd8da076b83a0c34c3e5bf0cb999d2187256079bb951b113ff91
model-00010-of-00018.safetensors5.44 GB47f10422c1b22af6ccc855c127d140ba77fde023473c9e30d3cc1fdfa94ca73a
model-00011-of-00018.safetensors5.44 GBc5ef2f9eb6d7b7a75da2d810cb2f1836c5c07b633ecb58ed8f30515d03f8147e
model-00012-of-00018.safetensors5.44 GB2aa697cf8bfb9971077d7310faa0dd570dd82d5a3b6566aed168f56c7a5ab2b4
model-00013-of-00018.safetensors5.44 GB8e9438368fc3e8be5fba7353eb0831f025c6b9584578e33964ec0c445c68042f
model-00014-of-00018.safetensors5.44 GB46caaa32cc34f96b104f1ead6be8eb62efdb1300a2e4bb38bd799675fbea33fe
model-00015-of-00018.safetensors5.44 GB4844258126308afe3fc519865cd868ede29bd323a4703ec27a05ec2e5aa98bd2
model-00016-of-00018.safetensors5.44 GB82c8d797b67698528852e1d1073ef26cc6e2fa27e85eb2be03956eb19360e9fb
model-00017-of-00018.safetensors4.36 GB77e492dfc5bb9e2cb6d418d3c75d4995c0bccb2623f6fd956e8fc9a5d20e0d14
model-00018-of-00018.safetensors3.49 GB579e08970fe4f5802bea6ff748a5e95615d5d00c57305856e1fd222c6613ff45
model.safetensors.index.json217 KBf1332b2b209769c2db335954c2651652a8048e7d7dbf60296c2f2c0198715861
tokenizer.json6.37 MB8f9f37ca37fdc4f5fd36d5cf4d3b0e8392edb4e894fd10cc0d70b4957c8633cf
tokenizer_config.json801 B6ac8c8dc065ed118161d02dd532749ae3f52c243deac27872134fae2f50d8547
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
10001e0065 pinned now2026-11-15 05:00 UTC25 files · 92.8 GB

Use it

$ fw get mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed
# manifest sha256 2abf7ac121a6… · 92.8 GB · 25 files
$ fw verify ./DeepSeek-V4-Flash-0731-2.4bit-mixed mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed.json --dir ./DeepSeek-V4-Flash-0731-2.4bit-mixed $ python3 fw.py verify ./DeepSeek-V4-Flash-0731-2.4bit-mixed ./mlx-community__DeepSeek-V4-Flash-0731-2.4bit-mixed.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed --revision 10001e0065f8394e03e968e652cbbe7cd2ca122c --local-dir ./DeepSeek-V4-Flash-0731-2.4bit-mixed
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/DeepSeek-V4-Flash-0731-2.4bit-mixed", revision="10001e0065f8394e03e968e652cbbe7cd2ca122c") model = AutoModelForCausalLM.from_pretrained("mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed", revision="10001e0065f8394e03e968e652cbbe7cd2ca122c", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed --revision 10001e0065f8394e03e968e652cbbe7cd2ca122c

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
2a558395e99de1d83aa3a59965caad0c25214c049ba63ce2acb61c50c8025d77
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.deepseekSubject: DeepSeek-V4-Flash-0731-2.4bit-mixedDate: 2026-11-15Commit: 10001e0Signed: 2DC28CC7B26A283B ✓
Upstream
mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed
Pinned commit
10001e0065f8394e03e968e652cbbe7cd2ca122c
Manifest
DeepSeek-V4-Flash-0731-2.4bit-mixed.json · .minisig
Manifest sha256
2abf7ac121a6b9febb8f43ba4506afdc31765799a7441b162815a9a4b33b89aa
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 05:00 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed.json $ curl -O https://freeweights.allternit.com/manifests/mlx-community/DeepSeek-V4-Flash-0731-2.4bit-mixed.json.minisig $ minisign -Vm DeepSeek-V4-Flash-0731-2.4bit-mixed.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

deepseek-ai/DeepSeek-V4-Flash-0731 · 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/DeepSeek-V4-Flash-0731-2.4bit-mixed
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. DeepSeek-V4-Flash-0731-2.4bit-mixed.json. Provenance. Takedown history: none.
From: timm <huggingface.co/timm>Subject: deepseek_vit_412m.deepseek_v4_1_flash
From: bartowski <huggingface.co/bartowski>Subject: deepseek-ai_DeepSeek-R1-0528-GGUF
From: bartowski <huggingface.co/bartowski>Subject: deepseek-ai_DeepSeek-R1-0528-Qwen3-8B-GGUF
From: bartowski <huggingface.co/bartowski>Subject: deepseek-ai_DeepSeek-V3-0324-GGUF
From: bartowski <huggingface.co/bartowski>Subject: deepseek-ai_DeepSeek-V3.1-GGUF
From: mlx-community <huggingface.co/mlx-community>Subject: deepseek-ai-DeepSeek-V4-Flash-8bit