آزمایش Qwen3.8 27B: اثر اندک KV cache هشت‌بیتی و هشدار درباره چهار‌بیتی

چرا مهم است

اگر Qwen3.8 27B را با محدودیت VRAM اجرا می‌کنی، این آزمایش تفاوت cache هشت‌بیتی و چهاربیتی را نشان می‌دهد. کاهش مصرف KV cache در حالت هشت‌بیتی با تغییر بسیار کم KLD همراه بوده، اما نتیجه چهاربیتی متفاوت است.

قبل از خواندن، این‌ها را بدان۳ مفهوم
KV cache

داده‌های Key و Value محاسبه‌شده برای token‌های قبلی که هنگام تولید token بعدی دوباره استفاده می‌شوند.

در حال نگارش: KV cache

quantization

نمایش مقادیر عددی مانند وزن‌ها یا داده‌های cache با دقت کمتر و تعداد bit کمتر.

در حال نگارش: quantization

KL divergence

معیاری برای اندازه‌گیری فاصله یک توزیع احتمال از توزیع مرجع؛ مقدار صفر نشان می‌دهد این دو تفاوتی ندارند.

در حال نگارش: KL divergence

یک بررسی، اثر quantization در KV cache مدل Qwen3.8 27B را با مقایسه توزیع احتمال خروجی اندازه گرفته است. نویسنده ۳۵ حالت weight quantization را در llama.cpp،؜ exllamav3 و vLLM با cache شانزده‌بیتی، هشت‌بیتی و در صورت پشتیبانی، چهاربیتی آزمایش کرده است. داده‌های آزمایش شامل متن‌هایی از حوزه‌های مختلف و نمونه‌های agentic tool-use بوده و طول هر ردیف تا ۶۴ هزار token می‌رسد.

معیار اصلی، KL divergence یا KLD است: میزان فاصله احتمال token بعدی از نسخه مرجع bf16 بدون quantization. صفر یعنی توزیع احتمال تغییری نکرده است؛ بنابراین این اعداد مستقیماً درصد افت کیفیت پاسخ نیستند. برای مقایسه اثر cache نیز token‌های یکسان در هر prompt بررسی شده‌اند.

نتیجه اصلی برای cache هشت‌بیتی مثبت بود. در llama.cpp و ExLlamaV3،؜ تغییر KLD برای همه حالت‌های آزمایش‌شده کمتر از ۰٫۰۰۰۱۲ در هر جهت بود؛ نویسنده این مقدار را در محدوده نوسان محاسبات عددی می‌داند. در context با ۶۴ هزار token،؜ مصرف KV cache از ۴ GiB به حدود ۲٫۱۳ GiB رسید. در vLLM،؜ cache از نوع FP8 مصرف را به ۲ GiB رساند، اما KLD بین ۰٫۰۰۰۴ تا ۰٫۰۰۰۶ افزایش یافت.

cache چهاربیتی اثر محسوس‌تری داشت. در llama.cpp،؜ افزایش KLD حدود ۰٫۰۰۱۶ تا ۰٫۰۰۲۷ بود و اثر نسبی آن برای وزن‌های دقیق‌تر بیشتر می‌شد. برای Q8_0،؜ مقدار KL از ۰٫۰۰۰۷ به ۰٫۰۰۳۴ رسید؛ بدتر از UD-Q5_K_XL با cache شانزده‌بیتی. در EXL3 نیز میزان افزایش به دقت وزن‌ها وابسته بود. vLLM گزینه cache چهاربیتی نداشت.

در ۱۲ سند بلند آزمایش، اثر منفی cache چهاربیتی با طول context بیشتر شد: افزایش KL در محدوده ۱۶ تا ۳۲ هزار token،؜ حدود ۱۵ تا ۳۰ درصد بیشتر از ۴ هزار token نخست بود. نویسنده استفاده از cache چهاربیتی را توصیه نمی‌کند، هرچند احتمال می‌دهد برای وزن‌های Q3 یا پایین‌تر ارزش بررسی داشته باشد.

بررسی همچنین نشان داد activation quantization در نتایج vLLM سهم دارد. اجرای دوباره NVFP4 و FP8 با Marlin kernel‌ها و activation از نوع bf16،؜ KLD را کاهش داد. بااین‌حال، این یافته‌ها درباره فاصله توزیع احتمال در همین آزمایش‌اند و نباید با نتیجه مستقیم یک ارزیابی کیفیت پاسخ یکسان گرفته شوند.

نکته کلیدی

در انتخاب KV cache،؜ فقط تعداد bit را نگاه نکن؛ نوع اجرا، دقت وزن‌ها و طول context را هم در نظر بگیر. KLD فاصله توزیع احتمال را می‌سنجد، پس اعداد این بررسی را درصد افت کیفیت پاسخ حساب نکن.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)