1 पॉइंट द्वारा GN⁺ 2024-01-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Mixtral 8x7B एक Sparse Mixture of Experts (SMoE) मॉडल है, जो Mistral 7B की मूल संरचना को बनाए रखते हुए हर लेयर के feedforward block को 8 experts से बदलता है, और इसे open weights तथा Apache 2.0 लाइसेंस के तहत जारी किया गया है
  • हर token के लिए router 8 में से केवल 2 experts चुनकर compute करता है, इसलिए token प्रति 47B parameters तक पहुंच होने के बावजूद inference के समय active parameters 13B तक सीमित रहते हैं
  • इसे 32k token context size पर train किया गया है, और evaluate किए गए benchmarks में कुल मिलाकर इसने Llama 2 70B और GPT-3.5 से बेहतर या समान performance दिखाई; खासकर math, code generation और multilingual tasks में यह मजबूत है
  • Mixtral 8x7B – Instruct supervised fine-tuning और Direct Preference Optimization (DPO) के जरिए instruction-following सीखने वाला chat model है, और human evaluation में GPT-3.5 Turbo, Claude-2.1, Gemini Pro, Llama 2 70B-chat से आगे निकला
  • Sparse expert architecture कुल parameters बढ़ाते हुए भी token प्रति computation को नियंत्रित रखता है, जिससे छोटे batch sizes पर तेज inference और बड़े batch sizes पर high throughput की उम्मीद की जा सकती है

सार्वजनिक मॉडल और benchmark performance

  • Mixtral 8x7B open-weight Sparse Mixture of Experts (SMoE) मॉडल है, और Apache 2.0 लाइसेंस के तहत academic और commercial उपयोग के लिए उपलब्ध है
  • base model और instruction-following के लिए Mixtral 8x7B – Instruct साथ में जारी किए गए हैं
  • code और webpage उपलब्ध हैं
  • कई benchmarks में इसने Llama 2 70B और GPT-3.5 से बेहतर या बराबर स्तर दर्ज किया
  • math, code generation और multilingual understanding की जरूरत वाले tasks में यह Llama 2 70B से मजबूत performance दिखाता है
  • यह पुष्टि हुई कि 32k token context window में information की position और sequence length से स्वतंत्र रूप से information retrieve कर सकता है

Sparse Mixture of Experts संरचना

  • Mixtral decoder-only transformer है, जिसमें सामान्य transformer के feedforward block को Mixture-of-Experts layer से बदला गया है
  • हर layer का router network token-wise 8 experts में से 2 experts चुनता है
    • चुने गए experts का output weighted sum के रूप में combine होता है
    • expert selection हर timestep पर बदल सकता है
  • एक token 47B parameters तक पहुंच सकता है, लेकिन वास्तविक inference में इस्तेमाल होने वाले active parameters 13B हैं
  • यह संरचना मॉडल के कुल parameters की संख्या बढ़ाते हुए भी token processing cost और latency को control करने का तरीका है

MoE layer की computation method

  • MoE module का output expert networks के output के weighted sum के रूप में compute होता है, और weights gating network तय करता है
  • अगर gating vector sparse हो, तो जिन experts का gate value 0 है उनका output compute करने की जरूरत नहीं होती
  • Mixtral linear layer के logits में top K पर softmax apply करता है
    • K token प्रति इस्तेमाल होने वाले experts की संख्या तय करने वाला hyperparameter है
    • Mixtral में K = 2 सेट किया गया है
  • experts की संख्या n बढ़ाकर और K को fixed रखकर, token प्रति computation को लगभग constant रखते हुए कुल parameters की संख्या बढ़ाई जा सकती है
  • इसलिए कुल sparse parameters की संख्या और individual token processing में इस्तेमाल होने वाले active parameters की संख्या अलग हो जाती है

implementation और inference efficiency

  • MoE layers single GPU पर भी specialized kernels के जरिए efficiently run हो सकती हैं
  • Megablocks MoE layer के FFN operations को बड़े sparse matrix multiplication के रूप में represent करके execution speed बढ़ाता है, और हर expert को assign होने वाले tokens की संख्या अलग होने की स्थिति को भी handle करता है
  • MoE layers को standard model parallelization और Expert Parallelism के जरिए कई GPUs में distribute किया जा सकता है
    • किसी specific expert द्वारा process किए जाने वाले tokens उसी GPU पर route किए जाते हैं
    • expert output को मूल token position पर वापस किया जाता है
  • Expert Parallelism में GPUs के बीच workload समान रूप से बांटना होता है, इसलिए load balancing जरूरी है
  • पूरी तरह open source stack पर Mixtral चलाने के लिए vLLM project में Megablocks CUDA kernel integration changes submit किए गए हैं, और Skypilot cloud instances पर vLLM endpoint deployment support करता है

Instruct model और evaluation characteristics

  • Mixtral 8x7B – Instruct supervised fine-tuning और Direct Preference Optimization (DPO) के जरिए instruction-following सीखने वाला chat model है
  • human evaluation benchmark में यह GPT-3.5 Turbo, Claude-2.1, Gemini Pro, Llama 2 70B-chat से बेहतर performance दिखाता है
  • BBQ और BOLD जैसे benchmarks में bias कम हुआ और ज्यादा balanced sentiment profile दिखा
  • sparse architecture की वजह से छोटे batch sizes पर तेज inference speed और बड़े batch sizes पर ज्यादा throughput की उम्मीद की जा सकती है
  • सभी FFN subblocks को MoE layers से बदलने के लिहाज से यह GShard से structurally अलग है, जो केवल कुछ blocks को बदलता है

1 टिप्पणियां

 
GN⁺ 2024-01-10
Hacker News की राय
  • यह पेपर उस मॉडल को विस्तार से देखता है जो लगभग एक महीने पहले से सार्वजनिक होकर इस्तेमाल में था। Mixtral 8x7B वाकई बेहतरीन है, और आकार में लगभग 13B-स्तर का होते हुए भी https://www.reddit.com/r/LocalLLaMA/comments/1916896/llm_com... जैसी रैंकिंग में समान आकार के मॉडलों से कहीं ऊपर आंका गया है
    Ravenwolf ने कहा कि यह मॉडल कुछ benchmark स्कोर से भी वास्तविक उपयोग में थोड़ा बेहतर निकलता है, और मेरा अनुभव भी यही है। इस आकार के मॉडल के लिए यह चौंकाने वाली तरह से अच्छा है, और Mac पर चैट, कोड इनपुट और अन्य कामों के लिए रोज़ इस्तेमाल करने लायक भी है
    weights सार्वजनिक होने के बाद जो बात सामने आई, वह यह है कि इस बात की काफी संभावना है कि सभी 8 experts की शुरुआत Mistral 7B से हुई और फिर वे अलग-अलग दिशाओं में diverge हुए। इसी वजह से local LLM community में मॉडल को replicate करके सस्ते experts बनाने के बहुत प्रयोग चल रहे हैं
    आम तौर पर माना जाता था कि 8x7B नेटवर्क को train करने में 7B नेटवर्क के 8 मॉडल train करने जितना काम लगेगा, लेकिन लगता है कि Mistral के मामले में ऐसा नहीं था, और यह बहुत दिलचस्प है
    DeepMind के Calm जैसे पेपर, और Goliath-120b की तरह on-the-fly layers को combine करने वाले प्रयोग लगातार सामने आ रहे हैं, इसलिए लगता है कि इस साल LLM क्षेत्र में काफ़ी रोचक architecture improvements आ सकते हैं। Calm शायद MoE के अगले चरण की ओर इशारा करता है, और Goliath जैसे मॉडल Calm का एक बहुत आलसी implementation लगते हैं, यानी linear layer combination के बिना सिर्फ पूरे weight layers को बारी-बारी से इस्तेमाल करके भी बड़ा असर मिल सकता है
    कुल मिलाकर लगता है कि 2024 में, शायद साल की पहली छमाही के भीतर ही, consumer hardware पर भी अच्छे प्रदर्शन के साथ चलने वाले शक्तिशाली मॉडल देखने को मिलेंगे

    • मुझे भी Mixtral से बहुत अच्छे नतीजे मिले हैं, और यह सच में प्रभावशाली है। लेकिन यह अपेक्षाकृत बड़ा मॉडल है, इसलिए consumer hardware पर full GPU inference के साथ इसे चलाना मुश्किल है। यह उन 7B/13B मॉडलों जैसा नहीं है जिन्हें लोग आम तौर पर इस्तेमाल करते हैं
      अभी तक बिना इतनी अधिक quantization के, जो output quality बिगाड़ दे, इसे चलाने वाला मुख्य consumer platform unified memory वाले नए Apple Silicon Mac हैं, आम तौर पर 48GB या उससे अधिक। 32GB या 36GB पर भी इसे चलाने की बात कही जाती है, लेकिन वहाँ ज़्यादा headroom नहीं है
      जैसा coder543 ने बताया, अगर multi-GPU setup में कुल VRAM पर्याप्त हो, तो अधिक नुकसान वाली quantization के बिना भी इसे चलाया जा सकता है
    • Mixtral अच्छा है, लेकिन Ravenwolf benchmark का कोई मतलब नहीं है। यह ऐसा लगता है जैसे कोई random व्यक्ति बिना rigor और consistency के जर्मन में MMLU को फिर से बनाने की कोशिश कर रहा हो
      dataset contamination एक समस्या है, लेकिन subreddit पर सलाह माँगने वाले लोग लोक-रीति के तरीके से LLM का मूल्यांकन करें, इससे वह समस्या हल नहीं होती
    • hardware announcements का इंतज़ार है। साफ़ लग रहा है कि consumer इस्तेमाल के लिए जानबूझकर डिज़ाइन किए गए on-device LLM acceleration वाले प्रोडक्ट आ रहे हैं
    • सच में जिज्ञासा है कि Phi-2 जैसे छोटे मॉडलों पर आधारित MoE कब देखने को मिलेगा
  • इस मॉडल की खास बात यह है that इसके active parameters लगभग 13B-स्तर तक कम हैं, इसलिए यह 3090 पर high quality के साथ smoothly चल सकता है, फिर भी HumanEval में GPT-3.5 को हराता है और 32k context भी देता है
    3090 consumer-grade है और gaming PC में भी आम है। अच्छा होगा अगर game developers local deployment वाले Mixtral को गेम में डालकर प्रयोग करना शुरू करें। जैसे Civilization जैसे गेम में हर leader को LLM से चलाया जाए

    • Mixtral को 2020 के बाद के Apple MacBook Pro M1/M2/M3 पर 32GB या अधिक RAM हो तो ठीक-ठाक token speed के साथ चलाया जा सकता है। 16GB RAM पर भी कुछ हद तक संभव है, लेकिन शायद वह 3090 वाले उपयोग जैसी quantization होगी और quantization का फ़र्क महसूस होता है
      मेरे M2 Pro पर token speed और intelligence, GPT-3.5 Turbo जैसी लगती है। यह तकनीक इतनी अच्छी है कि सिर्फ छेड़छाड़ करने से आगे बढ़कर, यह पहला मॉडल है जिसे मैंने वास्तव में GPT-3.5 के विकल्प के रूप में इस्तेमाल करना शुरू किया है
      32GB RAM वाला Apple M2 Pro लगभग उसी कीमत के दायरे में आता है जैसे 3090 वाला gaming PC, और यह एक और उदाहरण है कि ठीक-ठाक high-performance सिस्टम रखने वाले आम लोग “संयोग से” GPT-3.5 के मुकाबले का मॉडल चला सकते हैं
      अगर आपके पास इन शर्तों को पूरा करने वाला Apple डिवाइस है और आप प्रयोग करना चाहते हैं, तो LLM Studio open source है और शुरुआत आसान बना देता है: https://lmstudio.ai/
      उम्मीद है कि Mixtral और उसके बाद आने वाले मॉडल hobby hacking को बहुत बढ़ावा देंगे
    • Google के अनुसार RTX 3090 की कीमत 1,480 से 1,680 डॉलर के बीच है
      इतने पैसे में तो पूरा PC खरीदा जा सकता है, इसलिए यह मानना मुश्किल है कि इतनी महंगी GPU “consumer-grade” और “आम” है
      क्या LLM या अन्य generative AI के लिए कोई ऐसी GPU है जो बेहिसाब महंगी न हो? या फिर क्या gaming graphics के बजाय AI के लिए खास तौर पर डिज़ाइन किए गए प्रोडक्ट हैं?
    • यह बात भी महत्वपूर्ण है कि 4-bit quantized मॉडल CPU पर भी पढ़ने की गति के स्तर पर चल सकते हैं। खासकर अगर कुछ results को async तरीके से पहले से compute किया जा सके, तो कई उपयोग-क्षेत्र खुल सकते हैं
    • मैं local models को agents की तरह इस्तेमाल कर रहा हूँ, और रुचि रखने वालों को llama.cpp की “grammars” सुविधा के बारे में पता होना चाहिए। इससे मॉडल के output को किसी तय structure का पालन करने के लिए मजबूर किया जा सकता है, जो सिर्फ valid JSON output सुनिश्चित करने के लिए ही नहीं, बल्कि “अगर x चुना जाए तो y भी देना ही होगा” जैसी अधिक विशिष्ट constraints के लिए भी उपयोगी है
      उदाहरण के लिए, आगे की योजना बनाने वाले agent से 5W में से किसी भी तीन का जवाब देना अनिवार्य किया जा सकता है, लेकिन JSON string values के भीतर उसे स्वतंत्र रूप से लिखने दिया जाए ताकि बाद में सीमित action set चुनने के context के रूप में उसका उपयोग हो सके। या मॉडल को यह अनुमति दी जा सकती है कि वह उत्तर के अंत में सोचने के लिए और समय माँगे, लेकिन अगर वह ऐसा न करे तो उसे अगला action निर्दिष्ट करना ही होगा
      मेरी नज़र में इसका generation speed पर कोई असर नहीं पड़ता और इसे बहुत रचनात्मक तरीकों से इस्तेमाल किया जा सकता है। हाँ, अगर output कट जाए तो regeneration की ज़रूरत पड़ सकती है, और valid JSON object बंद होते ही या लगातार पाँच से अधिक newline बनने पर रुकने वाला function मुझे अलग से लिखना पड़ा। यह मॉडल के हिसाब से अलग हो सकता है
    • VRAM usage 47B मॉडल के ज़्यादा करीब है। inference के समय भले ही एक बार में सिर्फ 2 experts इस्तेमाल होते हों, लेकिन completion के लिए सभी experts की ज़रूरत होती है
  • अगर आप इस मॉडल को आज़माना चाहते हैं, तो संभवतः Mozilla/jart द्वारा Llamafile के रूप में वितरित किए गए विकल्पों में से एक होगा

    1. llamafile डाउनलोड करें (30.03GB): https://huggingface.co/jartine/Mixtral-8x7B-Instruct-v0.1-ll...
    2. chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile
    3. ./mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile
      [0] https://hacks.mozilla.org/2023/11/introducing-llamafile/
      [1] https://github.com/Mozilla-Ocho/llamafile#quickstart
  • Mac Silicon पर यह Ollama के जरिए संभव है
    https://ollama.ai/
    ollama pull mixtral
    अगर आपको ChatGPT जैसा वेब UI चाहिए, तो https://github.com/ollama-webui/ollama-webui
    docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:main
    http://localhost:3000 पर जाकर एक्सेस किया जा सकता है। Ollama को LangChain में भी इस्तेमाल किया जा सकता है

    • कुछ unlocked fine-tuning भी हैं। Dolphin काफ़ी लोकप्रिय लगता है, और इसे coding data पर और ट्रेन किया गया है। अगर आप 32GB के भीतर रखना चाहते हैं, तो https://ollama.ai/library/dolphin-mixtral:8x7b-v2.7-q3_K_M उपलब्ध है
    • Mac M1 पर, चाहे Ollama हो या कोई दूसरा LLM host, शायद Docker के जरिए इस्तेमाल नहीं करना चाहूँगा। जहाँ तक मुझे पता है, अभी तक Metal support नहीं है
  • हाल की संबंधित पोस्टें
    Mixtral of experts - https://news.ycombinator.com/item?id=38598559 - दिसंबर 2023, 300 टिप्पणियाँ
    Mistral-8x7B-Chat - https://news.ycombinator.com/item?id=38594578 - दिसंबर 2023, 69 टिप्पणियाँ
    Mistral "Mixtral" 8x7B 32k model [magnet] - https://news.ycombinator.com/item?id=38570537 - दिसंबर 2023, 239 टिप्पणियाँ

  • खास तौर पर Mixtral, गणित, code generation, और multilingual benchmark में Llama 2 70B से काफ़ी आगे है
    यह गणित में कैसा प्रदर्शन करेगा, यह जानने की उत्सुकता है। गणित हमेशा एक साफ़ कमजोरी जैसा लगा है, और अभी तक ऐसा क्षेत्र लगता है जिसे किसी ने प्रभावी ढंग से हल नहीं किया है

    • गणित कुछ हद तक LLMs की अंतर्निहित कमजोरी है। next word prediction मूल रूप से गणित में अच्छा होने के लिए बनाया ही नहीं गया था
      ऐसा नहीं लगता कि सिर्फ़ बेहतर LLMs से यह समस्या “हल” हो जाएगी; शायद यह सिर्फ़ ऐसे multimodal models के जरिए संभव होगा जिन्हें program execution और calculator तक पहुँच हो
  • मैंने बहुत ज़्यादा LLM papers नहीं पढ़े हैं, लेकिन मेरे हिसाब से यह paper काफ़ी कमजोर है और इसमें detail की कमी है। मेरा मतलब LLM के results से नहीं, बल्कि paper itself से है
    अगर यह review के लिए मेरी मेज़ पर आया होता, तो शायद सिर्फ़ इसी कारण मैं इसे वापस भेज देता। उदाहरण के लिए, इसमें यह ठीक से नहीं बताया गया कि experts को कैसे train किया गया, या कौन-से dataset इस्तेमाल किए गए
    क्या इस क्षेत्र में अब यही मौजूदा standard है?

    • यह काफ़ी आम होता जा रहा है। जिन दो चीज़ों का आपने ज़िक्र किया, यानी training details और dataset mix, वही लगभग कंपनियों का इकलौता competitive advantage भी हैं
      code और architecture को दोहराना आसान है, इसलिए जहाँ पर्याप्त पैसा हो, वहाँ कोई भी “आसानी” से competing model बना सकता है
      OpenAI ने यह रुझान शुरू किया, और GPT-4 की “technical report” के साथ इसे पक्का कर दिया, जिसमें model parameter count तक स्पष्ट नहीं किया गया। datasets के बारे में तो वे उससे भी बहुत पहले से अस्पष्ट रहे हैं
    • सही बात है, मैं भी यही सोच रहा था। दरअसल मेरा अनुमान है कि उन्होंने पहले हर expert को अलग-अलग train किया और फिर उन्हें साथ में train किया होगा। router network को भी train करना पड़ता है
      मैं LLMs का बिल्कुल विशेषज्ञ नहीं हूँ, लेकिन खासकर यह जानना दिलचस्प होगा कि अलग-अलग training setups का performance पर क्या असर पड़ता है
  • यह जानने की उत्सुकता है कि सार्वजनिक रूप से उपलब्ध multimodal models कब आना शुरू होंगे
    केवल text models की प्रगति शानदार रही है, लेकिन GPT-4 के कई “emergent” व्यवहार शायद सिर्फ MoE या parameters की संख्या की वजह से नहीं, बल्कि multimodal training की वजह से भी हों
    यह भी जानने की उत्सुकता है कि क्या छोटे multimodal models में भी ऐसा ही उछाल दिखेगा

    • LLaVA सार्वजनिक है। हालांकि, यह शायद वह उछाल नहीं है जिसकी अपेक्षा की जा रही है: https://llava-vl.github.io/
      Meta ने भी 6 modalities के बीच का multimodal model non-commercial license के तहत जारी किया है: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
    • थोड़े समय के परीक्षण में CogVLM बहुत अच्छा लगा: https://github.com/THUDM/CogVLM
      model weights non-commercial license के तहत हैं, इसलिए यह सच में open source नहीं लगता, लेकिन मांगी गई “public access” की शर्त में आता है
      अच्छा होगा अगर कोई CogVLM-compatible model को शुरू से open source license के साथ train करे
    • FAANG में काम करने वाले लोगों से सुना है कि इस मामले में Google, OpenAI से पहले आगे निकल गया था, और OpenAI अब थोड़ा catch up कर रहा है। हालांकि language के मामले में OpenAI की अभी भी साफ बढ़त है। यह सब सुनी-सुनाई बात है
  • यह जानने की जिज्ञासा है कि क्या Simon Willison के LLM tools से इस model को चलाया जा सकता है। issues या discussions में Mixtral का उल्लेख नहीं मिला
    इसके अलावा, क्या command line पर इस model को आसानी से आजमाने का कोई तरीका है?

  • हाल की A16Z podcast interview में Mistral के founder ने कहा कि उनके पास अंदरूनी तौर पर ChatGPT और GPT-4 के बीच की quality वाले कई models हैं
    अब तक की high-quality releases को देखते हुए, open source LLMs के लिए यह एक दिलचस्प समय लगता है

    • हालांकि, इस बात का कोई संकेत नहीं है कि Mistral के और भी शक्तिशाली models FOSS के रूप में जारी किए जाएंगे