کوانتش روشی برای فشردهسازی مدلهاست که با ذخیرهسازی هر وزن در قالب بیتهای کمتر انجام میشود. این کار مصرف حافظه را کاهش میدهد و سرعت اجرای مدل را افزایش میدهد. اما در پسِ این بهینهسازی چه رخ میدهد؟ دقیقاً چه چیزی را از دست میدهیم و چرا مدلها معمولاً در این فرآیند آسیب جدی نمیبینند؟ بیایید نگاهی دقیقتر بیندازیم.
گرد کردن به شبکهای کوچکتر
اساس کار کوانتش بر یک عملیات ساده استوار است: گرد کردن. در حالت دقت کامل، هر وزن میتواند یکی از دهها هزار مقدار ممکن را به خود بگیرد. کوانتش این مقادیر را به شبکهای بسیار کوچکتر محدود میسازد؛ برای نمونه، ۲۵۶ مقدار در حالت ۸ بیتی، یا تنها ۱۶ مقدار در حالت ۴ بیتی. بدین ترتیب، هر وزن اصلی به نزدیکترین مقدار موجود در این شبکه گرد میشود. برای نمونه، وزنی مانند 0.3847 ممکن است به 0.3861 گرد شود؛ خطایی کوچک، اما واقعی.
انباشت خطا
این خطای کوچک بهتنهایی بیضرر به نظر میرسد. اما یک مدل از دهها لایه تشکیل شده است و خطای هر لایه به لایه بعدی منتقل میشود. این انباشتِ خطا میتواند انحراف کوچک اولیه را در طول مسیر مدل تشدید کند. از همین رو، هرچه شبکه کوانتش زمختتر (با تعداد بیتهای کمتر) باشد، افت کیفیت مدل نیز عمیقتر میشود؛ روندی که نه خطی، بلکه شتابان و فزاینده است.
مشکل مقادیر پرت
با این حال، بزرگترین چالش کوانتش در جای دیگری نهفته است: مقادیر پرت. توزیع وزنهای یک مدل معمولاً متمرکز و نزدیک به صفر است و بیشتر وزنها مقادیر کوچکی دارند. اما در این میان، چند وزن بسیار بزرگ نیز به چشم میخورد. اگر دامنه شبکه کوانتش را آنقدر گسترده تعریف کنید که این مقادیر بزرگ را هم شامل شود، فاصله میان نقاط شبکه افزایش مییابد؛ در نتیجه، دقت فرآیند در محدوده نزدیک به صفر — یعنی جایی که تمرکز اصلی وزنهاست — از دست میرود. این دقیقاً همان نقطهای است که کوانتشِ خام بیشترین ضربه را به مدل وارد میکند، و روشهای پیشرفته نیز دقیقاً برای مدیریت مجزای همین مقادیر پرت طراحی شدهاند.
فروریزش فضای برداری
در فشردهسازیهای شدید (مانند حالتهای ۲ یا ۳ بیتی)، پدیده نامطلوبتری رخ میدهد: مقادیر متفاوت به یک مقدارِ کوانتششده واحد نگاشت میشوند. وقتی وزنهایی که پیش از این متمایز بودند همارز و یکسان میشوند، مدل توانایی تفکیک خود را از دست میدهد؛ گویی ظرفیت اطلاعاتی آن ناگهان فرو میپاشد. این پدیده نشان میدهد که چرا افت کیفیت در بیتهای بسیار پایین، برخلاف روند تدریجی معمول، ناگهان شدت میگیرد.
چرا مدلها مقاوماند
با تمام این اوصاف، نکته شگفتانگیز این است که مدلهای زبانی در برابر کوانتش ملایم مقاومت بسیار بالایی نشان میدهند. در حالت ۸ بیتی، افت کیفیت معمولاً کمتر از ۱ درصد است و در حالت ۴ بیتی نیز با بهکارگیری روشهای مناسب، این افت بین ۱ تا ۳ درصد خواهد بود. دلیل این امر آن است که وزنهای مدل حاصل فرآیندی آماری هستند و نه محاسبات دقیق ریاضی؛ از سوی دیگر، افزونگیِ درونی مدل — یعنی وجود میلیونها پارامتر — به آن امکان میدهد تا خطارهای جزئی را به شکلی خنثی یا «دور» بزند. مدلها بیش از نیاز واقعی خود برای انجام وظایفشان پارامتر دارند و همین ظرفیت مازاد است که اجرای کوانتش را امکانپذیر میسازد.
جمعبندی
کوانتش موازنهای هوشمندانه است: افزایش سرعت و کاهش مصرف حافظه در ازای افتی ناچیز در دقت. کلید موفقیت در این فرآیند، شناخت دقیق مرزهاست؛ یعنی بدانیم تا چه حد میتوان مدل را فشرده کرد، پیش از آنکه انباشت خطا و فروریزش فضای برداری منجر به افت شدید کیفیت شوند. در نهایت، مانند همیشه، رفتار مدل در کار واقعی شما داور نهایی است، نه صرفاً عدد بیت.