تصور کنید یک مدل هوش مصنوعی را روی سختافزاری منتقل کنید که در تئوری ایدهآل است، اما در عمل به دلیل چند کیلوبایت کمبود حافظه در یک بافر داخلی، پاسخهایی کاملاً غلط تولید میکند. این دقیقاً چالشی بود که توسعهدهندگان برای استقرار مدل Gemma-4 12B روی تراشههای Neuron شرکت آمازون با آن دستوپنج نرم میکردند.
طبق یک گزارش فنی منتشر شده در ۱۷ ژوئیه ۲۰۲۶ در وبسایت dev.to، تیم توسعه موفق شد به «تطابق کامل توکنبهتوکن با مراجع fp32 در CPU» دست یابد. این دستاورد از طریق سه اصلاح کلیدی حاصل شد که مشکل سرریز شدن بافر داخلی سختافزار یا همان SBUF را برطرف کرد؛ گامی که برای پایدار کردن استنتاج (Inference) — یعنی لحظهای که مدل واقعاً جواب تولید میکند، شبیه خودِ آشپزی و نه دورهی آموزش آشپز — ضروری بود.
همانطور که در تحلیلهای قبلی ما دربارهی بهینهسازی مدلهای لبه اشاره کردیم، انتقال مدلهای بزرگ به شتابدهندههای تخصصی اغلب «دامهای» فنی آشکار میکند که در مسیرهای استاندارد GPU پنهان میمانند. در این مورد، بافر خراش روی تراشه (SBUF) برای پنجرهی توجه مدل، تبدیل به یک گلوگاه شد. این نقطه اصطکاک برای تمام توسعهدهندگانی است که از محاسبات عمومی به سمت سیلیکونهای بهینهشدهی ابری مثل هستههای Neuron در AWS حرکت میکنند.
بر اساس مستندات فنی، این استقرار روی یک نمونه inf2.8xlarge با یک تراشه، دو هسته و ۳۲ گیگابایت حافظه پهنایباند بالا (HBM) انجام شده است. با تنظیم موازیسازی تنسور (TP) روی عدد ۲، سرعت پیشپُرکردن (Prefill) — یعنی مرحلهای که مدل ورودی را میخواند تا پاسخ را شروع کند — به حدود ۱۰۱ میلیثانیه رسید. اثرگذاری حافظه نیز در حالت bf16 حدود ۱۲ گیگابایت به ازای هر رنک بود.
در مورد معماری، مدل ۱۲ میلیارد پارامتری به عنوان «فرزند میانی» این خانواده عمل میکند. برخلاف مدلهای موثر MatFormer یا غولهای ۲۶ و ۳۱ میلیارد پارامتری، این مدل یک مدل متراکم (Dense) با نیازهای منحصربهفرد است. این مدل از دستورالعمل Device-Prefill مدل E4B استفاده میکند که شامل کامپایل تک-رنک و بارگذاری وزنها به ازای هر رنک است.
اما تفاوتهای کلیدی این مدل با خانواده E در موارد زیر است:
- حذف جاسبارهای لایهای: مقدار
hidden_size_per_layer_inputروی صفر تنظیم شده و مسیر PLE حذف شده است. - مدیریت KV: مدل اشتراکگذاری KV بین لایهها را کنار گذاشته و هر لایه مالک KV خود است.
- مکانیزم توجه: ترکیبی از توجه لغزشی و سراسری با پنجرهای به اندازه ۱۰۲۴ توکن، همراه با توجه پرسوجوی گروهبندی شده (GQA) و یک Softcap برابر با ۳۰ را به کار میگیرد.
برای حل مشکلات فنی، تغییرات زیر اعمال شد:
- پوشش Unified: مدل gemma-4-12B-it از کلاس
Gemma4UnifiedForConditionalGenerationاستفاده میکند. با وجود برچسب چندوجهی (Multimodal) — مدلی که همزمان متن، عکس و صدا را میفهمد، شبیه ما که با چند حس دنیا را میخوانیم — این نسخه خاص فاقد رمزگذار صدا یا تصویر است. توسعهدهندگان باید مستقیماً هدف را رویmodel.language_modelقرار دهند. - رفع سرریز توجه: تنظیم
sliding_window=1024باعث میشد مجموعه کاری هسته توجه ادغامی، از SBUF سرریز کند. راه حل این بود که پیادهسازی توجه به حالتeagerتغییر یابد تا ضربهای ماتریسی ساده جایگزین هستههای سریع شوند و در بافر سختافزار جای بگیرند. - تکه تکه کردن لایههای سراسری: در حالت TP=2، لایههای سراسری تنها یک سر KV دارند. برای جلوگیری از خطاهای خاموش در توجه، توسعهدهندگان باید سرهای پرسوجو را تکهتکه (Shard) کرده و سر KV تک را با فرمول
groups = nq // TPگروهبندی کنند. - اصلاح Logit Softcap: مدل مقادیر نهایی لاجیتها را با فرمول $30 \cdot \tanh(\text{logits} / 30)$ محدود میکند. این عملیات روی دستگاه حذف شد زیرا محاسبه $\tanh$ برای واژگانی با ۲۶۲,۱۴۴ توکن در حالت رمزگشایی حریصانه (Greedy Decoding) هزینهبر و بیفایده است.
این تغییرات پیشفرض «برتری همیشگی هستههای ادغامی» را به چالش میکشد. توسعهدهنده در اینجا سرعت خام هسته را فدای گراف محاسباتی کرد که واقعاً کامپایل شود. این موضوع ثابت میکند مدل 12B به دلیل سرریز توجه، رفتاری کاملاً متفاوت از مدلهای کوچکتر خانواده E دارد و در یک منطقه متلاطم قرار گرفته است.
گام بعدی شما
- اگر از مدلهای Gemma-4 با پنجرههای لغزنده (Sliding Window) استفاده میکنید، پیش از انتخاب استراتژی Fused Attention، ظرفیت بافرهای سختافزاری خود را بسنجید.
- برای تستهای بیشتر، آرتیفکتهای کامپایل شده مدل را در مسیر
s3://xbill-gemma4-patches-2b/optb-12b/بررسی کنید. - تفاوت عملکردی بین حالت
eagerوfusedرا در توکنهای تولید شده بسنجید تا نقاط شکست احتمالی را بیابید.
اما اثر این بهینهسازیها بر هزینه استنتاج در مقیاس تجاری حتی پیچیدهتر است — به تحلیل ما درباره تراشههای Blackwell مراجعه کنید.




گفتگو