مقدمه

مدل‌های بزرگ زبان (LLM) در عمل به عنوان پیش‌بینی‌کنندهٔ توکن بعدی عمل می‌کنند و هر کلمهٔ تولیدی، نیازمند پردازش مجدد کل متن ورودی و توکن‌های قبلی می‌باشد. این ویژگی باعث ایجاد تاخیر در اولین کلمهٔ خروجی و هزینهٔ محاسباتی بالا برای تولید یک پاسخ کامل می‌شود.

مکانیزم توجه و KV caching

مکانیزم توجه (Attention) به بازگشت ووایند از حافظهٔ حافظهٔ کلید-مقدار (KV cache) امکان دسترسی سریع‌تر به بخش‌های مهم متن را می‌دهد. با ذخیره‌سازی مقادیر کلید و مقدار در حافظه، مجددا اجرا می‌شود.

کدینبات پیریافت continuous batching

ابتکال خواندن کل متن و تولید tokenهای بعدی در سری، سرورهای قادرند در یک بلوک (batch) چند درخواست هم‌زمان را پردازش کنند. این مدل باعث افزایش throughput و کاهش latency در پاسخ‌های چت‌بات می‌شود.

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

پیاده‌سازی در Hugging Face

کلاس‌های Seq2SeqTrainer و InferenceEngine در کتابخانه‌ transformers پس از اعمال continuous batching، می‌توانند تعداد درخواست‌های همزمان را چندین برابر کنند. این قابلیت در بخش Enterprise API و Spaces به‌صورت پیش‌فرض فعال است.

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

سیستم continuous batching چگونه زمان اولین کلمه را کاهش می‌دهد؟

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

چه ابزارهایی در Hugging Face برای پیاده‌سازی continuous batching در دسترس هستند؟

ابزارهایی مانند <code>InferenceEngine</code> و <code>Seq2SeqTrainer</code> که در کتابخانه <code>transformers</code> موجود هستند، قابلیت batch پشتیبانی و ذخیره‌سازی KV cache را فراهم می‌آورند.