متا مدل جدیدی به نام Muse Spark Open منتشر کرده است؛ یک مدل متنباز با معماری Mixture of Experts که حدود ۸۱۶ میلیارد پارامتر دارد و از هر توکن حدود ۴۲ میلیارد پارامتر فعال استفاده میکند. این مدل متن، تصویر، صدا و ویدیو را به عنوان ورودی میپذیرد و خروجی متنی تولید میکند و پنجره زمینه آن تا یک میلیون توکن است.
Muse Spark Open چیست؟
Muse Spark Open مدلی از سری Muse متا است که پس از Muse Glimmer منتشر شده است. در حالی که Muse Glimmer یک مدل کوچک و متراکم بود که در آگوست منتشر شد، Muse Spark Open معماری Mixture of Experts را در مقیاسی بسیار بزرگتر معرفی میکند. متا این مدل را «قدرتمندترین مدل متنباز آمریکایی تا به امروز» توصیف کرده است.
این مدل برای کدنویسی عاملی (agentic coding) بهینه شده است؛ یعنی میتواند یک پایگاه کد را بخواند، کد بنویسد و دیباگ کند و ابزارها را فراخوانی کند. همچنین میتواند تصاویر، صدا و ویدیو را به عنوان ورودی بپذیرد، بنابراین همان مدل میتواند یک اسکرینشات را بخواند، یک پیام صوتی را گوش کند یا یک ضبط صفحه را تماشا کند در حالی که روی کد شما کار میکند.
مشخصات فنی و معماری
Muse Spark Open حدود ۸۱۶ میلیارد پارامتر کل دارد که از هر توکن حدود ۴۲ میلیارد پارامتر فعال استفاده میکند. معماری آن شامل ۲۵۶ متخصص (expert) در هر لایه MoE است که ۸ متخصص برای هر توکن انتخاب میشوند. ورودیهای مدل شامل متن، تصویر، صدا و ویدیو است و خروجی آن فقط متن است. پنجره زمینه تا ۱ میلیون توکن پشتیبانی میشود و فرمتهای checkpoint شامل BF16 و NVFP4 است.
مدل زبان ۶۲ لایه دارد و بعد پنهان آن ۸۱۹۲ است. هر لایه ۱۲۸ هد کوئری و ۱۶ هد key-value دارد (توجه گروهی-کوئری). هر هد ۶۴ بعد دارد. بلوک توجه یک گیت خروجی و یک لایه نرمالسازی خروجی دارد. مدل همچنین نرمالسازی را روی کوئریها و کلیدها (QK-norm) اعمال میکند. هر بلوک ورودی و خروجی خود را از طریق یک گیت باقیمانده یادگرفتهشده ترکیب میکند، نه از طریق یک جمع ساده.
معماری Mixture of Experts
Muse Glimmer از یک شبکه feed-forward متراکم در هر لایه استفاده میکند. Muse Spark Open این شبکه متراکم را با یک بلوک Mixture of Experts (MoE) جایگزین کرده است. هر بلوک MoE دارای ۲۵۶ متخصص است و یک مسیریاب (router) ۸ متخصص را برای هر توکن انتخاب میکند. هر متخصص یک شبکه feed-forward است که از ۸۱۹۲ به ۴۰۹۶ بعد و دوباره به ۸۱۹۲ برمیگردد و سپس نرمالسازی خود را روی خروجی اعمال میکند. متخصصها حدود ۹۷٪ از کل پارامترهای مدل را در خود دارند.
فقط ۸ متخصص برای هر توکن اجرا میشود، بنابراین مدل هر توکن را با حدود ۴۲ میلیارد پارامتر محاسبه میکند. همه ۲۵۶ متخصص در حافظه باقی میمانند، بنابراین استقرار به حافظه یک مدل ۸۱۶ میلیارد پارامتری نیاز دارد، اما با سرعت بسیار بالاتر یک مدل ۴۲ میلیاردی اجرا میشود. checkpoint BF16 حدود ۱.۵ ترابایت در فرمت safetensors است. checkpoint NVFP4 پارامترها را با دقت ۴ بیت ذخیره میکند که افت دقت ناچیزی دارد و به طور خاص برای GPUهای NVIDIA Blackwell طراحی شده است.
انکودر ادراک (Perception Encoder)
یک انکودر ادراک تصاویر و فریمهای ویدیو را به توکنهایی برای مدل زبان تبدیل میکند، دقیقاً مانند Muse Glimmer. این انکودر ۱.۸ میلیارد پارامتر، ۵۰ لایه، بعد پنهان ۱۵۳۶ و ۱۶ هد توجه دارد. هر تصویر را به پچهای ۱۴×۱۴ تقسیم میکند و ویژگیهایی با ۴۰۹۶ بعد تولید میکند. اطلاعات موقعیت از امبدینگهای مطلق یادگرفتهشده و 2D RoPE میآید. شبکه feed-forward در هر لایه از LayerNorm و GELU استفاده میکند. هر چهارمین لایه و آخرین لایه از توجه کامل استفاده میکنند و بقیه لایهها از توجه稀疏 استفاده میکنند.
Muse Glimmer 30B از انکودری با همان معماری استفاده میکند. طراحی از کار Perception Encoder متا پیروی میکند. ویدیو از همان انکودر تصاویر عبور میکند.
انکودر صوتی
Muse Spark Open صدا را از طریق انکودر صوتی خود به عنوان ورودی میپذیرد. یک توکنساز صوتی صدا را به توکن تبدیل میکند و قالب چت موقعیت صدا را با توکنهای <|audio|> علامتگذاری میکند. انکودر هر ۸۰ میلیثانیه یک توکن صوتی تولید میکند که ۱۲.۵ توکن در ثانیه میشود. بنابراین برای یک صدای ۱۰ ثانیهای، تعداد توکنهای ورودی صوتی ۱۲۵ خواهد بود. خود انکودر یک هرم کانولوشنی است که هر مرحله از یک patch embedder با اندازههای پچ مختلف و ۲ بلوک کانولوشنی با کرنلهای 1d به اندازه ۷ با stride 1 تشکیل شده است. این مراحل برای اندازههای پچ [16, 6, 5, 4] تکرار میشوند.
زمینه طولانی
پنجره زمینه در زمان استنتاج ۱ میلیون توکن است. پیکربندی max_position_embeddings را روی ۱,۰۴۸,۵۷۶ تنظیم میکند. این شامل توکنهای تصویر، ویدیو و صدا در همان پنجره متن است.
توجه گروهی-کوئری کش KV را برای مدلی با این اندازه کوچک نگه میدارد. هر توکن ۲ × ۱۶ هد × ۶۴ بعد × ۶۲ لایه = ۱۲۶,۹۷۶ مقدار به کش اضافه میکند. در BF16، این حدود ۲۵۰ کیلوبایت برای هر توکن و حدود ۲۶۶ گیگابایت برای یک زمینه کامل ۱ میلیون توکنی است.
پشتیبانی استنتاج
پیادهسازی Muse Spark Open در transformers کلاس MuseSparkForConditionalGeneration را برای تولید متن از ورودیهای چندوجهی و MuseSparkProcessor را برای آمادهسازی گفتگو فراهم میکند. پردازنده توکنساز، پردازندههای تصویر و ویدیو، استخراجکننده ویژگی صوتی و قالب چت را ترکیب میکند.
برای پیکربندی تنظیمات موازیسازی از DistributedConfig استفاده کنید. tp_size تعداد دستگاههایی است که لایههای متراکم روی آنها shard میشوند و ep_size تعداد دستگاههایی است که متخصصها روی آنها توزیع میشوند.
استنتاج متنی
گفتگو را آماده کنید، سپس پیامها را به processor.apply_chat_template با فعالسازی add_generation_prompt=True، tokenize=True، return_dict=True و return_tensors="pt" منتقل کنید. خروجی پردازنده را به model.generate منتقل کنید و توکنهای تازه تولیدشده را با حذف پیشوند ورودی decode کنید. پردازنده یک اهرم برای تلاش استدلال دارد که سطوح نمادین (low/medium/high/xhigh) را به اعداد صحیحی که خود مدل میپذیرد (16، 64، 256، 512) نگاشت میکند. توجه داشته باشید که خاموش کردن استدلال با Muse Spark Open ممکن نیست، بنابراین اگر میخواهید برای یک کار سادهتر توکنهای کمتری مصرف کنید، مدل را روی «low» نگه دارید.
تصاویر و متن
پردازنده Muse Spark Open هر نشانگر تصویر را به تعداد توکنهای پچ مورد نیاز برای تصویر پردازششده گسترش میدهد که با توکنهای مرزی تصویر احاطه شده است. این گسترش موقعیت متن را با ویژگیهای بصری منتقلشده به مدل همتراز نگه میدارد. پردازنده همچنین چندین تصویر را در یک پرامپت واحد مدیریت میکند.
استنتاج ویدیو
پرامپتهای ویدیو شامل زمانبندی فریم و همچنین محتوای بصری هستند. پردازنده ویدیوهایی با صدا را مدیریت میکند (که به لطف انکودر صوتی، ارتقایی نسبت به Muse Glimmer است). پردازنده فریمهای ویدیو و صدا را برای همتراز کردن فریمها downsample میکند. به طور پیشفرض، ویدیوها با ۲ فریم در ثانیه نمونهبرداری میشوند و حداکثر ۹۶ فریم دارند. میتوانید این را با تنظیم fps پردازنده ویدیو تغییر دهید.
به عنوان یک قانون کلی، ویدیوها فریمهایی در توالی زمانی هستند و هرچه بیشتر downsample کنید، فریمهای بیشتری بین رویدادهای خاص از دست میدهید، بنابراین اگر تولید دقیقتری میخواهید باید fps را بالا نگه دارید. با این حال، یک معاوضه وجود دارد زیرا به حافظه بیشتری نیاز دارید و تأخیر prefill را افزایش میدهید. فریمها با ورودی متنی که زمانبندیها را بیان میکند (مثلاً «Time: 3.5s») در هم آمیخته میشوند. برای فعال کردن عبور ویدیو با صدا، load_audio_from_video=True را به apply_chat_template منتقل کنید.
استنتاج صوتی
برج صوتی Muse Spark Open یک شکل موج خام مصرف میکند. پردازنده انتظار صدای مونو با ۲۴ کیلوهرتز دارد و شکل موج را به مضربی از ۱,۹۲۰ نمونه پد میکند که مربوط به یک امبدینگ صوتی در هر ۸۰ میلیثانیه است. صدایی که مستقیماً با نرخ نمونهبرداری دیگر به پردازنده داده میشود باید ابتدا resample شود. میتوانید این کار را با استفاده از ابزار load_audio از transformers انجام دهید.
پردازنده تعداد توکنهای صوتی مطابق را بین نشانگرهای مرزی صوتی وارد میکند. همچنین یک ماسک شناسایی نمونههای واقعی برمیگرداند که به مدل اجازه میدهد امبدینگهای صوتی پدشده را حذف کند.
فراخوانی ابزار
Muse Spark Open میتواند فراخوانی ابزار متنی و چندوجهی انجام دهد. این مدل از یک قالب چت مبتنی بر کانال (Harmony، که اولین بار توسط gpt-oss معرفی شد) استفاده میکند. لازم نیست جزئیات داخلی را بدانید، اما بررسی کانالهایی که مدل به آنها مسیریابی میکند مفید است، در صورتی که خروجیهای با کیفیت پایین دریافت میکنید.
در قالب چت، <|start|>assistant عمداً باز گذاشته میشود و این مدل است که گیرنده را با to= انتخاب میکند. مدل گیرندههای مختلفی دارد، مثلاً self از مدل میخواهد استدلال کند، commentary نظرات قبل و بین فراخوانیهای ابزار است که برای کاربر نهایی قابل مشاهده است، و user پاسخ نهایی است.
اجرا و استقرار
Muse Spark Open در llama.cpp یکپارچه شده است و در باینریهای از پیش ساختهشده موجود است. نسخه BF16 در transformers روی ۴ نود از ۸ GPU H200 با موازیسازی تنسور (TP=32) اجرا میشود و نسخه NVFP4 روی یک نود B200 اجرا میشود. اگر میخواهید Muse Spark Open را مستقر کنید، دستورالعملهای llama.cpp، vLLM و SGLang را بررسی کنید.
متخصصها حدود ۹۷٪ از کل پارامترهای مدل را در خود دارند و فقط ۸ متخصص برای هر توکن اجرا میشود، بنابراین مدل هر توکن را با حدود ۴۲ میلیارد پارامتر محاسبه میکند. همه ۲۵۶ متخصص در حافظه باقی میمانند، بنابراین استقرار به حافظه یک مدل ۸۱۶ میلیارد پارامتری نیاز دارد، اما با سرعت بسیار بالاتر یک مدل ۴۲ میلیاردی اجرا میشود.
جمعبندی
Muse Spark Open یک گام بزرگ در سری مدلهای Muse متا است. با معماری Mixture of Experts در مقیاس بزرگ، پشتیبانی از ورودیهای چندوجهی (متن، تصویر، صدا و ویدیو) و پنجره زمینه یک میلیون توکن، این مدل برای کارهای عاملی مانند کدنویسی طراحی شده است. اگر به مدلهای متنباز بزرگ علاقهمند هستید، این مدل گزینهای جدی است.
برای آشنایی بیشتر با مدلهای مشابه، میتوانید نوشتههای معرفی Gemini 4 Argon و معرفی مدل Beam 501B را مطالعه کنید.
پرسشهای متداول
Muse Spark Open چیست؟
مدل جدید متا با معماری Mixture of Experts است که حدود ۸۱۶ میلیارد پارامتر دارد و از هر توکن حدود ۴۲ میلیارد پارامتر فعال استفاده میکند. این مدل متن، تصویر، صدا و ویدیو را به عنوان ورودی میپذیرد و خروجی متنی تولید میکند.
Muse Spark Open چه ورودیهایی را پشتیبانی میکند؟
این مدل متن، تصویر، صدا و ویدیو را به عنوان ورودی میپذیرد. ویدیوها با صدا نیز پشتیبانی میشوند و فریمها به همراه صدا پردازش میشوند.
چگونه میتوان Muse Spark Open را اجرا کرد؟
این مدل از طریق transformers، llama.cpp، vLLM و SGLang قابل اجراست. نسخه BF16 روی ۴ نود با ۸ GPU از نوع H200 و نسخه NVFP4 روی یک نود B200 اجرا میشود.
Muse Spark Open برای چه کاری بهینه شده است؟
متا این مدل را برای کدنویسی عاملی (agentic coding) آموزش داده است؛ یعنی خواندن کد، نوشتن و دیباگ کردن کد و فراخوانی ابزارها. همچنین میتواند از تصاویر، صدا و ویدیو برای کمک به این کارها استفاده کند.
منبع: Hugging Face



