تخطّى إلى المحتوى الرئيسي
تقنية

Tiny-vLLM: دليل تركيب وتشغيل محرك استدلال LLM عالي الأداء بلغة C++ وCUDA

Tiny-vLLM: دليل تركيب وتشغيل محرك استدلال LLM عالي الأداء بلغة C++ وCUDA
📑 محتويات المقال
    Reference OS v85 دقائق قراءة٢ يونيو ٢٠٢٦informational: شرح أداة تقنية جديدة وتقييمها وطريقة تجربتها

    Tiny-vLLM: دليل تركيب وتشغيل محرك استدلال LLM عالي الأداء بلغة C++ وCUDA

    بعد قراءة هذا الدليل، ستتمكن من تثبيت وتشغيل Tiny-vLLM على جهازك بنظام Linux، وتجربة استدلال نموذج صغير، وتقييم أدائه مقارنة بالمحركات الأخرى.

    الخلاصة: Tiny-vLLM محرك استدلال LLM بلغة C++/CUDA، مناسب للتجربة على GPU بسعة 8GB+. يتطلب بناء من المصدر، ويدعم نماذج Hugging Face. غير جاهز للإنتاج بعد.
    Tiny-vLLM دليل تركيب864 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Tiny-vLLM: دليل تركيب وتشغيل محرك استدلال LLM عالي الأداء بلغة C++ وCUDA
    Photo by Nana Dua on Pexels
    LIVE PROJECTjmaczan/tiny-vllm★ 0

    Show HN: Tiny-vLLM – high performance LLM inference engine in C++ and CUDA

    رابط المشروع على GitHub ↗

    MAP

    خريطة الصفحة

    اختر القسم الذي تحتاجه الآن

    1. ما هو Tiny-vLLM؟
    2. من يحتاج Tiny-vLLM ومن لا؟
    3. المميزات الرئيسية
    4. المتطلبات الأساسية
    5. تركيب Tiny-vLLM خطوة بخطوة (تقريبي)
    6. تشغيل النموذج
    7. الأخطاء الشائعة وحلولها
    8. استخدامات عملية في السوق السعودي/الخليجي
    9. هل يستحق Tiny-vLLM التجربة؟ (مقارنة مع vLLM وllama.cpp)
    10. بدائل مشابهة
    11. الأسئلة الشائعة (FAQ)
    !

    قبل أن تطبق

    الفكرة التي تمنع التسرع

    تعتقد أن كل مشروع جديد على GitHub يحتاج إلى فريق ضخم أو GPU فائق؟ Tiny-vLLM يثبت العكس، لكن README غير الواضح قد يخيفك. هنا الدليل الذي يجعلك تبدأ فوراً.

    Q

    أسئلة التشخيص السريع

    قبل أن تطبق، اعرف أين تقف بالضبط

    1. هل لديك GPU من NVIDIA بسعة ذاكرة 8GB على الأقل؟
    2. هل نظامك Linux (أو WSL2) مع تثبيت CUDA Toolkit 11.8+؟
    3. هل لديك خبرة في بناء مشاريع C++ من المصدر باستخدام CMake؟
    4. هل تبحث عن محرك استدلال خفيف وسريع للتجربة وليس للإنتاج؟
    5. هل تريد تشغيل نموذج بحجم 7B أو أصغر؟
    6. هل تفضل محركاً مكتوباً بلغة C++ لأداء أعلى؟
    7. هل أنت مستعد لمواجهة أخطاء محتملة بسبب حداثة المشروع؟

    نظام التشغيل: Input → Process → Output

    INPUT
    نموذج لغة كبير بصيغة Hugging Face (مثل Llama-2-7B) + مطالبة نصية
    PROCESS
    تحميل النموذج إلى GPU، تحويل المطالبة إلى توكنز، تشغيل الاستدلال عبر نوى CUDA محسّنة، توليد الرد
    OUTPUT
    نص الرد المولد مع إحصائيات الأداء (زمن الاستجابة، عدد التوكنز في الثانية)
    Decision Layer
    اختيار حجم النموذج بناءً على ذاكرة GPU المتاحة (7B يحتاج ~14GB VRAM)
    Memory Layer
    إدارة ذاكرة GPU عبر KV cache محسّن لتقليل الاستهلاك
    Feedback Loop
    مراقبة استخدام GPU وذاكرته، تعديل حجم الدفعة (batch size) أو طول السياق
    M

    لوحة قياس النجاح

    لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه

    المؤشرطريقة القياسإشارة جيدة
    وقت الاستدلال لكل رمز (ms/token)استخدم أداة قياس الوقت أو سجل الإخراج.أقل من 50 ms/token لنموذج 7B على GPU حديث.
    استهلاك ذاكرة GPU (GB)راقب باستخدام nvidia-smi أثناء التشغيل.أقل من 80% من سعة GPU.
    نجاح البناءتنفيذ cmake --build دون أخطاء.بناء ناجح بدون تحذيرات حرجة.

    ظهر مشروع Tiny-vLLM مؤخراً على Hacker News كمحرك استدلال لنماذج اللغة الكبيرة (LLM) مكتوب بلغة C++ وCUDA، يعد بأداء عالٍ مع استهلاك منخفض للموارد. لكن README الخاص به لا يوضح خطوات التركيب بالتفصيل، مما قد يثبط عزيمة المطور العربي. في هذا الدليل، نقدم لك خطوات تقريبية مبنية على بنية المشروع، مع شرح المتطلبات والأخطاء الشائعة، لتتمكن من تجربته بنفسك.

    سواء كنت مطوراً مستقلاً أو صاحب مشروع صغير أو صانع محتوى تقني، ستتعلم هنا كيفية بناء Tiny-vLLM من المصدر، تشغيل نموذج صغير، وتقييم أدائه مقارنة بالمحركات الأخرى مثل vLLM وllama.cpp. الهدف: تحويل فضولك إلى تجربة عملية دون إضاعة وقت.

    ما هو Tiny-vLLM؟

    Tiny-vLLM هو محرك استدلال (inference engine) لنماذج اللغة الكبيرة، مكتوب بلغة C++ ويستخدم CUDA لتسريع العمليات على GPU. يهدف إلى تقديم أداء عالٍ مع استهلاك منخفض للذاكرة، مما يجعله مناسباً للأجهزة متوسطة الموارد. المشروع جديد (ظهر على Hacker News) ولم يُختبر على نطاق واسع بعد، لكنه يقدم بديلاً مثيراً للاهتمام لـ vLLM وllama.cpp.

    من يحتاج Tiny-vLLM ومن لا؟

    إعلان

    يناسبك إذا: كنت مطوراً تبحث عن محرك استدلال خفيف وسريع، لديك GPU بسعة ذاكرة 8GB على الأقل، وترغب في تجربة أدوات جديدة. لا يناسبك إذا: كنت تبحث عن حل جاهز للإنتاج، أو ليس لديك خبرة في بناء مشاريع C++ من المصدر، أو تريد دعماً واسعاً للنماذج (مثل GPTQ أو AWQ).

    المميزات الرئيسية

    • مكتوب بلغة C++ لأداء عالٍ واستهلاك منخفض للذاكرة.
    • يستخدم CUDA لتسريع الاستدلال على GPU.
    • يدعم نماذج Hugging Face (مثل Llama وGPT-2).
    • مشروع مفتوح المصدر ونشط على GitHub.

    المتطلبات الأساسية

    • نظام تشغيل: Linux (مثل Ubuntu 20.04 أو أحدث) أو WSL2 على Windows.
    • GPU من NVIDIA مع دعم CUDA (يفضل 8GB VRAM على الأقل لنماذج 7B).
    • CUDA Toolkit 11.8 أو أحدث.
    • مترجم C++ يدعم C++17 (مثل GCC 9+ أو Clang 10+).
    • CMake 3.20+.
    • مكتبة cuDNN (اختياري للتحسين).

    تركيب Tiny-vLLM خطوة بخطوة (تقريبي)

    ملاحظة: README المشروع لا يوضح خطوات التركيب بالتفصيل. الخطوات التالية مبنية على بنية المشروع (ملفات CMakeLists.txt والمصدر). قد تختلف حسب إعداداتك.

    1. استنساخ المستودع:
      git clone https://GitHub.com/jmaczan/tiny-vllm.git
      cd tiny-vllm
    2. إنشاء مجلد البناء:
      mkdir build && cd build
    3. تشغيل CMake:
      cmake .. -DCMAKE_BUILD_TYPE=Release
      إذا واجهت أخطاء متعلقة بـ CUDA، تأكد من تثبيت CUDA Toolkit وأن متغير البيئة CUDACXX يشير إلى مسار مترجم nvcc.
    4. بناء المشروع:
      cmake --build . --target tiny_vllm -j$(nproc)
      سيؤدي هذا إلى إنشاء ملف تنفيذي باسم tiny_vllm في مجلد build.

    تشغيل النموذج

    بعد البناء، يمكنك تشغيل النموذج باستخدام الأمر التالي (مثال افتراضي):

    ./tiny_vllm --model /path/to/model --prompt "مرحباً، كيف حالك؟"

    حيث /path/to/model هو مسار مجلد النموذج بصيغة Hugging Face. يجب أن يحتوي المجلد على ملفات config.json وpytorch_model.bin (أو model.safetensors).

    إذا كان النموذج كبيراً (مثل Llama-2-7B)، تأكد من أن ذاكرة GPU كافية. يمكنك مراقبة الاستخدام باستخدام nvidia-smi.

    الأخطاء الشائعة وحلولها

    الخطأالسببالحل
    CUDA error: out of memoryالنموذج أكبر من ذاكرة GPUاستخدم نموذجاً أصغر (مثل GPT-2) أو قلل طول السياق
    nvcc not foundCUDA Toolkit غير مثبت أو غير مضبوط في PATHتأكد من تثبيت CUDA وأضف المسار إلى PATH أو استخدم -DCUDAToolkit_ROOT
    fatal error: cuda_runtime.h: No such file or directoryمكتبات CUDA غير موجودةثبّت cuda-toolkit أو استخدم -DCMAKE_CUDA_COMPILER
    undefined reference to `some_function'تبعيات مفقودةتأكد من تثبيت جميع التبعيات (مثل cuDNN) أو راجع CMakeLists.txt

    استخدامات عملية في السوق السعودي/الخليجي

    • تطبيقات المحادثة العربية: يمكن استخدام Tiny-vLLM لتشغيل نموذج عربي مثل ar-llama على خادم محلي، مما يقلل التكاليف ويزيد الخصوصية.
    • تحليل النصوص: تشغيل نموذج تلخيص أو تصنيف نصوص على أجهزة متوسطة في الشركات الناشئة.
    • التعليم والبحث: تجربة نماذج LLM في الجامعات دون الحاجة إلى سحابة باهظة الثمن.

    هل يستحق Tiny-vLLM التجربة؟ (مقارنة مع vLLM وllama.cpp)

    الميزةTiny-vLLMvLLMllama.cpp
    اللغةC++PythonC++
    دعم GPUCUDA فقطCUDACUDA, Metal, Vulkan
    سهولة التركيبمتوسطة (بناء من المصدر)سهلة (pip install)سهلة (تحميل ثنائي)
    الأداءوعد بأداء عالٍ (غير موثق)موثق بأداء عالٍجيد جداً
    النضججديد (غير مستقر)ناضجناضج
    دعم النماذجHugging FaceHugging Face, GPTQ, AWQGGUF, Hugging Face

    الخلاصة: Tiny-vLLM مناسب للتجربة والاستكشاف، لكنه ليس جاهزاً للإنتاج بعد. إذا كنت بحاجة إلى حل مستقر، استخدم vLLM أو llama.cpp.

    بدائل مشابهة

    • vLLM: محرك استدلال Python ناضج مع دعم واسع.
    • llama.cpp: محرك C++ خفيف يدعم أجهزة متعددة.
    • Text Generation Inference (TGI): من Hugging Face، مناسب للإنتاج.

    الأسئلة الشائعة (FAQ)

    هل يمكن تشغيل Tiny-vLLM على CPU فقط بدون GPU؟

    لا، المشروع يعتمد على CUDA ولا يدعم CPU حالياً.

    ما الفرق بين Tiny-vLLM وvLLM؟

    Tiny-vLLM مكتوب بلغة C++ ويعد بأداء أعلى، لكن vLLM أكثر نضجاً ويدعم ميزات أكثر.

    هل يدعم Tiny-vLLM نماذج GPTQ أو AWQ؟

    لا، المشروع لا يذكر دعم النماذج المضغوطة حالياً.

    كيف أحصل على نموذج متوافق مع Tiny-vLLM؟

    استخدم نموذجاً بصيغة Hugging Face (مثل Llama-2-7B) من Hugging Face Hub.

    هل Tiny-vLLM مناسب للإنتاج أم للتجربة فقط؟

    للتجربة فقط في الوقت الحالي، نظراً لحداثته وعدم استقراره.

    ما هي متطلبات GPU الدنيا لتشغيل نموذج 7B؟

    تحتاج إلى GPU بسعة ذاكرة 14GB على الأقل (مثل RTX 3080 12GB قد لا يكفي).

    هل يوجد دعم للغة العربية في Tiny-vLLM؟

    المحرك لا يهتم باللغة، لكن يمكنك استخدام نموذج عربي مدرب مسبقاً.

    DO

    Playbook التطبيق

    خطوات عملية مرتبة من التشخيص إلى النتيجة

    خطوة 1

    تثبيت المتطلبات الأساسية

    لماذا؟ المشروع يعتمد على CUDA وC++17 وCMake.

    كيف؟ تثبيت CUDA Toolkit 11.8+، GCC 9+، CMake 3.20+، وتأكد من وجود nvcc في PATH.

    الناتج: بيئة بناء جاهزة.

    خطوة 2

    استنساخ المستودع

    لماذا؟ للحصول على كود المصدر.

    كيف؟ git clone https://github.com/jmaczan/tiny-vllm.git && cd tiny-vllm

    الناتج: مجلد المشروع محلياً.

    خطوة 3

    بناء المشروع

    لماذا؟ إنشاء ملف تنفيذي من المصدر.

    كيف؟ mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && cmake --build . --target tiny_vllm -j$(nproc)

    الناتج: ملف tiny_vllm في مجلد build.

    خطوة 4

    تشغيل النموذج

    لماذا؟ اختبار المحرك.

    كيف؟ ./tiny_vllm --model /path/to/model --prompt "مرحباً"

    الناتج: استجابة النموذج.

    خطوة 5

    مراقبة الأداء

    لماذا؟ تقييم استهلاك الموارد.

    كيف؟ استخدم nvidia-smi لمراقبة GPU.

    الناتج: بيانات استخدام الذاكرة والوقت.

    TMP

    قوالب جاهزة للنسخ

    حوّل القراءة إلى تنفيذ سريع

    أمر تشغيل نموذج
    ./tiny_vllm --model /path/to/model --prompt "نص الاستفسار"
    أمر بناء مع خيارات
    cmake .. -DCMAKE_BUILD_TYPE=Release -DCUDAToolkit_ROOT=/usr/local/cuda
    ERR

    مصفوفة الأخطاء

    اعرف أين يتعثر الناس وكيف تتجنب ذلك

    الخطألماذا يحدث؟التصحيح
    CUDA error: out of memoryالنموذج كبير جداً لذاكرة GPU.استخدم نموذجاً أصغر مثل GPT-2 أو قلل طول السياق.
    nvcc not foundCUDA Toolkit غير مثبت أو غير مضبوط في PATH.تأكد من تثبيت CUDA وأضف المسار إلى PATH أو استخدم -DCUDAToolkit_ROOT.
    fatal error: cuda_runtime.h: No such file or directoryمكتبات CUDA غير موجودة.ثبّت cuda-toolkit أو استخدم -DCMAKE_CUDA_COMPILER.
    undefined reference to `some_function'تبعيات مفقودة مثل cuDNN.تأكد من تثبيت جميع التبعيات أو راجع CMakeLists.txt.
    IF

    شجرة القرار

    ماذا تفعل حسب حالتك؟

    إذا: إذا كان لديك GPU بسعة 8GB+ ونظام Linux

    إذن: اتبع خطوات التثبيت والتشغيل.

    إذا: إذا كنت تحتاج حل إنتاجي مستقر

    إذن: استخدم vLLM أو llama.cpp بدلاً من ذلك.

    إذا: إذا واجهت أخطاء في البناء

    إذن: راجع جدول الأخطاء الشائعة والحلول.

    7D

    خطة تطبيق 7 أيام

    جدول صغير يمنع التسويف

    1. اليوم 1: تثبيت المتطلبات (CUDA, GCC, CMake).
    2. اليوم 2: استنساخ المستودع وبناء المشروع.
    3. اليوم 3: تشغيل نموذج صغير (مثل GPT-2).
    4. اليوم 4: اختبار نموذج 7B ومراقبة الأداء.
    5. اليوم 5: مقارنة النتائج مع vLLM أو llama.cpp.
    6. اليوم 6: توثيق الأخطاء التي واجهتها وحلولها.
    7. اليوم 7: مشاركة التجربة على منتدى أو مدونة.
    FACT

    حقائق سريعة تحفظها

    نقاط مختصرة ترجع لها لاحقاً

    1. Tiny-vLLM مكتوب بلغة C++ وCUDA فقط.

    2. يدعم نماذج Hugging Face مثل Llama وGPT-2.

    3. يتطلب GPU من NVIDIA مع CUDA 11.8+.

    4. البناء من المصدر يتطلب CMake 3.20+ ومترجم C++17.

    5. المشروع جديد وغير مستقر، غير مناسب للإنتاج.

    6. لا يدعم CPU أو نماذج مضغوطة مثل GPTQ.

    7. يمكن تشغيل نماذج عربية إذا كانت بصيغة Hugging Face.

    8. البدائل الناضجة: vLLM وllama.cpp.

    FAQ

    أسئلة شائعة

    إجابات مباشرة على ما يبحث عنه الزائر

    هل يمكن تشغيل Tiny-vLLM على CPU فقط؟

    لا، المشروع يعتمد على CUDA ولا يدعم CPU حالياً.

    ما الفرق بين Tiny-vLLM وvLLM؟

    Tiny-vLLM مكتوب بلغة C++ ويعد بأداء أعلى، لكن vLLM أكثر نضجاً ويدعم ميزات أكثر.

    هل يدعم Tiny-vLLM نماذج GPTQ أو AWQ؟

    لا، المشروع لا يذكر دعم النماذج المضغوطة حالياً.

    كيف أحصل على نموذج متوافق مع Tiny-vLLM؟

    استخدم نموذجاً بصيغة Hugging Face (مثل Llama-2-7B) من Hugging Face Hub.

    هل Tiny-vLLM مناسب للإنتاج أم للتجربة فقط؟

    للتجربة فقط في الوقت الحالي، نظراً لحداثته وعدم استقراره.

    ما هي متطلبات GPU الدنيا لتشغيل نموذج 7B؟

    تحتاج إلى GPU بسعة ذاكرة 14GB على الأقل (مثل RTX 3080 12GB قد لا يكفي).

    هل يوجد دعم للغة العربية في Tiny-vLLM؟

    المحرك لا يهتم باللغة، لكن يمكنك استخدام نموذج عربي مدرب مسبقاً.

    ABC

    مصطلحات سريعة

    تعريفات مختصرة تمنع الالتباس

    CUDA

    منصة حوسبة متوازية من NVIDIA لتسريع العمليات على GPU.

    CMake

    أداة بناء متعددة المنصات لإدارة عملية الترجمة.

    Inference Engine

    محرك استدلال يقوم بتشغيل نموذج مدرب لإنتاج تنبؤات.

    Hugging Face

    منصة ومكتبة لنماذج التعلم الآلي، توفر نماذج جاهزة.

    Q+

    أسئلة مرتبطة يبحث عنها الناس

    استخدمها كمسارات متابعة داخل نفس الموضوع

    كيفية تثبيت Tiny-vLLM على Ubuntuمقارنة Tiny-vLLM مع vLLMتشغيل نموذج عربي على Tiny-vLLMأخطاء بناء Tiny-vLLM وحلولهامتطلبات GPU لتشغيل Tiny-vLLMTiny-vLLM vs llama.cpp الأداء

    لماذا هذا المرجع يتجاوز الموضوع نفسه؟

    تحول القارئ: من مطور متردد في تجربة مشاريع GitHub الجديدة إلى قادر على تقييم وتركيب وتشغيل Tiny-vLLM بثقة.

    • تحسين أداء GPU للاستدلال
    • إدارة ذاكرة GPU في تطبيقات LLM
    • اختيار نموذج LLM حسب حجم GPU
    SAVE

    كيف تستخدم هذا المرجع لاحقاً؟

    القيمة الحقيقية تظهر عند العودة والتطبيق

    لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.

    Tiny-vLLM مشروع واعد لمطوري LLM الذين يريدون تجربة محرك استدلال خفيف وسريع. على الرغم من أن README غير واضح، إلا أن خطوات التركيب التقريبية التي قدمناها تمكنك من تجربته. تذكر أنه مشروع جديد وغير مستقر، لذا استخدمه للتجربة والتعلم، وليس للإنتاج. إذا أعجبك الأداء، تابع تطوراته على GitHub. وإذا لم يناسبك، فلديك بدائل ناضجة مثل vLLM وllama.cpp.

    UPD

    خطة تحديث هذا الدليل

    حتى يبقى المرجع صالحاً مع الوقت

    • تحقق من تحديثات المستودع على GitHub أسبوعياً.
    • تحديث خطوات التثبيت إذا تغيرت بنية المشروع.
    • إضافة نماذج جديدة مدعومة عند إصدارها.

    زارو — مكتبة الأدلة العملية

    نحو مكتبة أدلة عملية: تشخيص، تنفيذ، قياس، وتحديث مستمر.

    Evergreen Reference + GitHub Intelligence + Multi-Stage AI OS v8.0.0-EVERGREEN-GITHUB-AI-INTELLIGENCE-OS

    [Object]
    كاتب في Ficus Web | تقرير إخباري وقصة قصيرة

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

    اقتراحات مبنية على أول تصنيف مرتبط بالمقال الحالي

    التعليقات (0)

    لا توجد تعليقات بعد. كن أول من يبدأ النقاش 👇