4 पॉइंट द्वारा GN⁺ 2026-02-11 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • स्ट्रीमिंग 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 को हल किया गया
    1. 2GB allocation limitShardedCursor से multi-buffer reading
    2. 4GB address space limit → 2-stage loading (parsing के बाद reader release, फिर finalization)
    3. 1.5GiB embedding table → GPU Q4 embeddings + CPU row lookup
    4. GPU synchronous read प्रतिबंधितinto_data_async().await का उपयोग
    5. 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

  • browser के ArrayBuffer limit (512MB से कम) के लिए GGUF file को shard units में विभाजित किया जाता है
    split -b 512m models/voxtral-q4.gguf models/voxtral-q4-shards/shard-  
    
  • development server और E2E tests अपने-आप shards खोज लेते हैं

license और resources

1 टिप्पणियां

 
GN⁺ 2026-02-11
Hacker News की राय
  • अगर लोगों की रुचि हो, तो @antirez ने Voxtral Mini 4B का C implementation जारी किया है
    इसे antirez/voxtral.c पर देखा जा सकता है
    मैं अपने fork version पर CUDA implementation और कुछ सुधार जोड़ रहा हूँ
    यह काफ़ी अच्छा काम करता है, लेकिन अभी भी Mistral AI के API endpoint की स्पीड तक नहीं पहुँचता

    • मैं जानना चाहता हूँ कि ऐसी inference code या CUDA implementation जैसी चीज़ें शुरू करने के लिए पढ़ाई कहाँ से शुरू करनी चाहिए
      सीधे कोड लिखने के बजाय लगता है कि पहले संबंधित सामग्री पढ़कर सीखना चाहिए, तो अगर कोई काम की guide हो तो अच्छा रहेगा
    • एक और Mistral implementation mistral.rs भी है
      फ़र्क ठीक से नहीं पता, लेकिन community reaction इस तरफ़ ज़्यादा अच्छा लगता है
  • डेमो चलाकर देखा तो Mic बटन दबाकर रिकॉर्ड करने के बाद “Stop and transcribe” दबाना पड़ता है, तभी नतीजा मिलता है
    क्या इसे सचमुच real-time mode में बनाया जा सकता है, जहाँ यूज़र के बोलने के 1–2 सेकंड के भीतर सबटाइटल तुरंत दिखने लगें?
    Hugging Face का server demo GPU-आधारित 8.5GB मॉडल से वही कर रहा है

    • मौजूदा स्पीड पर पूरी तरह real-time मुश्किल है
      लेकिन 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 ने इसे सही पकड़ा है

    • हो सकता है Mistral के लिए यह RedHat के turning point जैसा पल साबित हो
      open models का दौर अब और दिलचस्प लगने वाला है
  • बढ़िया काम है। अच्छा होगा अगर यह handy.computer के साथ integrate हो सके, और यह भी जानना है कि streaming support की कोई योजना है या नहीं

    • मैं इसे transcribe-rs में port करके Handy में इस्तेमाल करने लायक बनाना चाहता हूँ
      पहला version शायद streaming support नहीं देगा
    • मैंने Handy इस्तेमाल किया है, और यह पहले के solutions की तुलना में काफ़ी हल्का और साफ़ UI लगा
      इसकी वजह से एक अच्छा tool पता चला, और अब सच में लगता है कि Voxtral support ज़रूरी है
  • मैं मॉडल्स के बारे में ज़्यादा नहीं जानता, लेकिन मैंने Nvidia Parakeet इस्तेमाल किया है और वह बहुत अच्छा चला
    ऐसे 9GB मॉडल को real-time में इस्तेमाल करने के लिए क्या उसे लगातार GPU memory में लोड रखकर रखना पड़ता है, या हर बार लोड करना भी ठीक है?

    • मैं भी Parakeet V3 इस्तेमाल करता हूँ, और स्पीड व accuracy का balance सबसे अच्छा लगता है
      छोटे वाक्य लगभग तुरंत, और लंबे वाक्य 1–3 सेकंड में बदल जाते हैं
      AI से बातचीत जैसे उपयोग में थोड़ी accuracy loss का लगभग कोई मतलब नहीं है
      Handy नाम के open source app (लिंक) में Parakeet V3 इस्तेमाल हो रहा है, लेकिन C implementation काफ़ी धीमा था
      STT में स्पीड ही UX की कुंजी है
    • मैं ollama server चलाता हूँ, और model loading काफ़ी तेज़ है
      देरी तब आती है जब नया मॉडल बुलाना हो या बड़ा 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 पर चलना ज़्यादा सही लगता है

    • मौजूदा browser environment में local models का mainstream होना मुश्किल है
      लेकिन अगर 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 डाउनलोड करें

    • मैंने Gemini Nano (Chrome में built-in AI model) और server-based solutions की तुलना की है
      Nano local storage में save होता है और sites के बीच share होता है, इसलिए उसे सिर्फ़ एक बार डाउनलोड करना पड़ता है
      लगता है Mistral ऐसा नहीं करता
      संबंधित आँकड़े इस ब्लॉग पोस्ट में दिए गए हैं
    • बेशक, मैं नहीं चाहता कि किसी webpage पर जाते ही यह अपने-आप डाउनलोड होने लगे,
      लेकिन package install या executable download की तुलना में browser sandbox environment ज़्यादा सुरक्षित लगता है
    • आज तो एक static landing page खोलने में भी दर्जनों MB लोड हो जाते हैं
      जल्द ही लोग शायद इसकी भी आदत डाल लेंगे :-)
  • मेरे 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 भी नहीं थी, इसलिए वजह समझ नहीं आई