- स्ट्रीमिंग speech recognition को native environment और browser, दोनों में चलाने के लिए Rust-आधारित implementation है, जो Burn ML framework का उपयोग करता है
- मॉडल Mistral के Voxtral Mini 4B Realtime पर आधारित है, और WASM + WebGPU के जरिए browser tab में पूरी तरह client-side inference करता है
- Q4 GGUF quantized model (2.5GB) ब्राउज़र में चल सकता है, जबकि SafeTensors-आधारित F32 model (9GB) native environment में काम करता है
- browser constraints (2GB allocation, 4GB address space, GPU read limits आदि) को हल करने के लिए sharding, 2-stage loading, asynchronous tensor processing जैसी तकनीकें लागू की गई हैं
- यह Apache-2.0 license के तहत जारी किया गया है, और HuggingFace Spaces पर real-time demo आज़माया जा सकता है
Voxtral Mini 4B Realtime (Rust) का अवलोकन
- Mistral के Voxtral Mini 4B Realtime मॉडल को Rust और Burn ML framework में पूरी तरह implement किया गया है
- streaming speech recognition को local और browser environment में चलाया जा सकता है
- browser version WASM(WebAssembly) और WebGPU का उपयोग करके client-side पर चलता है
- Q4 GGUF quantized model (लगभग 2.5GB) ब्राउज़र में चलता है, जबकि F32 SafeTensors model (लगभग 9GB) native environment में उपयोग होता है
- HuggingFace Spaces पर real-time demo उपलब्ध है
आर्किटेक्चर
- input audio (16kHz mono) को Mel spectrogram में बदलने के बाद, यह encoder (32 layers) और decoder (26 layers) से होकर text में परिवर्तित होता है
- मुख्य processing steps
- Mel spectrogram → encoder (32 layers, 1280 dimensions) → Conv 4x downsample → adapter (3072 dimensions) → decoder (GQA 32Q/8KV)
- दो inference paths उपलब्ध हैं
- F32(native): SafeTensors-आधारित, Burn tensor operations का उपयोग
- Q4 GGUF(native + browser): GGUF Q4_0 quantization, custom WGSL shader का उपयोग
ब्राउज़र में चलाने के लिए तकनीकी समाधान
- ब्राउज़र में 4B मॉडल चलाने के लिए 5 constraints को हल किया गया
- 2GB allocation limit →
ShardedCursor से multi-buffer reading
- 4GB address space limit → 2-stage loading (parsing के बाद reader release, फिर finalization)
- 1.5GiB embedding table → GPU Q4 embeddings + CPU row lookup
- GPU synchronous read प्रतिबंधित →
into_data_async().await का उपयोग
- 256 workgroup limit → cubecl-wgpu patch से kernel size limit
Q4 padding correction
- डिफ़ॉल्ट mistral-common audio को 32 silent tokens से pad करता है, लेकिन यह decoder के 38 prefix में से केवल आधे को कवर करता है
- Q4_0 quantized model में इसके कारण ऐसे input पर त्रुटि होती है जहाँ speech तुरंत शुरू हो जाती है
- इसे ठीक करने के लिए padding को 76 tokens (=38 decoder tokens) तक बढ़ाया गया, ताकि पूरा prefix silence से भर जाए
build और test
- build options
- default:
cargo build --release (wgpu + native-tokenizer)
- browser के लिए:
wasm-pack build --target web --features wasm
- test
- GPU-आधारित unit और integration tests समर्थित हैं
- E2E browser tests Playwright + वास्तविक GPU environment में चलाए जाते हैं
- CI में GPU न होने के कारण संबंधित tests छोड़े जाते हैं
मॉडल तैयारी और sharding
license और resources
1 टिप्पणियां
Hacker News की राय
अगर लोगों की रुचि हो, तो @antirez ने Voxtral Mini 4B का C implementation जारी किया है
इसे antirez/voxtral.c पर देखा जा सकता है
मैं अपने fork version पर CUDA implementation और कुछ सुधार जोड़ रहा हूँ
यह काफ़ी अच्छा काम करता है, लेकिन अभी भी Mistral AI के API endpoint की स्पीड तक नहीं पहुँचता
सीधे कोड लिखने के बजाय लगता है कि पहले संबंधित सामग्री पढ़कर सीखना चाहिए, तो अगर कोई काम की guide हो तो अच्छा रहेगा
फ़र्क ठीक से नहीं पता, लेकिन community reaction इस तरफ़ ज़्यादा अच्छा लगता है
डेमो चलाकर देखा तो Mic बटन दबाकर रिकॉर्ड करने के बाद “Stop and transcribe” दबाना पड़ता है, तभी नतीजा मिलता है
क्या इसे सचमुच real-time mode में बनाया जा सकता है, जहाँ यूज़र के बोलने के 1–2 सेकंड के भीतर सबटाइटल तुरंत दिखने लगें?
Hugging Face का server demo GPU-आधारित 8.5GB मॉडल से वही कर रहा है
लेकिन ring buffer-आधारित UI बनाकर कुछ वैसा अनुभव दिया जा सकता है
मैं Flutter में Whisper को इसी तरह इस्तेमाल करता हूँ, और llama.cpp की GGUF inference भी Dart में चलाता हूँ
M4 Max पर भी यह real-time नहीं है, और Whisper 2022 के बाद के डिवाइसों पर ONNX के साथ लगभग real-time है
consumer hardware पर accuracy (WER) बढ़ाने से ज़्यादा inference speed महत्वपूर्ण लगती है
ऐसे on-premise open models ही वास्तव में ज़रूरी दिशा हैं
यूज़र और कंपनियाँ, दोनों ही इस तरह के रूप को पसंद करते हैं। लगता है Mistral ने इसे सही पकड़ा है
open models का दौर अब और दिलचस्प लगने वाला है
बढ़िया काम है। अच्छा होगा अगर यह handy.computer के साथ integrate हो सके, और यह भी जानना है कि streaming support की कोई योजना है या नहीं
पहला version शायद streaming support नहीं देगा
इसकी वजह से एक अच्छा tool पता चला, और अब सच में लगता है कि Voxtral support ज़रूरी है
मैं मॉडल्स के बारे में ज़्यादा नहीं जानता, लेकिन मैंने Nvidia Parakeet इस्तेमाल किया है और वह बहुत अच्छा चला
ऐसे 9GB मॉडल को real-time में इस्तेमाल करने के लिए क्या उसे लगातार GPU memory में लोड रखकर रखना पड़ता है, या हर बार लोड करना भी ठीक है?
छोटे वाक्य लगभग तुरंत, और लंबे वाक्य 1–3 सेकंड में बदल जाते हैं
AI से बातचीत जैसे उपयोग में थोड़ी accuracy loss का लगभग कोई मतलब नहीं है
Handy नाम के open source app (लिंक) में Parakeet V3 इस्तेमाल हो रहा है, लेकिन C implementation काफ़ी धीमा था
STT में स्पीड ही UX की कुंजी है
देरी तब आती है जब नया मॉडल बुलाना हो या बड़ा context बदलना हो
ज़्यादातर समय मॉडल पहले से लोड रहता है, इसलिए tokens per second मुख्य variable होता है
कई agents वाले जटिल setup में context switching की वजह से चीज़ें धीमी हो जाती हैं
ik_llama की prompt caching ऐसे हालात में स्पीड बढ़ाने में मदद करती है
संक्षेप में, जब तक आप बार-बार मॉडल या context नहीं बदलते, weights loading latency कोई बड़ी समस्या नहीं है
यह बात खटकती है कि एक browser tab 2.5GB मॉडल डाउनलोड करे और फिर थोड़ी देर बाद उसे हटा दे; यह कितना efficient है?
इंटरनेट स्पीड और storage सस्ती हुई है, फिर भी यह तरीका कुछ फ़िज़ूलखर्ची जैसा लगता है
client-side computation अच्छी बात है, लेकिन इस आकार के मॉडल server पर चलना ज़्यादा सही लगता है
लेकिन अगर LLM के लिए web API standard बन जाए, तो बात बदल सकती है
अगर browser यूज़र के पसंदीदा मॉडल से बात करके local/remote inference को abstract कर दे, तो अलग-अलग sites एक ही मॉडल share कर सकती हैं
अगर 2026 में 2.5GB local model ही समस्या है, तो फिर अब सुरक्षित मानने लायक बचता ही क्या है?
चीज़ें impossible → centralized → local की दिशा में बढ़ी हैं, और अगर इसकी कीमत 2.5GB है, तो यह काफ़ी स्वीकार्य लगती है
browser में चलना शानदार है, लेकिन मैं ऐसी दुनिया नहीं चाहता जहाँ websites background में 2.5GB डाउनलोड करें
Nano local storage में save होता है और sites के बीच share होता है, इसलिए उसे सिर्फ़ एक बार डाउनलोड करना पड़ता है
लगता है Mistral ऐसा नहीं करता
संबंधित आँकड़े इस ब्लॉग पोस्ट में दिए गए हैं
लेकिन package install या executable download की तुलना में browser sandbox environment ज़्यादा सुरक्षित लगता है
जल्द ही लोग शायद इसकी भी आदत डाल लेंगे :-)
मेरे environment (Firefox, Asahi Linux, M1 Pro) में यह ठीक से काम नहीं करता
मैंने “hello” कहा, और लगभग 1 मिनट बाद अजीब शब्द बार-बार आउटपुट होने लगे
एक सीधा सवाल है: Mistral जैसे open models की गुणवत्ता OpenAI या Anthropic की तुलना में कैसी है?
क्या personal machine पर private तरीके से LLM features इस्तेमाल करने लायक स्तर आ गया है,
या वे अभी भी commercial models से काफ़ी पीछे हैं?
दिलचस्प प्रोजेक्ट है, और burn framework का इस्तेमाल देखना भी अच्छा लगा
लेकिन Chromium के latest version में चलाया तो सिस्टम फ्रीज़ हो गया और OS ने forced shutdown कर दिया
मॉडल डाउनलोड होने के तुरंत बाद VPN connection भी टूट गया, जबकि bandwidth limit भी नहीं थी, इसलिए वजह समझ नहीं आई