تُحدَّث يومياً

مصدرُك العربي
لمستقبل الذكاء الاصطناعي

أخبار، تقارير، أدوات وتحليلات يومية — كل ما تحتاجه لمتابعة ثورة الذكاء الاصطناعي باللغة العربية

✅ تم الاشتراك!
أخبار الذكاء الاصطناعي

llama.cpp b10255 يدعم ذاكرة KV المضغوطة على مسار SYCL

بقلم: ليلى | محررة أدوات المطورين · صوت تحريري بإشراف بشري

أصدر مشروع llama.cpp إصداره b10255 بتحسين محوري يطال مسار الاستدلال على أجهزة Intel: توسيع SDPA القائم على oneDNN ليشمل صيغ KV cache المضغوطة بدلاً من الاقتصار على FP16، وهو ما كان يُجبر المطورين حتى الآن على الاحتفاظ بذاكرة KV كاملة الدقة عند استخدام هذا المسار المُحسَّن.

الفكرة الجوهرية في هذا التغيير هي أن النواة المتشعبة الموحّدة (fused systolic kernel) تعمل دائماً بـ FP16، لكن المشكلة كانت في الوصول إليها. الحل الذي جاء به الإصدار b10255 (وفقاً لـ llama.cpp GitHub) هو إدخال خطوة تحويل على الجهاز مباشرةً تُحوِّل مصفوفات K و V إلى FP16 كثيفة قبل تمريرها إلى رسم SDPA، وهذا يعني أن الفائدة الحسابية للنواة المتشعبة تُصبح متاحة بصرف النظر عن صيغة الكميات المُستخدمة.

الصيغ المدعومة الآن في هذا المسار هي: Q4_0 و Q4_1 و Q5_0 و Q5_1 و Q8_0 عبر دوال to_fp16_sycl و to_fp16_nc_sycl، إضافةً إلى F32 عبر cont_to_f16_sycl<float>. في المقابل، صيغتا BF16 وأنواع IQ لا تزالان خارج نطاق الدعم لأن دوال التحويل اللازمة غير متوفرة بعد. كذلك ثمة شرط ضروري للصيغ غير FP16: طول السياق K يجب أن يكون 1024 رمزاً أو أكثر وطول الاستعلام Q لا يقل عن 32 رمزاً، ما يعني أن هذا المسار يعمل في مرحلة prefill فعلياً دون مرحلة التوليد المتسلسل — بينما تبقى ذاكرة FP16 تعمل بلا قيود كما كانت.

جاء معه أيضاً إصلاح لمزامنة السيل (stream sync) عبر تطبيق stream->wait_and_throw() بشكل غير مشروط بدلاً من الاستدعاء الانتقائي السابق، وإزالة aliasing الذي كان يجعل V مجرد إشارة إلى K مشتركة — وهو ما أتاح الآن تخصيص مصفوفتَي K و V كمخازن مستقلة بعد عملية dequantization.

من منظور عملي، هذا التحديث يفيد كل من يُشغِّل نماذج كبيرة بذاكرة KV مضغوطة على أجهزة Intel الداعمة لـ SYCL — وهو سيناريو شائع حين تُريد تقليص استهلاك الذاكرة دون التخلي عن الأداء المُحسَّن للنواة المتشعبة. قبل هذا الإصدار كان الخيار ثنائياً: إما ذاكرة FP16 الكاملة مع الأداء الكامل، أو ذاكرة مضغوطة مع مسار أبطأ. الإصدار b10255 يُلغي هذه المقايضة لأغلب الصيغ الشائعة.

الإصدار متاح للتحميل الآن عبر بنائها المعتادة: macOS Apple Silicon و Intel، وLinux بنكهات CPU وVulkan وROCm 7.2 وOpenVINO وSYCL، وWindows بدعم CUDA 12.4 و13.3 وVulkan وHIP وSYCL، إضافةً إلى Android arm64.

llama.cpp GitHub Releases

مقالات ذات صلة

زر الذهاب إلى الأعلى