چگونه کوانتیزاسیون ۸-بیتی، حافظه مورد نیاز مدلهای زبانی بزرگ را با کمترین افت دقت تا ۷۵٪ کاهش میدهد
با تبدیل پارامترهای ممیز شناور ۳۲-بیتی به اعداد صحیح ۸-بیتی، فرآیند کوانتیزاسیون حافظه مورد نیاز برای اجرای مدلهای زبانی بزرگ را تا ۷۵٪ کاهش میدهد. تکنیکهای پیشرفته با جداسازی مقادیر پرت و حیاتی، از افت دقتی که معمولاً در هوش مصنوعی با دقت پایین رخ میداد، جلوگیری میکنند.
به قلم ندا وزیری
این خبر را به اشتراک بگذارید
- پژوهشگران هوش مصنوعی
- تمرکز بر وفاداری ریاضی مدل و کشف ویژگیهای پرت نوظهوری که عملکرد ترانسفورمر را دیکته میکنند.
- پذیرندگان سازمانی هوش مصنوعی
- ارزشگذاری بر صرفهجویی در هزینهها و دسترسی سختافزاری، با اولویت دادن به تعادل بین کاهش حافظه و حفظ دقت در سطح عملیاتی.
- توسعهدهندگان متنباز
- تأکید بر دموکراتیزه شدن هوش مصنوعی، چرا که کوانتیزاسیون اجازه میدهد مدلهای عظیم روی سختافزارهای معمولی و دستگاههای لبه اجرا شوند.
- تیم تحریریه فکتلن
- ترکیب شواهد برای نشان دادن اینکه چگونه کوانتیزاسیون، مقیاس مدل را از هزینههای تصاعدی سختافزار جدا میکند.
دیدگاههایی که این گزارش پوشش نداده
- تولیدکنندگان سختافزار
- توسعهدهندگان برنامههای کاربردی نهایی
نکات کلیدی
- کوانتیزاسیون اعداد صحیح ۸-بیتی، ردپای حافظه مدلهای زبانی بزرگ را در مقایسه با دقت ممیز شناور ۳۲-بیتی تا ۷۵٪ کاهش میدهد.
- تلاشهای اولیه برای کوانتیزاسیون ۸-بیتی شکست خوردند زیرا وزنهای پرت و حیاتی را از بین میبردند و باعث فروپاشی دقت مدل میشدند.
- الگوریتم LLM.int8() این مشکل را با جداسازی ۰٫۱٪ از ویژگیهای پرت و محاسبه آنها در دقت ۱۶-بیتی حل میکند.
- این رویکرد دقت ترکیبی به مدلهایی با حداکثر ۱۷۵ میلیارد پارامتر اجازه میدهد تا بدون هیچگونه افت عملکردی اجرا شوند.
- کوانتیزاسیون موانع سختافزاری هوش مصنوعی را به شدت کاهش داده و به مدلهای عظیم اجازه میدهد روی پردازندههای گرافیکی معمولی و دستگاههای لبه اجرا شوند.
چرا مهم است
با کاهش ۷۵ درصدی حافظه مورد نیاز، کوانتیزاسیون ۸-بیتی به سیستمهای عظیم و پیشرفته هوش مصنوعی اجازه میدهد تا به جای کلاسترهای سرور چند میلیون دلاری، روی سختافزارهای معمولی اجرا شوند. این دستاورد ریاضی، توسعه هوش مصنوعی را دموکراتیزه کرده و هزینه استقرار برنامههای هوشمند را به شدت پایین میآورد.
در آگوست ۲۰۲۲، پژوهشگران دانشگاه واشنگتن و Meta AI با یک بنبست ریاضی مواجه شدند: یک مدل زبانی با ۱۷۵ میلیارد پارامتر، تنها برای بارگذاری در یک سرور به ۳۵۰ گیگابایت حافظه نیاز داشت. در دقت ۱۶-بیتی، که فرمت استاندارد برای توزیع مدلهای آموزشدیده است، حجم عظیم پارامترها به این معنا بود که اجرای یک هوش مصنوعی پرچمدار نیازمند خوشهای از سختافزارهای تخصصی با هزینه دهها هزار دلار است. هوش این مدل کاملاً در همین اعداد نهفته بود، اما سختافزار لازم برای نگهداری آنها، دسترسی را تنها به چند آزمایشگاه با بودجههای کلان محدود میکرد.[1][2]
راهکار عبور از این گلوگاه، تکنیک فشردهسازی خاصی به نام کوانتیزاسیون (Quantization) است. در هسته خود، یک مدل زبانی مجموعهای عظیم از وزنهاست؛ مقادیر یادگیریشدهای که نحوه پردازش زبان توسط شبکه را تعیین میکنند. در طول آموزش، این وزنها معمولاً به صورت اعداد ممیز شناور ۳۲-بیتی (FP32) ذخیره میشوند که برای نمایش مقادیر اعشاری با دقت بالا، به چهار بایت برای هر وزن نیاز دارند. با تبدیل این پارامترهای ۳۲-بیتی به اعداد صحیح ۸-بیتی (INT8)، کوانتیزاسیون ردپای حافظه مدل را دقیقاً ۷۵٪ کوچک میکند.[5]
یک مدل ۱۷۵ میلیارد پارامتری که در حالت FP32 حدود ۷۰۰ گیگابایت حافظه مصرف میکند، با کوانتیزه شدن به INT8 تنها به ۱۷۵ گیگابایت فضا نیاز خواهد داشت. این کاهش چشمگیر به مدلهای عظیم اجازه میدهد تا روی سختافزارهای رده مصرفکننده یا دستگاههای لبه (Edge Devices) اجرا شوند؛ دستگاههایی که در غیر این صورت زیر بار چنین حافظهای از کار میافتادند.[1][3]
ذخیره یک عدد با ۸ بیت به جای ۳۲ بیت، ذاتاً با از دست رفتن دادهها همراه است. یک عدد صحیح ۸-بیتی تنها میتواند ۲۵۶ مقدار مجزا را نشان دهد، در حالی که یک ممیز شناور ۳۲-بیتی میلیونها مقدار را پوشش میدهد. فرآیند کوانتیزاسیون، این طیف وسیع از مقادیر ممیز شناور را با مقیاسبندی و گرد کردن به نزدیکترین عدد صحیح موجود، در این فضای محدود ۸-بیتی نگاشت میکند.[2][5]
در گذشته، این کاهش دقت باعث افت فاجعهباری در عملکرد مدل میشد. در تلاشهای اولیه برای کوانتیزه کردن مدلهای بزرگ ترانسفورمر، عملکرد به قدری افت میکرد که خروجی هوش مصنوعی به نویزهای تصادفی تبدیل میشد. خطاهای گرد کردن در میان میلیاردها پارامتر روی هم انباشته شده و روابط ظریفی را که مدل در طول آموزش یاد گرفته بود، از بین میبرد.[1][2]
پیشرفت زمانی حاصل شد که پژوهشگران علت اصلی این افت را شناسایی کردند: ویژگیهای پرت نوظهور (Emergent outlier features). در مدلهای بزرگتر از ۶٫۷ میلیارد پارامتر، یک الگوی بسیار سیستماتیک در لایههای ترانسفورمر پدیدار میشود. کسر کوچکی از ابعاد ویژگیها — تقریباً ۰٫۱٪ — مقادیر عددی بسیار بزرگی پیدا میکنند که عملکرد پیشبینی مدل را تحت سلطه خود درمیآورند.[1][2]
از آنجا که این مقادیر پرت بسیار بزرگ هستند، مقیاس کوانتیزاسیون را منحرف میکنند. اگر یک الگوریتم سعی کند هم وزنهای عادی و هم مقادیر پرت شدید را در همان محدوده ۲۵۶ مقداری جای دهد، وزنهای عادی در یک نوار بسیار باریک از اعداد صحیح فشرده شده و ظرافت آنها از بین میرود. از سوی دیگر، اگر مقادیر پرت برای حفظ وزنهای عادی برش داده شوند، مدل اطلاعات حیاتی نهفته در آن مقادیر شدید را از دست میدهد.[1][2]
از آنجا که این مقادیر پرت بسیار بزرگ هستند، مقیاس کوانتیزاسیون را منحرف میکنند.
برای حل این مشکل، الگوریتم LLM.int8() یک طرح تجزیه با دقت ترکیبی (Mixed-precision decomposition) را معرفی کرد. به جای اینکه هر عدد به زور در یک فرمت ۸-بیتی گنجانده شود، این الگوریتم در طول فرآیند ضرب ماتریس، ابعاد ویژگیهای پرت را به صورت پویا شناسایی میکند.[1][2]
آن ۹۹٫۹٪ از مقادیری که در یک توزیع نرمال قرار میگیرند، با دقت ۸-بیتی ضرب میشوند تا از مزایای عظیم محاسبات اعداد صحیح در سرعت و حافظه بهرهمند شوند. در همین حال، ۰٫۱٪ مقادیر پرت جدا شده و با دقت ممیز شناور ۱۶-بیتی ضرب میشوند.[1][2]
پس از اتمام ضربهای جداگانه، نتایج ۸-بیتی دوباره به ۱۶-بیتی دیکوانتیزه (Dequantize) شده و با نتایج مقادیر پرت ترکیب میشوند تا خروجی نهایی به دست آید. از آنجا که مقادیر پرت کسر بسیار کوچکی از کل پارامترها را تشکیل میدهند، محاسبه آنها با دقت بالاتر، عملاً هیچ بار اضافی بر حافظه سیستم تحمیل نمیکند.[1][2]
نتایج تجربی این رویکرد دقت ترکیبی ثابت کرد که کوانتیزاسیون ۸-بیتی میتواند بدون هیچگونه افت عملکردی محقق شود. یک مدل ۱۷۵ میلیارد پارامتری که با LLM.int8() کوانتیزه شده بود، از نظر پرپلکسیتی (Perplexity) و دقت در وظایف Zero-shot کاملاً با نسخه ۱۶-بیتی خود برابری میکرد، در حالی که تنها به نیمی از حافظه پایه FP16 و یکچهارم حافظه پایه FP32 نیاز داشت.[1][2]
فراتر از صرفهجویی در حافظه، کوانتیزاسیون ۸-بیتی سرعت استنتاج را نیز افزایش میدهد. شتابدهندههای سختافزاری مدرن و پردازندههای مرکزی (CPU) به شدت برای محاسبات اعداد صحیح ۸-بیتی بهینهسازی شدهاند. با پردازش محاسبات در حالت INT8، سختافزار میتواند ضرب ماتریسها را به مراتب سریعتر انجام دهد که منجر به نرخ تولید توکن بالاتر و کاهش مصرف انرژی میشود.[4]
این کارایی مستقیماً به صرفهجویی در هزینهها در محیطهای عملیاتی ترجمه میشود. هزینههای استنتاج ابری برای مدلهای بزرگ میتواند با استفاده از کوانتیزاسیون بیش از ۶۰٪ کاهش یابد، زیرا کاهش ردپای حافظه به اپراتورها اجازه میدهد مدلهای بیشتری را روی پردازندههای گرافیکی (GPU) کمتری قرار دهند. همانطور که تونی هیگینز (Tonny Higgins)، استراتژیست فناوری، در یک بنچمارک صنعتی در سال ۲۰۲۶ اشاره کرد: «یک مدل بزرگ که به خوبی کوانتیزه شده باشد، اغلب یک مدل کوچکتر با دقت کامل و ردپای حافظه مشابه را شکست میدهد.»
در حالی که کوانتیزاسیون ۸-بیتی اکنون به یک رویه استاندارد تبدیل شده است، صنعت همچنان در حال جابجا کردن مرزهای فشردهسازی است. پژوهشگران تکنیکهای کوانتیزاسیون ۴-بیتی مانند GPTQ و AWQ را توسعه دادهاند که مدلها را ۵۰٪ دیگر نیز فشرده میکنند. با این حال، این نرخهای فشردهسازی تهاجمی نیازمند دادههای کالیبراسیون پیچیدهای هستند و اغلب باعث افت ۱ تا ۲ درصدی دقت میشوند؛ موضوعی که کوانتیزاسیون ۸-بیتی را به انتخاب ارجح برای استقرارهایی تبدیل میکند که در آنها دقت حرف اول را میزند.
واقعیت ریاضی کوانتیزاسیون ۸-بیتی ثابت میکند که هوش یک مدل زبانی بزرگ، صرفاً به دقت بالای تکتک پارامترها وابسته نیست. با محافظت از ۰٫۱٪ وزنهای پرت و حیاتی و فشردهسازی بقیه آنها، توسعهدهندگان توانستهاند مقیاس مدلهای هوش مصنوعی را از هزینههای تصاعدی سختافزاری که زمانی آنها را محدود میکرد، جدا کنند. مرز بعدی فشردهسازی نشان خواهد داد که آیا با عبور مدلها از آستانه ۱ تریلیون پارامتر، این جداسازی هدفمند همچنان کارایی خود را حفظ خواهد کرد یا خیر.[1][6]
اصطلاحات کلیدی
- کوانتیزاسیون
- فرآیند کاهش دقت وزنهای یک مدل از یک فرمت با حافظه بالا به فرمتی با حافظه پایینتر برای صرفهجویی در فضا.
- FP32 (ممیز شناور ۳۲-بیتی)
- یک فرمت عددی با دقت بالا که از چهار بایت حافظه برای هر عدد استفاده میکند و معمولاً در طول آموزش اولیه مدلهای هوش مصنوعی به کار میرود.
- INT8 (عدد صحیح ۸-بیتی)
- یک فرمت عددی با دقت پایینتر که از یک بایت حافظه برای هر عدد استفاده میکند و امکان نمایش ۲۵۶ مقدار مجزا را فراهم میسازد.
- مقادیر پرت نوظهور
- ابعاد ویژگی خاصی در مدلهای بزرگ که مقادیر عددی شدیدی پیدا کرده و دقت پیشبینی مدل را تحت سلطه خود درمیآورند.
- پرپلکسیتی
- معیاری که برای ارزیابی میزان موفقیت یک مدل زبانی در پیشبینی یک نمونه متن استفاده میشود؛ پرپلکسیتی پایینتر نشاندهنده عملکرد بهتر است.
آنچه نمیدانیم
- اینکه آیا آستانه ۶٫۷ میلیارد پارامتری برای ویژگیهای پرت نوظهور به طور جهانی در تمام معماریهای آینده شبکههای عصبی صدق میکند، یا اینکه مختص نسل فعلی ترانسفورمرهاست.
- اینکه تکنیکهای تهاجمی کوانتیزاسیون زیر ۴-بیتی با عبور مدلها از مرز ۱ تریلیون پارامتر چگونه مقیاسپذیر خواهند بود و آیا به بازنماییهای ریاضی جدیدی نیاز خواهد بود یا خیر.
- تأثیر بلندمدت آموزش آگاه از کوانتیزاسیون (QAT) در مقابل کوانتیزاسیون پس از آموزش (PTQ) بر قابلیتهای استدلال مدلهای بسیار تخصصی STEM.
منابع
[1]arXivپژوهشگران هوش مصنوعیLLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
مطالعه در arXiv →
[2]Hugging Faceپژوهشگران هوش مصنوعیA Gentle Introduction to 8-bit Matrix Multiplication for transformers at scale
مطالعه در Hugging Face →
[3]Towards AIتوسعهدهندگان متنبازQuantization and Fine-Tuning in LLM: Cut Model Size by 75% Without Losing Accuracy
مطالعه در Towards AI →
[4]Lightning AIتوسعهدهندگان متنباز8-bit Quantization
مطالعه در Lightning AI →
[5]IBMپذیرندگان سازمانی هوش مصنوعیWhat is quantization?
مطالعه در IBM →
[6]تیم سردبیری کوهستانتیم تحریریه فکتلنتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
نظرات
هر زاویه. هر روز.
دریافت هوش مصنوعی اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.
