llama.cpp
llama.cpp 0.6.0 يضيف GLM-5.3-Flash وClef، وواجهة لنماذج القرار في الخادم، ونوى حسابية جديدة لـ Metal
فُحص آلياً على صفحة llama.cpp في .
يقدّم الإصدار llama.cpp 0.6.0 واجهة برمجية موسّعة جديدة للدفعات، ويضيف GLM-5.3-Flash ونموذج القرار Clef وفكّ الترميز التخميني MTP لنموذج Qwen4Exp، ويعطي الخادم واجهة /v1/systemone لنماذج القرار، ويجدّد واجهة الويب حول Hugging Face Hub، ويضيف إلى Metal وVulkan دعماً جديداً لـ flash attention، وينقل ggml إلى v0.26.0. وتؤرّخه صفحة الإصدار في 5 تشرين الأول الساعة 16:56. إن كنت تشغّل llama-server على Mac، فنواتان حسابيتان جديدتان لـ Metal تغيّران ما يجري تحته — والنواة (kernel) هي الشيفرة الصغيرة التي تنفّذ عمليّة حسابية واحدة على المعالج الرسومي. وإن كنت على بطاقة NVIDIA، فما يستحقّ نظرك مسار جديد لصيغتَي تكميم، وطريقة أسرع لتوليد النصّ من Qwen4Exp.
ما الذي تغيّر
يضيف الإصدار واجهة موسّعة للدفعات اسمها llama_batch_ext، ومعها llama_process(). والدفعة (batch) هي ما يعالجه النموذج في خطوة واحدة؛ والجديد أنّ الدفعة الواحدة صار بإمكانها أن تخلط الرموز — قطع النصّ التي يقرؤها النموذج — بالتضمينات، وهي مدخلات جاهزة على هيئة أرقام. وانتقلت إليها الأمثلة، وفكّ الترميز التخميني، وmtmd (الجزء الخاصّ بالوسائط المتعدّدة)، والخادم نفسه. ومعها تغيّرت صيغ الحالة المحفوظة: صارLLAMA_SESSION_VERSION هو 11، وLLAMA_STATE_SEQ_VERSIONهو 4.
وفي النماذج، يصل GLM-5.3-Flash (واسمه أيضاً GLM5-Next)، وهو نموذج هجين بحجم 320B يقرأ النصّ والصور، ومبنيّ على مزيج الخبراء (MoE). وصار نموذج القرار Clef مدعوماً بالكامل، للنصّ وللصور. وحصل Qwen4Exp على ما تسمّيه الصفحة دعماً عالي الجودة، مع إصلاحات للصحّة، ومع فكّ الترميز التخميني MTP — وفكّ الترميز التخميني (speculative decoding) أن تُقترح الكلمات التالية مسبقاً ثمّ يتحقّق منها النموذج دفعة واحدة، فيخرج النصّ أسرع. والصفحة تقدّر الكسب بنحو 1.5 مرّة على DGX Spark.
وفي الخادم، صارت هناك واجهة /v1/systemone لخمسة نماذج قرار: laya وjulia-1 وlev وopenjev (مع الرؤية) وkev ؛ وانضمّ إليها نموذج سادس، nimble، في الإصدار نفسه. وصارGET /v1/models وGET /models يذكران لكلّ نموذج ما يقبله وما يُخرجه — نصّاً أو صورة أو صوتاً — في كائن جديد اسمه architecture. وصار/v1/embeddingsيقبل الصور والصوت والفيديو، ويردّ على الطلب غير الصالح بـ HTTP 400. وفي وضع الموجِّه — الجزء من الخادم الذي يطلق عمليّة فرعية لكلّ نموذج — صارت السجلّات تفصل أوامر العمليّات الفرعية عن بقيّة السطور، وصار بإمكان الإعداد المسبق (preset) أن يحدّد ملفّ السجلّ. أمّا واجهة الويب المدمجة فحصلت على مسار لتنزيل النماذج، وطبقة بيانات من Hugging Face Hub، وتقدير لما إذا كان النموذج يتّسع في ذاكرتك.
وتحت النماذج، حصلت Metal على نواة flash attention لذاكرة KV المؤقّتة بدقّة F16 — وذاكرة KV هي حيث يحفظ النموذج ما قرأه من المحادثة حتّى الآن — وعلى نوى لضرب المصفوفات (mat-mul) مخصّصة لفكّ الترميز التخميني وللدفعات، تقول الصفحة إنّها تجعل ضرب المصفوفات أسرع بما يصل إلى نحو 3 مرّات على معالجات Apple الرسومية. وانتقلت ggml إلى v0.26.0 ؛ وفيها حصلت CUDA على مسار W4A4 لضرب المصفوفات في نماذج NVFP4 وMXFP4، وعلى دمج للخبراء المشتركين ، وصار تحميل النماذج أسرع، مع تحقّق أشدّ من أحجام ملفّات GGUF.
ما كان قبل ذلك
تعرض الصفحة كلّ ما سبق على أنّه التغييرات منذ v0.5.0. وذلك الإصدار نقل ggml إلى v0.25.0 ؛ وهذا الإصدار ينقلها إلى v0.26.0. وفي Qwen4Exp، أضاف 0.5.0 عمليّات hyper-connection وflash attention المتناثر ؛ أمّا 0.6.0 فهو الإصدار الذي يصف دعمه بأنّه عالي الجودة ويضيف إليه MTP.
ما معناه لك
على Mac، كلّ واحدة من نواتَي Metal الجديدتين تخدم حالة بعينها. نواة flash attention مكتوبة لذاكرة KV بدقّة F16 ؛ فإن كنت قد ضبطت هذه الذاكرة على نوع مكمَّم — والتكميم تخزين الأرقام ببتّات أقلّ ليصغر حجمها — فحالتك ليست الحالة التي كُتبت لها. ونوى ضرب المصفوفات مخصّصة لفكّ الترميز التخميني وللدفعات ، فالأرجح أن يظهر أثرها حين تشغّل نموذجاً مسوِّداً يقترح الكلمات، أو حين يخدم خادمك أكثر من طلب في الوقت نفسه. و«نحو 3 مرّات» رقم لضرب المصفوفات وحده، لا لعدد الكلمات التي تراها في الثانية. قِس على جهازك أنت، قبل التحديث وبعده.
وعلى بطاقة NVIDIA، مسار W4A4 يخصّ النماذج بصيغتَي NVFP4 وMXFP4 ؛ فإن كانت ملفّاتك بتكميم آخر، فليس هذا التغيير الذي تبحث عنه. وإن كنت تشغّل Qwen4Exp فحدّث: فكّ الترميز التخميني MTP صار متاحاً له، ورقم الـ 1.5 مرّة قيس على DGX Spark، وهو الجهاز الوحيد الذي تسمّيه الصفحة — وبطاقتك ستعطيك رقمها هي.
وعلى أيّ من الجهازين، إن كنت تجلب النماذج من واجهة الويب، فصار بإمكانها أن تقدّر لك هل يتّسع النموذج قبل أن تنزّله. وما يحدّد الجواب — كم ذاكرة يحتاج النموذج، وبأيّ سرعة تُقرأ تلك الذاكرة — يشرحه دليلناأيّ جهاز يشغّل نموذجاً محلّيّاً، وكيف يختلف Mac عن PC فيهما يشرحه ماك أم PC لتشغيل النماذج محلياً.
وإن كنت تحفظ حالة النموذج في ملفّ لتعود إليها لاحقاً، فأرقام صيغها تغيّرت ؛ والصفحة لا تقول هل ما زالت الملفّات التي حفظها 0.5.0 تُقرأ، فجرّب واحداً قبل أن تعتمد عليه.
وإن كانت شيفرتك أنت تتحدّث إلى الخادم، فصار بإمكانها أن تسأل /v1/modelsهل يقبل النموذج الصور أو الصوت قبل أن ترسلها إليه ؛ والشيفرة التي تطلب التضمينات عليها أن تتوقّع HTTP 400 حين يكون الطلب غير صالح. وإن كنت تقدّم عدّة نماذج عبر الموجِّه، فسجلّاته صارت تفصل أوامر العمليّات الفرعية ، وهذا يسهّل معرفة سبب تعثّر نموذج عند تشغيله. أمّا نماذج القرار فأرض جديدة: الصفحة تسمّيها وتسمّي واجهتها، ولا تقول كيف يبدو الطلب إليها ، فاقرأ توثيق الخادم قبل أن تبني عليها شيئاً.
المصدر
صفحة الإصدار على GitHub: llama.cpp v0.6.0، ضمن منظّمة ggml-org. وللإصدار الذي سبقه: llama.cpp v0.5.0.