معرفی

مدل‌های زبان هوش مصنوعی به‌صورت خودکار متن تولید می‌کنند و برای این منظور از معماری ترنسفورمر استفاده می‌کنند. در این مقاله به بررسی یکی از تکنیک‌های بهینه‌سازی مهم، کش کلید–مقدار (KV) در مورد مدل nanoVLM می‌پردازیم.

چرا کش KV ضروری است

در حین پیش‌بینی، مدل عبارت‌های مکرر را به‌طور مکرر محاسبه می‌کند که منجر به حاشیه‌های زمان‌بر می‌شود. کش KV به کاهش این تکرار دست می‌یابد و کارایی را به طرز چشمگیری افزایش می‌دهد.

پیاده‌سازی در nanoVLM

به‌صورت کامل از ابتدا در رده‌ی کدهای پاک با پایتورچ پیاده‌سازی شد. مراحل کلیدی عبارت بودند از:

  • به‌روز‌رسانی کش در بلوک توجه برای هر گام نمونه‌سازی
  • کارت‌یابی کش میان لایه‌های مختلف ترنسفورمر
  • مدیریت پارامترهای پریفیل و دی‌کود در حلقه تولید متن

نتایج و دستاوردها

پیاده‌سازی کامل کش KV در nanoVLM، سرعت تولید متن را حدود 38 ٪ بهبود بخشید و همین‌طور به‌بودار هزینه‌های حافظه‌ی کاربر نهایی می‌انجامید؛ این امر می‌تواند به سادگی برای مدل‌های دیگر اتخاذ شود.

نتیجه‌گیری

کش KV نه‌تنها در زمینه‌ی تکمیل متن بلکه در سیستم‌های تولید زبان تماماً در مدل‌های خودکار قابل استفاده است. کوچک‌ترین تغییرات کد در موارد کاربردی زیادی نوواژبرده می‌شود و شفاف‌سازی فرایندها را تسهیل می‌کند.

پرسش‌های پرتکرار

کش KV چگونه سرعت تولید متن را افزایش می‌دهد؟

با ذخیره‌سازی کلید و مقدارهای موقتی در حافظه، مدل نیازی به گشوده شدن مجدد تمام لایه‌ها برای توکن‌های قبلی ندارد؛ این امر به کاهش محاسبات زمان‌بر کمک می‌کند.

آیا پیاده‌سازی کش KV در مدل‌های دیگر نیز امکان‌پذیر است؟

بله، اصول ایجاد کش KV در مدل‌های ترنسفورمر معتبر است؛ فقط باید انطباق آن با معماری و چارچوب پایتورچ یا سایر فریم‌ورک‌های مشابه را بررسی کنید.