
بقلم: يوسف | محرر أدوات الذكاء الاصطناعي · صوت تحريري بإشراف بشري
طرحت مكتبة llama.cpp في إصدارها b9468 نظاماً متطوراً لإيقاف عمليات التفكير والاستدلال أثناء توليد النص، متجاوزة القيود السابقة التي كانت تتطلب إنهاء العملية بالكامل. التحديث الجديد يبني على تحكم ميزانية الاستدلال اليدوية المضافة في الإصدار السابق، لكنه يضيف مسار تحكم مباشر عبر POST endpoint جديد.
- إرسال طلب POST إلى `/v1/chat/completions/control` مع معرف الـ completion id والإجراء “reasoning_end” بدلاً من استخدام slot id لتجنب مشاكل إعادة التخصيص
- تفعيل العلامة reasoning_control في إعدادات النموذج لتمكين خاصية الإيقاف الفوري للاستدلال أثناء التوليد
- مراقبة متغير isReasoning الجديد في واجهة الويب الذي يعكس حالة التفكير ويظهر زر الإيقاف فقط أثناء مرحلة التفكير وليس التوليد العادي
- استخدام oaicompat_cmpl_id لمطابقة completion النشط بأمان، حيث تُرجع الاستجابة {success} مع رسالة اختيارية عند الفشل
- إعادة تزامن حالة الاستدلال تلقائياً عند تبديل المحادثات أو انتهاء stream callbacks للحفاظ على دقة واجهة التحكم
النظام الجديد يحل مشكلة TOCTOU (Time-of-Check-Time-of-Use) السابقة من خلال استهداف معرف completion بدلاً من معرف الفتحة، مما يضمن عدم تأثير إعادة تخصيص الفتحات على دقة عمليات التحكم. الإصدار متوفر عبر 15 منصة تشمل macOS Apple Silicon (arm64) وIntel (x64)، وUbuntu بمعمارية x64 وarm64 وs390x، ودعم Vulkan للمعمارتين، وROCm 7.2، وOpenVINO 2026.0، والدعم المحمول عبر iOS XCFramework وAndroid arm64، بالإضافة إلى Windows x64.
واجهة الويب المحدثة تضيف تتبعاً صريحاً لحالة الاستدلال عبر متغير isReasoning في chat store، الذي يعكس نمط isLoading المعتاد لكن مخصص لمرحلة التفكير. النظام يضبط الحالة من stream callbacks حيث تصبح true عند reasoning chunks وfalse عند أول content chunk، مع إعادة تعيين عند انتهاء التدفق. زر الإيقاف الآن يظهر فقط أثناء مرحلة التفكير وليس طوال عملية التوليد، مما يحسن تجربة المستخدم.
التطوير يتضمن أيضاً نقل معرفات completion عبر التدفق الوكيلي (agentic flow) الذي كان يمرر onModel لكن ليس onCompletionId، مما تسبب في عدم وصول معرف completion للرسالة وعدم إرسال طلب التحكم. الآن يتم تمرير المعرف عبر التدفق وcallbacks types مع إضافة id لنوع chunk وتسجيل خطأ واضح عند تفعيل الزر بدون معرف قابل للاستخدام. النظام يقرأ النموذج من خاصية الرسالة المتدفقة مثل المعرف، وليس من القائمة المنسدلة للنموذج في الواجهة.
بعض الإصدارات معطلة مؤقتاً مثل macOS Apple Silicon مع KleidiAI وUbuntu x64 مع SYCL FP32، لكن الدعم الأساسي يغطي معظم البيئات التطويرية الحديثة. هذا التحديث يمثل خطوة مهمة نحو تحكم أدق في سلوك النماذج اللغوية، خاصة للتطبيقات التي تتطلب حدوداً زمنية صارمة أو إيقافاً انتقائياً لعمليات معينة.







