Mixtral 8x7B: विरल Mixture of Experts भाषा मॉडल
(arxiv.org)- 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 टिप्पणियां
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 पर भी अच्छे प्रदर्शन के साथ चलने वाले शक्तिशाली मॉडल देखने को मिलेंगे
अभी तक बिना इतनी अधिक quantization के, जो output quality बिगाड़ दे, इसे चलाने वाला मुख्य consumer platform unified memory वाले नए Apple Silicon Mac हैं, आम तौर पर 48GB या उससे अधिक। 32GB या 36GB पर भी इसे चलाने की बात कही जाती है, लेकिन वहाँ ज़्यादा headroom नहीं है
जैसा coder543 ने बताया, अगर multi-GPU setup में कुल VRAM पर्याप्त हो, तो अधिक नुकसान वाली quantization के बिना भी इसे चलाया जा सकता है
dataset contamination एक समस्या है, लेकिन subreddit पर सलाह माँगने वाले लोग लोक-रीति के तरीके से LLM का मूल्यांकन करें, इससे वह समस्या हल नहीं होती
इस मॉडल की खास बात यह है 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 से चलाया जाए
मेरे 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 को बहुत बढ़ावा देंगे
इतने पैसे में तो पूरा PC खरीदा जा सकता है, इसलिए यह मानना मुश्किल है कि इतनी महंगी GPU “consumer-grade” और “आम” है
क्या LLM या अन्य generative AI के लिए कोई ऐसी GPU है जो बेहिसाब महंगी न हो? या फिर क्या gaming graphics के बजाय AI के लिए खास तौर पर डिज़ाइन किए गए प्रोडक्ट हैं?
उदाहरण के लिए, आगे की योजना बनाने वाले agent से 5W में से किसी भी तीन का जवाब देना अनिवार्य किया जा सकता है, लेकिन JSON string values के भीतर उसे स्वतंत्र रूप से लिखने दिया जाए ताकि बाद में सीमित action set चुनने के context के रूप में उसका उपयोग हो सके। या मॉडल को यह अनुमति दी जा सकती है कि वह उत्तर के अंत में सोचने के लिए और समय माँगे, लेकिन अगर वह ऐसा न करे तो उसे अगला action निर्दिष्ट करना ही होगा
मेरी नज़र में इसका generation speed पर कोई असर नहीं पड़ता और इसे बहुत रचनात्मक तरीकों से इस्तेमाल किया जा सकता है। हाँ, अगर output कट जाए तो regeneration की ज़रूरत पड़ सकती है, और valid JSON object बंद होते ही या लगातार पाँच से अधिक newline बनने पर रुकने वाला function मुझे अलग से लिखना पड़ा। यह मॉडल के हिसाब से अलग हो सकता है
अगर आप इस मॉडल को आज़माना चाहते हैं, तो संभवतः Mozilla/jart द्वारा Llamafile के रूप में वितरित किए गए विकल्पों में से एक होगा
chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile./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:mainhttp://localhost:3000 पर जाकर एक्सेस किया जा सकता है। Ollama को LangChain में भी इस्तेमाल किया जा सकता है
हाल की संबंधित पोस्टें
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 से यह समस्या “हल” हो जाएगी; शायद यह सिर्फ़ ऐसे multimodal models के जरिए संभव होगा जिन्हें program execution और calculator तक पहुँच हो
मैंने बहुत ज़्यादा LLM papers नहीं पढ़े हैं, लेकिन मेरे हिसाब से यह paper काफ़ी कमजोर है और इसमें detail की कमी है। मेरा मतलब LLM के results से नहीं, बल्कि paper itself से है
अगर यह review के लिए मेरी मेज़ पर आया होता, तो शायद सिर्फ़ इसी कारण मैं इसे वापस भेज देता। उदाहरण के लिए, इसमें यह ठीक से नहीं बताया गया कि experts को कैसे train किया गया, या कौन-से dataset इस्तेमाल किए गए
क्या इस क्षेत्र में अब यही मौजूदा standard है?
code और architecture को दोहराना आसान है, इसलिए जहाँ पर्याप्त पैसा हो, वहाँ कोई भी “आसानी” से competing model बना सकता है
OpenAI ने यह रुझान शुरू किया, और GPT-4 की “technical report” के साथ इसे पक्का कर दिया, जिसमें model parameter count तक स्पष्ट नहीं किया गया। datasets के बारे में तो वे उससे भी बहुत पहले से अस्पष्ट रहे हैं
मैं LLMs का बिल्कुल विशेषज्ञ नहीं हूँ, लेकिन खासकर यह जानना दिलचस्प होगा कि अलग-अलग training setups का performance पर क्या असर पड़ता है
यह जानने की उत्सुकता है कि सार्वजनिक रूप से उपलब्ध multimodal models कब आना शुरू होंगे
केवल text models की प्रगति शानदार रही है, लेकिन GPT-4 के कई “emergent” व्यवहार शायद सिर्फ MoE या parameters की संख्या की वजह से नहीं, बल्कि multimodal training की वजह से भी हों
यह भी जानने की उत्सुकता है कि क्या छोटे multimodal models में भी ऐसा ही उछाल दिखेगा
Meta ने भी 6 modalities के बीच का multimodal model non-commercial license के तहत जारी किया है: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
model weights non-commercial license के तहत हैं, इसलिए यह सच में open source नहीं लगता, लेकिन मांगी गई “public access” की शर्त में आता है
अच्छा होगा अगर कोई CogVLM-compatible model को शुरू से open source license के साथ train करे
यह जानने की जिज्ञासा है कि क्या Simon Willison के LLM tools से इस model को चलाया जा सकता है। issues या discussions में Mixtral का उल्लेख नहीं मिला
इसके अलावा, क्या command line पर इस model को आसानी से आजमाने का कोई तरीका है?
LM Studio भी एक विकल्प है
command line पर Ollama: https://ollama.ai/library/mixtral
अगर UI चाहिए तो GPT4All: https://gpt4all.io/index.html लेकिन यह अभी Mixtral को support नहीं करता
app के अंदर superagent.sh: https://github.com/homanp/superagent
हाल की A16Z podcast interview में Mistral के founder ने कहा कि उनके पास अंदरूनी तौर पर ChatGPT और GPT-4 के बीच की quality वाले कई models हैं
अब तक की high-quality releases को देखते हुए, open source LLMs के लिए यह एक दिलचस्प समय लगता है