2 पॉइंट द्वारा GN⁺ 2024-09-20 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • LLaMA-Omni एक Llama-3.1-8B-Instruct आधारित speech-language model है, जो voice instructions को इनपुट के रूप में लेकर टेक्स्ट और वॉइस रिस्पॉन्स एक साथ जनरेट करता है
  • इसका मुख्य लक्ष्य कम latency और उच्च-गुणवत्ता वाला वॉइस इंटरैक्शन है, और README के अनुसार latency सबसे कम 226ms तक जा सकती है
  • मॉडल को सिर्फ 4 GPU पर 3 दिन से कम समय में train किया गया, और इसे Llama-3.1-8B-Omni, Whisper-large-v3, unit-based HiFi-GAN vocoder के साथ चलाया जाता है
  • Gradio demo में controller, web server, और model worker को अलग-अलग चलाया जाता है, और Gradio की streaming audio playback अस्थिर होने के कारण auto-play सक्षम नहीं है
  • कोड Apache-2.0 के तहत है, लेकिन मॉडल केवल academic research purpose के लिए है; commercial use प्रतिबंधित है और अलग commercial license के लिए संपर्क करना होगा

LLaMA-Omni क्या करता है

  • LLaMA-Omni Llama-3.1-8B-Instruct पर आधारित एक speech-language model है
  • यह voice instructions को इनपुट के रूप में लेकर text response और voice response एक साथ जनरेट करता है
  • इसका लक्ष्य कम latency वाला वॉइस इंटरैक्शन और उच्च-गुणवत्ता वाले रिस्पॉन्स हैं, और README के highlights के अनुसार latency सबसे कम 226ms है
  • संबंधित पेपर arXiv:2409.06666 पर उपलब्ध है

जारी किए गए मॉडल और डेटासेट

  • मॉडल Hugging Face, ModelScope, Wisemodel, और Replicate पर उपलब्ध है
  • डेटासेट Multiturn-Speech-Conversations के रूप में उपलब्ध है
  • मई 2025 अपडेट में बेहतर InstructS2S-200K जारी किया गया, इसे multi-turn conversations तक विस्तारित किया गया, और इनपुट speech timbre में भी विविधता बढ़ाई गई

हाल के अपडेट

  • मई 2025 में, LLaMA-Omni 2 को ACL 2025 main conference में स्वीकार किया गया
  • अप्रैल 2025 में, LLaMA-Omni2 जारी किया गया
    • यह 0.5B से 32B parameters तक की speech-language model series है
    • इसने response quality और speech generation quality में सुधार किया है
  • जनवरी 2025 में, LLaMA-Omni को ICLR 2025 में स्वीकार किया गया

इंस्टॉलेशन और रन फ़्लो

  • इंस्टॉलेशन के लिए repository को clone करने के बाद Python 3.10 conda environment में packages इंस्टॉल किए जाते हैं
    • पहले pip==24.0 इंस्टॉल करें, फिर pip install -e . चलाएँ
  • अतिरिक्त dependencies के रूप में fairseq और flash-attn इंस्टॉल करने होंगे
  • quick start के लिए तीन चीज़ें तैयार करनी होंगी
    • Llama-3.1-8B-Omni मॉडल डाउनलोड
    • Whisper-large-v3 मॉडल डाउनलोड
    • unit-based HiFi-GAN vocoder और config.json डाउनलोड

Gradio demo और local inference

  • Gradio demo तीन processes से बना है
    • controller: omni_speech.serve.controller
    • Gradio web server: omni_speech.serve.gradio_web_server
    • model worker: omni_speech.serve.model_worker
  • demo चलाने के बाद localhost:8000 पर LLaMA-3.1-8B-Omni के साथ इंटरैक्ट किया जा सकता है
  • Gradio में streaming audio playback अस्थिर होने के कारण सिर्फ streaming audio synthesis लागू की गई है, और auto-play सक्षम नहीं है
  • local inference के लिए voice instruction files को omni_speech/infer/examples फ़ॉर्मेट के अनुसार व्यवस्थित करें, फिर bash omni_speech/infer/run.sh omni_speech/infer/examples चलाएँ

लाइसेंस और उपयोग सीमाएँ

  • कोड Apache-2.0 License के तहत जारी किया गया है
  • मॉडल का उपयोग केवल academic research purpose के लिए किया जा सकता है और commercial use प्रतिबंधित है
  • academic environment में उपयोग, संशोधन, और वितरण संभव है, लेकिन मूल पेपर का citation आवश्यक है
  • commercial use या commercial license के लिए fengyang@ict.ac.cn पर संपर्क करना होगा

आधार परियोजनाएँ और citation

  • codebase LLaVA पर आधारित है
  • speech encoder और speech adapter से जुड़ा कुछ कोड SLAM-LLM से लिया गया है
  • यदि शोध में उपयोगी हो, तो LLaMA-Omni: Seamless Speech Interaction with Large Language Models पेपर को cite करना चाहिए
  • संपर्क के लिए GitHub issue या fangqingkai21b@ict.ac.cn का उपयोग किया जा सकता है

1 टिप्पणियां

 
GN⁺ 2024-09-20
Hacker News की राय
  • क्या यह मॉडल ऐसी आवाज़ें भी निकाल सकता है जिन्हें टेक्स्ट में व्यक्त नहीं किया जा सकता? उदाहरण के लिए, “मुर्गी जैसी आवाज़ निकालो” जैसी रिक्वेस्ट

    • अगर यह गैर-वाचिक शब्द-प्रतिनिधित्व से जुड़ी आवाज़ें बना सकता है, तो onomatopoeia पर खास तौर पर रुकने की कोई वजह नहीं दिखती
    • क्या यह ऐसी आवाज़ों को समझ भी सकता है? जैसे यह पहचान सके कि किसी शब्द का उच्चारण या intonation सही है या नहीं
    • लगभग तय है कि नहीं। यह लोगों की आवाज़ ही बनाने के लिए बने पुराने vocoder जैसा सुनाई देता है
    • क्या मतलब “कुकड़ूँ-कूँ” जैसी आवाज़ बोलना?
      लेकिन क्या यह “कुकड़ूँ-कूँ” शब्द कहना और असली clucking जैसी आवाज़ निकालना, दोनों कर सकता है?
  • मुझे साफ़ नहीं है कि ऐसे मॉडल का शुद्ध टेक्स्ट मॉडल पर speech recognition/speech synthesis जोड़ने वाले तरीके की तुलना में क्या फ़ायदा या संभावनाएँ हैं
    क्या जैसे-जैसे मॉडल ज़्यादा परिष्कृत होंगे, मुख्य बात यह होगी कि वे speech synthesis में खो जाने वाली intonation, rhythm, emotion जैसी चीज़ों को ठीक से समझें या पैदा करें?

    • speech recognition/speech synthesis में काफ़ी information loss और अनुमान शामिल होते हैं
      speech recognition मॉडल शब्द ग़लत सुन सकता है, लेकिन audio LLM व्यापक context की वजह से असली शब्द समझ सकता है। speech synthesis मॉडल को intonation का अनुमान लगाना पड़ता है, इसलिए वह पूरी तरह ग़लत हो सकता है, लेकिन audio LLM स्वाभाविक रूप से सीख सकता है कि किस tone में बोलना चाहिए। उदाहरण के लिए, बीच में बोलते समय यह ऊँचा tone इस्तेमाल कर सकता है
      सिर्फ़ बीच में बोलने के मामले में भी, speech recognition/synthesis सिस्टम आम तौर पर voice activity detection और heuristics पर निर्भर करते हैं कि कब बोलना है, इसलिए अक्सर नियम यह होता है कि यूज़र के बोलना बंद करने के बाद ही जवाब दें। audio LLM स्वाभाविक बातचीत करना, बातचीत का समय ज़्यादा न घेरना, और कई लोगों के साथ बोलना भी सीख सकता है
      audio LLM संगीत या अन्य आवाज़ें भी बना सकता है, या यह बता सकता है कि आपने जो धुन गुनगुनाई वह कौन-सा गाना है। नई संभावनाएँ बहुत हैं
      लेकिन मैंने “सीख सकता है” इसलिए कहा, क्योंकि इसके लिए अच्छा training data चाहिए। मेरी जानकारी में, अभी ऐसे ज़्यादातर मॉडल सामान्य text datasets को speech synthesis में बदलकर train किए गए हैं, इसलिए वे असल में पारंपरिक speech recognition/synthesis सिस्टम से बेहतर नहीं हैं। architecture साबित करने के लिए यह अच्छा है, लेकिन पूरी क्षमता नहीं दिखाता
    • व्यक्तिगत रूप से मैं OpenAI के advanced voice mode जैसे voice models को language learning में इस्तेमाल किए जाने को लेकर बहुत उत्साहित हूँ
      तेज़ या धीमे बोलने जैसी चीज़ें तो पहले ही ऐसी क्षमता हैं जो पारंपरिक speech synthesis सिस्टम अच्छी तरह नहीं कर पाते थे। सिद्धांत रूप में, यह मुझे यह भी बता सकता है कि मेरा उच्चारण सही है या नहीं, और मेरे ग़लत उच्चारण को दोहराकर फिर सही उच्चारण सुना कर सुधार भी सकता है
      OpenAI का advanced voice mode यह व्यवहार में कितना अच्छा करता है, इस पर मैंने अभी तक कोई ठोस टेस्ट नहीं देखा, इसलिए पता नहीं, लेकिन मैं इसे खुद आज़माना चाहूँगा। अगर दूसरे voice models भी इस स्तर तक पहुँच जाएँ, तो वे language learning tools के रूप में जबरदस्त होंगे
    • इस विषय पर पहले ही बहुत चर्चा हो चुकी है; उदाहरण के लिए OpenAI का -O paper देख सकते हैं
      बड़े कारकों में से एक batching की वजह से आने वाली latency है। किसी एजेंट को स्वाभाविक रूप से बीच में रोकना मुश्किल हो जाता है, इसलिए असली बातचीत ज़्यादा अटपटी लगती है। और हाँ, multimodal सिस्टम बेहतर समझते हैं। लेकिन emotion recognition पर मैंने कोई विश्लेषण नहीं देखा; जानना चाहूँगा कि क्या किसी ने GPT-O की इस क्षमता का विश्लेषण देखा है
    • मूल रूप से audio→text conversion में information loss होता है। कभी यह महत्वपूर्ण नहीं होता, लेकिन कभी यह output quality को मायने रखने लायक बेहतर बना सकता है
      इसके अलावा reply latency में सुधार, speaker separation में सुधार, और बातचीत के दौरान pauses पर बेहतर प्रतिक्रिया जैसे सहायक फ़ायदे भी हो सकते हैं
    • अगर सिर्फ़ “Really” लिखा हो, तो उसकी intonation कोई नहीं जान सकता
      “Really?” या “Really!” लिखने पर भी व्याख्या की गुंजाइश रहती है। अगर voice interface को सच में सफल होना है, तो उसे वैसा क्षण चाहिए जैसा Google से पहले search की हालत और फिर Google के आने के बाद हुआ था; और अगर उसकी कुंजी intonation, rhythm, emotion की व्याख्या और generation है, तो ऐसे मॉडल बनाना काफ़ी उचित है
  • क्या Ollama, LM Studio, llama.cpp जैसे model runtime tools में से कोई इसे support करता है?

  • तो क्या इसका मतलब यह है कि यह speech recognition → LLM → speech synthesis architecture नहीं है? अगर इनपुट में Chewbacca जैसी आवाज़ लगाई जाए, तो क्या मॉडल उसे निरर्थक इनपुट मानेगा, या खराब speech recognition की तरह उसे किसी न किसी शब्द के रूप में समझ लेगा?

    • architecture के हिसाब से यह वैसा नहीं है, लेकिन शायद यह उसे निरर्थक इनपुट के रूप में भी पहचान न पाए। paper के अनुसार

      we construct a dataset named InstructS2S-200K by rewriting existing text instruction data and performing speech synthesis
      इसने सिर्फ़ speech synthesis से पढ़े गए सवालों पर training ली है, और इसने कभी बेतुकी आवाज़ें देखी-सुनी ही नहीं हैं। संभव है कि यह “क्या आप ठीक हैं?” पूछने के बजाय यह hallucinate कर ले कि आपने कुछ पूछा है, और फिर कोई जवाब बना दे। असली voice audio datasets बहुत ज़्यादा नहीं हैं, और scrape करने के लिए StackOverflow का कोई audio version भी नहीं है

    • मैं पहले ऐसी चीज़ों से खेला करता था। Google Translate को किसी ऐसी भाषा पर सेट कर देता था जिसे मैं नहीं जानता, जैसे चीनी, और फिर बस कुछ भी आवाज़ निकालता था; नतीजे में लगातार लेकिन पागलपन भरे English वाक्य मिलते थे
      लगता था कि tonal languages में यह ख़ास तौर पर ज़्यादा काम करता है
  • डेमो क्लिप में speech synthesis voice की आवाज़ हैरान करने वाली हद तक Ellen McLain, यानी Valve की voice actor, जैसी लगती है
    https://en.m.wikipedia.org/wiki/Ellen_McLain

    • ऐसा लगता है जैसे इसे LJ Speech dataset पर train किया गया हो। यह सबसे अच्छे datasets में से एक है और बहुत आम तौर पर इस्तेमाल होता है
  • speed काफ़ी अच्छी लग रही है। मैंने हाल ही में LMStudio + AnythingLLM के साथ local voice chat आज़माया था; वह अभी भी मेरी उम्मीद से थोड़ा धीमा था, और PiperTTS की voice इससे बेहतर थी

  • 3 दिन की training के हिसाब से यह बुरा नहीं है। voice output quality को और polish करना होगा, लेकिन ज़्यादा training के बाद क्या बदलाव आते हैं, यह दिलचस्प होगा

  • अच्छा होता अगर training या fine-tuning code भी होता। commercial use के लिए voice fine-tuning एक मुख्य requirement लगती है

  • क्या GitHub repository README में वह बेवकूफ़ाना star history graph देखकर भरोसा कम हो जाने वाला मैं अकेला हूँ?

    • यह थोड़ा अजीब है। लोग अपने काम पर गर्व कर सकते हैं
  • क्या performance दिखाने वाला कोई demo है?