إعدادات llama-swap للقضاء على تأخير تبديل النماذج في وحدات معالجة الرسومات (GPU) سعة 12 جيجابايت أو أقل
14 Mei 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
تُعد ذاكرة الوصول العشوائي للفيديو (VRAM) دائماً مورداً شحيحاً لمستخدمي وحدات معالجة الرسومات المتوسطة. عند استخدام RTX 3060 أو 4060 لتشغيل نماذج متعددة، ستصل إلى الحدود القصوى بسرعة. فنموذج Llama 3.1 8B بعد التكميم بـ 4 بت (Q4_K_M) يستهلك وحده 5.2 جيجابايت من الأوزان. وإذا خصمت 1 جيجابايت تشغلها خدمات ويندوز الأساسية، فلن يتبقى لك سوى حوالي 2 جيجابايت. في هذه الحالة، إذا حاولت تحميل نماذج إضافية، فسيحدث تجاوز (Spillover) لاستخدام ذاكرة الوصول العشوائي للنظام (RAM)، وستتحول السرعة من 15 توكن في الثانية إلى توكن واحد فقط، مما يجعلك ترغب في إنهاء العملية فوراً.
لمنع هذا الاختناق، يجب تحديد وقت طرد النموذج idle_timeout بشكل مختلف لكل نموذج في ملف config.yaml.
globalTTL على 300 (5 دقائق). وأضف --ctx-size 8192 بعد أمر تشغيل النموذج (cmd) لتقييد ذاكرة التخزين المؤقت KV ومنعها من استهلاك كل الذاكرة المتبقية، وذلك لتجنب خطأ نفاد الذاكرة (OOM).ttl: 0، بينما اضبط نموذج Qwen 2.5 Coder 7B الثقيل على ttl: 60 لتفريغ VRAM فور انتهائك من البرمجة.بهذه الإعدادات، ستوفر ما لا يقل عن 20 دقيقة يومياً من الوقت الذي يضيع في إغلاق وتشغيل النماذج يدوياً.
عند الانتقال من استخدام Ollama إلى llama.cpp، غالباً ما تحدث تداخلات في المنافذ وصراعات على الموارد. يعمل llama-swap كشرطي مرور لتنظيم هذه الفوضى. هذا الوكيل (Proxy) الخفيف المكتوب بلغة Go يرسل إشارة SIGTERM للعملية الحالية لإغلاقها بأمان وتحميل نموذج جديد فور تلقي طلب استدعاء لنموذج آخر.
طريقة كتابة ملف YAML لتحقيق تكامل مستقر واضحة:
--flash-attn و --mlock مسبقاً في قسم macros. هذا يجعل ملف الإعدادات أكثر تنظيماً.${PORT} تحت بند models لتحديد مسار التشغيل لكل نموذج.http://localhost:11434 في حقل proxy.نتيجة لذلك، سيحتاج تطبيقك فقط للنظر إلى عنوان واحد وهو http://localhost:8080/v1 ولن تضطر للقلق بشأن تغيير المحرك أو النموذج داخلياً.
السبب الحقيقي لاستخدام LLM محلي هو توفير المال مع الحماية القصوى للبيانات الشخصية. على الرغم من أن Cursor مدفوع في الأساس، يمكنك التحايل على ذلك باستخدام إعدادات OpenAI Compatible وربطها بـ llama-swap المحلي. هذا يوفر عليك 20 دولاراً شهرياً، أي ما يعادل 240 دولاراً في السنة.
طريقة الاتصال بسيطة:
http://localhost:8080/v1 في Base URL.gpt-4o للنموذج المحلي، سيعتقد Cursor أنه يتعامل مع النموذج الأصلي وسيعمل فوراً.nomic-embed-text وثبته في llama-swap بضبط ttl: 0.بينما تقوم بتدوين الملاحظات وتنتقل إلى نافذة البرمجة، سيتم تبديل النموذج في الخلفية تلقائياً. وبما أن جميع البيانات تبقى داخل جهازك، فلا داعي للقلق بشأن الخصوصية.
من المزعج جداً فتح الجهاز وتشغيل الوكيل يدوياً في كل مرة. لكي يكون الذكاء الاصطناعي أداة فعالة، يجب أن يعمل بهدوء في الخلفية. لمستخدمي ويندوز، يعتبر تسجيل llama-swap كخدمة باستخدام NSSM (Non-Sucking Service Manager) هو الحل الأنظف.
الطريقة هي كالآتي:
winget install NSSM في الوحدة الطرفية (Terminal)، ثم أدخل nssm install LlamaSwap بصلاحيات المسؤول.llama-swap.exe في خانة Path، وفي Arguments اكتب --config config.yaml -watch-config.الآن، بمجرد تشغيل الكمبيوتر، ستكون نقطة نهاية API جاهزة. وبفضل خيار -watch-config بمجرد تعديل ملف YAML وحفظه، سيتم تطبيق الإعدادات الجديدة فوراً دون الحاجة لإعادة تشغيل الخدمة.
انقطاع المحادثة أو إغلاق البرنامج عند تبديل النماذج غالباً ما يكون بسبب خطأ في تصميم استهلاك الذاكرة. يحاول محرك الاستدلال عند التشغيل حجز مساحة ذاكرة تعادل نافذة السياق (Context Window) مسبقاً. إذا لم تتحكم في هذا، ستواجه أخطاءً غير متوقعة.
إليك ثلاثة تدابير لضمان الاستقرار:
--ctx-size بحوالي 8192 في حقل cmd. تركها بلا قيود سيؤدي لانفجار VRAM.healthCheckTimeout على 300 ثانية لضمان عدم قيام الوكيل بقطع الاتصال أثناء التحميل.--flash-attn كخيار إلزامي. استخدامه يتيح لك مساحة سياق أكبر بنسبة 20% بنفس قدر VRAM.بالنسبة لنماذج 8B، يستغرق التبديل حوالي 5 ثوانٍ فقط. هذا المستوى لا يعيق تدفق العمل. حتى بدون وجود محطة عمل عالية الأداء، يمكنك الاستمتاع ببيئة ذكاء اصطناعي مريحة على مكتبك من خلال ضبط بعض القيم فقط.