SSD Nodes Learn Hosting plans →
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-24

تشغيل GLM 5.2 على VPS: ما البديل المحلي؟

GLM 5.2 سحابي فقط في مكتبة Ollama. تعرّف إلى نموذج GLM المناسب فعلياً لـ VPS، وحجم RAM المطلوب لكل تكميم على خادمك.

هل يمكنك تشغيل GLM 5.2 على VPS؟

لا، ومن المهم معرفة السبب قبل استئجار أي خادم. اعتباراً من 18 August 2026، يحمل GLM 5.2 في مكتبة Ollama وسمًا واحدًا فقط، وهو glm-5.2:cloud. يعمل وسم :cloud على خوادم Ollama. يرسل خادمك الطلب ويتلقى الرموز، لذلك لا تصل أوزان النموذج إلى القرص لديك. يحتوي النموذج على 756 billion parameters. ويتطلب استخدام أربعة bits لكل parameter عبر 756 billion parameters نحو 378 GB من الأوزان، وهذا حساب أساسي قبل احتساب السياق أو عمليات التنشيط أو نظام التشغيل. لا توفر أي خطة VPS عادية هذا القدر من الذاكرة.

نموذج GLM الذي يمكن تشغيله فعلياً على خادم تستأجره هو glm-4.7-flash. نُشرت أوزانه القابلة للتنزيل ضمن 4 وسماً. وهو نموذج mixture-of-experts، أي إن جزءاً صغيراً فقط من الشبكة يعمل مع كل رمز. وتصفه Z.ai بأنه 30B-A3B: إجمالي 30 billion parameters، مع تفعيل نحو 3 billion لكل رمز. لذلك يجيب هذا الدليل عن السؤال الذي يمكنك اتخاذ إجراء بشأنه. ثبّت وسمًا محدداً، وحدد حجم الخادم، وقِس سرعتك الفعلية، وأبقِ نقطة النهاية خاصة.

تحقّق من الوسم قبل نسخ أي أمر، بما في ذلك الأوامر الواردة هنا. قد تتغير مكتبة Ollama دون إشعار. افتح قائمة وسوم glm-4.7-flash وتأكد من أن الوسم لا يزال موجوداً. إذا ظهر إصدار GLM أحدث بأوزان محلية، ففضّله وسجّل الوسم الذي اختبرته فعلياً.

إذا كنت تريد GLM 5.2 نفسه رغم ذلك، فإن ollama run glm-5.2:cloud يعمل بعد ollama signin، ومن جهة العميل يتصرف مثل أي نموذج Ollama آخر. افهم ما توافق عليه: يغادر الطلب خادمك. إذا كان سبب الاستضافة الذاتية هو ضرورة بقاء البيانات على جهازك، فلن يحقق وسم :cloud هذا الغرض.

ما وسوم GLM المتاحة، وأيّها يجب تثبيته

توجد هنا 3 إدخالات رسمية لـGLM. glm-5.2 وglm-5.1 متاحان عبر السحابة فقط. أما glm-4.7-flash فهو الإدخال المحلي، وهذه هي وسومه المنشورة مع حجم التنزيل الذي يعرضه Ollama لكل منها.

Chartglm-4.7-flash tags in Ollama's library, checked 2026-08-18
The data behind this chart
[
  {
    "label": "q4_K_M",
    "download_gb": 19
  },
  {
    "label": "latest",
    "download_gb": 19
  },
  {
    "label": "q8_0",
    "download_gb": 32
  },
  {
    "label": "bf16",
    "download_gb": 60
  }
]

هذه أرقام منشورة في صفحة المكتبة وليست قياسات فعلية. يُدرج كل من latest وq4_K_M بحجم 19 GB، ولذلك يحل latest حالياً إلى إصدار Q4. وقد يتغير ذلك عند إعادة النشر، ولهذا يجب ألا تكتب ollama pull glm-4.7-flash مجرداً في script أو Dockerfile. حدّد quantisation. أكبر وسم، bf16، هو تنزيل بحجم 60 GB ويحتوي على أوزان bfloat16 غير المكمّمة.

يعرض البحث في المكتبة أيضاً عمليات رفع ذات أسماء مؤهلة تتضمن شرطة مائلة، مثل someuser/glm-5.2. تعني الشرطة المائلة أن حساب مستخدم نشره، ولذلك فهو إعادة رفع من المجتمع وليس الإدخال الرسمي. لا يضمن أحد الأوزان الموجودة بداخله. تعامل معه كما تتعامل مع أي binary غير موقّع عثرت عليه عبر الإنترنت.

ثبّت Ollama واسحب الوسم المحدد تماماً

مثبّت Ollama لنظام Linux هو أمر واحد.

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

ينشئ المثبّت خدمة systemd تعمل بحساب المستخدم ollama. تأكد من أنها بدأت قبل سحب أي شيء.

systemctl status ollama --no-pager

يعني Active: active (running) أن واجهة API تستمع على المنفذ 11434. إذا لم تكن الوحدة موجودة، فهذا يعني أن المثبّت عاد إلى تثبيت ثنائي عادي، وتوفّر توثيق Ollama لنظام Linux ملف الخدمة المطلوب إنشاؤه يدوياً.

تسرد صفحة glm-4.7-flash الحد الأدنى لإصدار Ollama. لا يشغّل الثنائي الأقدم النموذج ببطء، بل يرفضه: يفشل السحب برسالة تفيد بأن النموذج يتطلب إصداراً أحدث من Ollama. أعد تشغيل نص التثبيت للترقية. في 18 August 2026، الإصدار الحالي هو 0.32.14، وهو أحدث بكثير من ذلك الحد الأدنى.

اسحب الآن وسماً واحداً باسمه.

ollama pull glm-4.7-flash:q4_K_M
ollama ls

يجب أن يعرض ollama ls الوسم glm-4.7-flash:q4_K_M بحجم قريب من 19 GB المنشور. لا يترك السحب الذي يفشل في منتصفه شيئاً قابلاً للتشغيل، لذلك أعد تشغيل الأمر نفسه. السبب الأكثر شيوعاً لفشل السحب على خطة صغيرة هو امتلاء القرص، لا مشكلة في الشبكة، لأن النموذج يُكتب إلى /usr/share/ollama/.ollama/models على نظام الملفات الجذر. تحقّق باستخدام df -h /usr/share/ollama قبل البدء.

ما مقدار RAM الذي تحتاجه كل عملية تكميم؟

ابدأ بحجم التنزيل بوصفه الحد الأدنى، ثم أضف إليه. يجب أن تبقى الأوزان مقيمة في الذاكرة. وفوقها توجد ذاكرة KV cache (ذاكرة التخزين المؤقت للمفتاح/القيمة)، وهي الذاكرة التي يستخدمها وقت التشغيل لتذكّر الرموز الموجودة مسبقاً في المحادثة، بالإضافة إلى مخازن الحساب وما يستخدمه نظام التشغيل. لن يشغّل جهاز يحتوي بالضبط على 19 GB من RAM الوسم الذي حجمه 19 GB.

لا يوجد معامل واحد صحيح للجميع، لأن ذاكرة KV cache تكبر مع طول السياق الذي تسمح به، كما تختلف الأجزاء الأخرى بين إصدارات وقت التشغيل. لذلك اعتمد على القياس بدلاً من التخمين. حمّل النموذج باستخدام prompt بسيط، ثم اقرأ مقدار الذاكرة التي حجزها الخادم.

ollama run glm-4.7-flash:q4_K_M "Reply with the single word: ready"
ollama ps

يطبع ollama ps النموذج المحمّل مع عمود SIZE وعمود PROCESSOR. يعبّر SIZE عن المقدار الذي حجزه وقت التشغيل فعلياً، وهذا هو الرقم الذي يجب مقارنته بخطتك. يوضح PROCESSOR مكان تنفيذ العمل، ولذلك يعني 100% CPU أن GPU لم يُستخدم إطلاقاً.

عندما لا يتسع النموذج، يكون الفشل صامتاً ويتخذ شكلين. عند تفعيل swap، يبدو أن التحميل نجح، ثم يصبح التوليد بطيئاً جداً، لأن الصفحات تنتقل بين القرص وRAM مع كل رمز. وعند عدم وجود swap، تُنهى العملية مباشرة، ويعرض journalctl -k | grep -i "out of memory" سطر Out of memory: Killed process الخاص بالنواة، الذي يذكر ollama. افحص الأمرين، لأن أياً منهما لا يطبع رسالة مفيدة في الطرفية التي كنت تكتب فيها.

يمثل الانتقال من وسم Q4 بحجم 19 GB إلى وسم Q8 بحجم 32 GB العامل الرئيسي الذي يمكنك التحكم به في هذا الرقم. تقلل Q4 بعض جودة المخرجات، ويعتمد مقدار الانخفاض على المهمة؛ إذ تتأثر المخرجات المهيكلة وسلاسل الاستدلال الطويلة أكثر من الدردشة العادية. يجدر بك قراءة الاختلافات العملية بين Q4 وQ8 وFP16 قبل اتخاذ القرار، لأن اختيار التكميم على VPS يعمل باستخدام CPU فقط يحدد عادةً ما إذا كان النموذج سيعمل أصلاً.

ما الذي يحدث على VPS يعمل بالمعالج فقط

لا تتضمن معظم خطط VPS وحدة GPU، وسيشغّل Ollama النموذج على CPU من دون تنبيهك. وتعتمد قابلية استخدام النتيجة على عبء العمل وعلى مدى صبرك.

يساعد تصميم mixture-of-experts على زيادة السرعة. لا يُستخدم لكل token معيّن سوى نحو 3 مليارات من أصل 30 مليار parameter، لذلك تكون العمليات الحسابية لكل token أقل بكثير مما يحتاج إليه نموذج dense بحجم 30B. لكن الذاكرة لا تتقلص. يجب أن يبقى كل expert مقيماً في الذاكرة، لأن router قد يختار أيّاً منها للـtoken التالي. لذلك لا يزال الخادم الذي يعمل على CPU فقط يحتاج إلى كامل 19 GB أو أكثر لوسم Q4، ويعتمد معدل المعالجة فيه بدرجة أكبر على عرض نطاق الذاكرة منه على سرعة الساعة.

ولهذا أثر عملي: يمكن لخطتين لهما العدد نفسه من الأنوية وذاكرة RAM نفسها أن تنتجا tokens بسرعات مختلفة بوضوح، لأن النظامين الفرعيين للذاكرة يختلفان بينهما. وتضيف الخطة المشتركة متغيراً ثانياً، إذ يظهر وقت CPU المسروق بسبب جار يستهلك الموارد على شكل معدل tokens في الثانية يتغير من ساعة إلى أخرى. لذلك لا يمكن للرقم المنشور من مستخدم آخر أن يتنبأ بأدائك، ولأن القسم التالي يقدّم طريقة للقياس بدلاً من جدول للنتائج.

قياس عدد الرموز التي يعالجها نظامك في الثانية

تعيد نقطة النهاية generate في Ollama حقولاً زمنية في كائن JSON النهائي. اقسم عدد الرموز المُولَّدة على مدة التوليد لتحصل على نتيجتك الفعلية وفق خطتك وموجّهك.

sudo apt install -y jq
curl -s http://localhost:11434/api/generate -d '{
  "model": "glm-4.7-flash:q4_K_M",
  "prompt": "Write a 200 word explanation of how TCP congestion control works.",
  "stream": false,
  "options": {"num_ctx": 8192}
}' | jq '{
  tokens: .eval_count,
  tokens_per_second: (.eval_count / .eval_duration * 1e9),
  prompt_seconds: (.prompt_eval_duration / 1e9),
  load_seconds: (.load_duration / 1e9)
}'

يمثل eval_count عدد الرموز التي جرى توليدها، ويمثل eval_duration عدد النانوثواني المستغرقة في توليدها، ولذلك فإن eval_count / eval_duration * 1e9 هو عدد الرموز في الثانية. يغطي prompt_eval_duration وقت قراءة موجّهك، وهو ما يختبره المستخدم على هيئة انتظار قبل ظهور الرمز الأول. ويمثل load_duration الوقت المستغرق في تحميل النموذج من القرص، لذلك تكون قيمته كبيرة في أول استدعاء بعد إعادة التشغيل، وتقترب من الصفر في الاستدعاء التالي.

شغّل الاختبار 3 مرات واحتفظ بالنتيجتين الثانية والثالثة، لأن النتيجة الأولى تتضمن وقت التحميل. ثم شغّله مرة أخرى باستخدام موجّه أطول بكثير، لأن معالجة الموجّه تزداد مع طول الإدخال، بينما لا تزداد سرعة التوليد. دوّن الأرقام بجوار اسم خطتك ومستوى quantisation المستخدم. هذه البيانات أكثر فائدة من أي معيار أداء تقرؤه، لأنها قيسَت على العتاد الذي تدفع مقابله.

كيف يضاعف طول السياق استهلاك الذاكرة

يضبط Ollama السياق افتراضياً على 4096 رمزاً. يعلن النموذج عن طول أكبر بكثير، وهو 198K رمزاً لـ glm-4.7-flash، لكنك لا تحصل على ذلك افتراضياً، وتفعيله ليس بلا تكلفة.

تحتفظ ذاكرة KV المؤقتة بمتجه مفتاح واحد ومتجه قيمة واحد لكل رمز، في كل طبقة. يزداد حجمها خطياً مع عدد الرموز التي تسمح بها. الانتقال من 4096 إلى 32768 رمزاً يعني زيادة طول السياق 8 مرات، ولذلك يزداد حجم ذاكرة KV المؤقتة تقريباً 8 مرات. على خادم تكفي ذاكرته بالكاد لتحميل الأوزان، يكون هذا التخصيص الإضافي هو ما يدفع النظام إلى استخدام swap. ولهذا قد يستجيب جهاز لتعليمات قصيرة دون مشكلة، ثم يصبح بطيئاً جداً فجأة عند لصق مستند طويل.

اضبط ذلك لكل طلب باستخدام num_ctx داخل كائن الخيارات، كما في أمر curl أعلاه، أو غيّر الإعداد الافتراضي للخادم.

sudo install -d -m 755 /etc/systemd/system/ollama.service.d
printf '[Service]\nEnvironment="OLLAMA_CONTEXT_LENGTH=16384"\n' \
  | sudo tee /etc/systemd/system/ollama.service.d/override.conf
sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl show ollama --property=Environment

يجب أن يطبع الأمر الأخير قيمة OLLAMA_CONTEXT_LENGTH لديك. إذا طبع قيمة Environment= فارغة، فملف التجاوز موجود في الدليل الخطأ أو لم تتم إعادة التحميل. بعد تحميل النموذج في المرة التالية، يجب أن تعرض ollama ps قيمة SIZE أكبر بوضوح مما كانت عليه عند 4096. ارفع القيمة على مراحل، وراقب ذلك الرقم في كل مرة. يشرح ضبط طول سياق Ollama باستخدام num_ctx كيفية تفاعل هذا الإعداد مع keep-alive والطلبات المتوازية، إذ يضاعف كلاهما التكلفة نفسها. إذا كان أكثر من عميل سيستخدم الخادم، فحدّد حدود التزامن في الوقت نفسه الذي تحدد فيه السياق، لأن كل خانة متوازية تحمل ذاكرة KV مؤقتة خاصة بها، كما يحدد إعداد قائمة الانتظار ما إذا كان الطلب الثاني سينتظر أو سيُرفض مباشرة.

عندما تكون واجهة API أرخص من الخادم

لا يكون الاستضافة الذاتية أرخص تلقائياً، وتوضح أسعار القائمة المنشورة لهذه العائلة ذلك بوضوح غير معتاد.

ChartZ.ai published list prices per million tokens, checked 2026-08-18
The data behind this chart
[
  {
    "label": "GLM-5.2 input",
    "usd_per_million_tokens": 1.4
  },
  {
    "label": "GLM-5.2 output",
    "usd_per_million_tokens": 4.4
  },
  {
    "label": "GLM-4.7-Flash input",
    "usd_per_million_tokens": 0
  },
  {
    "label": "GLM-4.7-Flash output",
    "usd_per_million_tokens": 0
  }
]

اعتباراً من 18 August 2026، تعرض Z.ai سعر GLM-5.2 البالغ $1.4 لكل مليون رمز إدخال، و$4.4 لكل مليون رمز إخراج. كما تعرض سعر GLM-4.7-Flash، وهو النموذج الذي يشغّله هذا الدليل محلياً، البالغ $0 في كلا الاتجاهين. هذه أسعار منشورة وقد تتغير، لذلك تحقّق من الصفحة الحالية قبل أن تضع ميزانية بناءً على أيٍّ منها.

لذلك فإن حجة التكلفة لصالح الاستضافة الذاتية glm-4.7-flash ضعيفة حالياً. تكلّف VPS ذات ذاكرة RAM كافية مبلغاً فعلياً كل شهر، بينما يوفّر الناشر النموذج نفسه مجاناً. ما تحصل عليه عند تشغيله بنفسك مختلف: تبقى مطالباتك على جهاز تتحكم فيه، ولا يتغير إصدار النموذج إلا إذا غيّرته أنت. هذه أسباب وجيهة للاستضافة الذاتية. أما التكلفة فليست أحدها لهذا النموذج وبهذه الأسعار.

تتغير الحسابات عندما لا يكون النموذج الذي تريده مجانياً، أو عندما لا يُسمح قانونياً لبياناتك بمغادرة شبكتك. يشرح نقطة التعادل بين VPS مزودة بوحدة GPU ورموز API هذه العملية الحسابية مع تسمية كل متغير. إذا كنت لا تزال تختار الجهاز، فإن التكلفة الشهرية الفعلية لـ VPS تمثل النصف الآخر من الحساب.

أبقِ نقطة النهاية على localhost

هذه هي الخطوة التي يتجاوزها الناس، وهي الأهم.

يرتبط Ollama افتراضياً بالعنوان 127.0.0.1 على المنفذ 11434، ولذلك لا يمكن الوصول إليه إلا من الخادم نفسه. أكّد ذلك على خادمك بدلاً من افتراضه.

ss -ltnp | grep 11434

يجب أن ترى 127.0.0.1:11434. ظهور 0.0.0.0:11434 أو *:11434 يعني أن API يستمع على كل الواجهات، بما فيها الواجهة العامة.

هذا مهم لأن API الخاص بـOllama لا يوفّر أي مصادقة. لا توجد كلمة مرور، ولا token، ولا allowlist. يمكن لأي شخص يصل إلى المنفذ 11434 عرض نماذجك، وتشغيل التوليد باستخدام العتاد الذي تدفع تكلفته، وسحب نماذج جديدة إلى القرص حتى يمتلئ، وحذف النماذج الموجودة لديك. والمنفذ 11434 ثابت ومعروف جيداً، لذلك تعثر أدوات المسح على المنافذ المفتوحة بسرعة.

لا تضبط OLLAMA_HOST=0.0.0.0. تقترحه دروس كثيرة باعتباره الحل عندما يتعذر على عميل في حاسوبك المحمول الاتصال، لكنه الحل الخاطئ. أعد توجيه المنفذ بدلاً من ذلك.

ssh -N -L 11434:127.0.0.1:11434 you@your-server

يتيح ذلك ربط المنفذ 11434 على حاسوبك المحمول بعنوان loopback الخاص بالخادم عبر SSH، ولذلك يعمل أي عميل مضبوط على http://localhost:11434 دون تغيير، ولا يتم كشف أي شيء جديد. إذا كان سيستخدمه عدة أشخاص أو عدة أجهزة، فضع الخادم على شبكة نفق خاصة، واربط Ollama بعنوان النفق، وليس أبداً بـ0.0.0.0.

تحقق من مكان آخر غير الخادم. من حاسوبك المحمول، بعد إغلاق نفق SSH:

curl -m 5 http://your-server-ip:11434/api/tags

تُعد curl: (28) Connection timed out أو curl: (7) Failed to connect النتيجة الصحيحة. ظهور قائمة JSON بنماذجك يعني أن المنفذ مفتوح على الإنترنت، ويجب إصلاح ذلك الآن. جدار الشبكة لدى مزود الخدمة منفصل عن الجدار الناري الذي يعمل على الخادم، لذلك تحقّق من كليهما. يشرح السؤال الأوسع حول أمان استضافة VPS بقية الإعدادات الأساسية لجهاز تتركه قيد التشغيل.

إذا كان glm-4.7-flash لا يزال كبيراً جداً

عندما لا تتسع خطتك لوسم Q4، فالحل هو استخدام نموذج أصغر، وليس تقليص سياق الإدخال. يؤدي تقليص السياق لإفساح المجال للنموذج إلى نموذج يُحمَّل، ثم يفشل عند أول موجه طويل. يوضّح Qwen 3 بإصداري 8B و27B على VPS مسار التثبيت نفسه بأحجام تناسب الخوادم محدودة الموارد، بينما يغطي الدليل العام للاستضافة الذاتية لنموذج LLM باستخدام Ollama على VPS الأجزاء التي لا تتغير باختلاف النموذج الذي تختاره. أياً كان اختيارك، ثبّت الوسم، وقِس الأداء على خطتك نفسها، واترك نقطة النهاية على loopback.

FAQ

هل يمكن تشغيل GLM 5.2 محلياً على VPS؟

لا. حتى 18 August 2026، لا يظهر GLM 5.2 في مكتبة Ollama إلا بصيغة glm-5.2:cloud، وهي وسم يعمل على البنية التحتية الخاصة بـOllama ويتطلب ollama signin قبل أن يعمل. يحتوي النموذج على 756 billion parameters، ولذلك تتطلب الأوزان وحدها، حتى عند استخدام four bits per parameter، مئات الجيجابايت، أي أكثر بكثير مما توفره أي خطة VPS قياسية. نموذج GLM ذو الأوزان القابلة للتنزيل والذي يناسب خادماً مستأجراً هو glm-4.7-flash.

ما مقدار RAM الذي يحتاج إليه glm-4.7-flash؟

اعتبر حجم تنزيل الوسم حداً أدنى، وأضف مساحة لـKV cache ولنظام التشغيل. تسرد Ollama وسم Q4 بحجم 19 GB، ووسم Q8 بحجم 32 GB، ووسم bfloat16 بحجم 60 GB. لا يوجد معامل ثابت مناسب للجميع، لأن KV cache يزداد مع طول السياق الذي تحدده. حمّل النموذج، وشغّل ollama ps، ثم اقرأ العمود SIZE لمعرفة القيمة الفعلية على جهازك.

كيف أقيس عدد الرموز في الثانية على VPS الخاص بي؟

أرسل طلباً واحداً إلى http://localhost:11434/api/generate باستخدام "stream": false، ثم اقرأ eval_count وeval_duration من الاستجابة. عدد الرموز في الثانية هو eval_count / eval_duration * 1e9، لأن eval_duration يُبلَّغ عنه بوحدة النانوثانية. تجاهل التشغيل الأول، لأن load_duration فيه يتضمن قراءة الأوزان من القرص. كرر الاختبار باستخدام مطالبة طويلة أيضاً، لأن prompt_eval_duration يزداد مع طول الإدخال، بينما لا تزداد سرعة التوليد.

لماذا يجب ألا أضبط OLLAMA_HOST على 0.0.0.0؟

لأن API الخاص بـOllama لا يتضمن مصادقة، ولذلك يؤدي ربطه بالعنوان 0.0.0.0 إلى إتاحة endpoint غير موثّق على الإنترنت العام. يمكن لأي شخص يصل إلى المنفذ 11434 توليد المحتوى باستخدام أجهزتك وتغيير النماذج المثبتة. أبقِ الربط الافتراضي على 127.0.0.1، وتحقق منه باستخدام ss -ltnp | grep 11434، ثم صِل إلى API من حاسوبك المحمول عبر نفق SSH مثل ssh -N -L 11434:127.0.0.1:11434 you@your-server.