Views
No views yet
lm_head are 8 bit, and the audio encoder and its projector are left in bf16.| value | |
|---|---|
| size | 25 GB |
| average bits/weight | 8.71 |
| minimum RAM to run | ~34 GB (so 48 GB or more in practice) |
| speed (M1 Max, when it fits) | ~0.8x realtime — slower than the recording |
lm_head is quantised because a matching sweep showed it
makes no difference to accuracy while bf16 costs throughput.generate()
call; the check lives in noScribe, which
refuses it before a run starts.voxtral-small-8bit
and downloaded on first use; it appears in the model menu only where the machine
can actually hold it, and is refused before a run starts where it cannot. For
almost every recording the
3B Mini build
is the better choice — see above.voxtral branch of this
fork of kaixxx/noScribe.1from mlx_voxtral import load_voxtral_model, VoxtralProcessor
2import mlx.core as mx, soundfile as sf
3
4repo = "MarkusKaemmerer/Voxtral-Small-24B-2507-8bit-dense-encoder"
5model, _ = load_voxtral_model(repo, dtype=mx.bfloat16)
6proc = VoxtralProcessor.from_pretrained(repo)
7
8audio, sr = sf.read("speech.wav", dtype="float32") # 16 kHz mono
9inp = proc.apply_transcrition_request(audio=audio, language="de", sampling_rate=sr)
10out = model.generate(input_ids=inp.input_ids, input_features=inp.input_features,
11 max_new_tokens=4096, temperature=0.0, repetition_penalty=1.0)
12print(proc.decode(out[0, inp.input_ids.shape[1]:], skip_special_tokens=True))repetition_penalty=1.0. mlx-voxtral defaults to 1.2, a chat default
that in verbatim speech penalises punctuation and function words.1python tools/quantize_voxtral.py mistralai/Voxtral-Small-24B-2507 \
2 out-dir 8 64 dense-encoder --lm-head-bits 8tools/ and docs/voxtral-quantisierung.md.