تخطّى إلى المحتوى الرئيسي
استدلال

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

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

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

    بعد قراءة هذا الدليل، ستتمكن من تثبيت وتشغيل Tiny-vLLM على جهازك باستخدام نموذج GPT-2، وتقييم أدائه مقارنة بـ vLLM وllama.cpp.

    الخلاصة: Tiny-vLLM هو محرك استدلال LLM خفيف بلغة C++/CUDA. التركيب يتطلب Linux وCUDA 11.8+ وCMake 3.20+. يوفر الدليل خطوات بناء وتشغيل مع نموذج GPT-2، وأخطاء شائعة وحلولها، ومقارنة مع vLLM وllama.cpp.
    Tiny-vLLM دليل تركيب560 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Tiny-vLLM: دليل تركيب وتشغيل محرك استدلال LLM عالي الأداء بلغة C++ وCUDA
    Photo by Anete Lusina 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. المتطلبات الأساسية
    3. تركيب Tiny-vLLM خطوة بخطوة
    4. مثال تشغيل كامل مع نموذج GPT-2
    5. ضبط الأداء: تحسين سرعة الاستدلال
    6. أخطاء شائعة وحلولها
    7. بدائل Tiny-vLLM: مقارنة مع vLLM وllama.cpp
    8. المساهمة في المشروع: كيفية الإبلاغ عن مشكلة
    !

    قبل أن تطبق

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

    هل تريد تشغيل LLM محلياً بأداء عالٍ وموارد أقل؟ Tiny-vLLM يعد بذلك، لكن README غير واضح. هذا الدليل يملأ الفجوة.

    Q

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

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

    1. هل نظام التشغيل لديك Linux (Ubuntu 20.04+) أو WSL2؟
    2. هل لديك GPU NVIDIA مع CUDA 11.8 أو أحدث؟
    3. هل قمت بتثبيت CMake 3.20+ ومترجم C++17؟
    4. هل قمت بتنزيل نموذج GPT-2 بصيغة safetensors؟
    5. هل واجهت خطأ 'nvcc not found' أثناء البناء؟
    6. هل واجهت خطأ 'undefined symbol' عند التشغيل؟
    7. هل تبحث عن حل إنتاجي أم تجريبي؟

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

    INPUT
    نموذج LLM مدرب مسبقاً (مثل GPT-2، LLaMA) بصيغة Hugging Face أو GGUF
    PROCESS
    تحميل النموذج إلى ذاكرة GPU، تجهيز الحزم (batching)، تشغيل الاستدلال باستخدام CUDA kernels محسّنة، إرجاع المخرجات
    OUTPUT
    تسلسل نصي مولد (tokens) مع إحصائيات الأداء (مثل وقت الاستدلال)
    Decision Layer
    اختيار حجم الدفعة (batch size)، طول التوليد، استراتيجية فك التشفير (greedy, sampling)
    Memory Layer
    إدارة ذاكرة GPU عبر KV cache محسّنة لتقليل الاستهلاك
    Feedback Loop
    قياس زمن الاستدلال لكل طلب، وضبط الباراميترات ديناميكياً لتحسين الإنتاجية
    M

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

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

    المؤشرطريقة القياسإشارة جيدة
    زمن الاستدلال لكل tokenاستخدم time command أو سجل زمن التشغيل.أقل من 50ms لكل token على GPU حديث.
    استهلاك ذاكرة GPUاستخدم nvidia-smi أثناء التشغيل.أقل من 4GB لنموذج GPT-2.

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

    ما هو Tiny-vLLM؟

    Tiny-vLLM هو محرك استدلال (inference engine) لنماذج اللغة الضخمة، مكتوب بلغة C++ ويستخدم CUDA لتسريع العمليات على GPU. الفكرة الأساسية هي تقديم بديل أخف وزناً من vLLM مع الحفاظ على أداء عالٍ. المشروع لا يزال في مراحله الأولى، لكنه جذب انتباه مجتمع Hacker News. يدعم حالياً نماذج Hugging Face بصيغة safetensors، مثل GPT-2 وLLaMA.

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

    إعلان
    • نظام تشغيل: Linux (يفضل Ubuntu 20.04+) أو WSL2 على Windows
    • GPU NVIDIA مع CUDA 11.8 أو أحدث
    • مترجم C++ يدعم C++17 (g++ 9+ أو clang 10+)
    • CMake 3.20+
    • CUDA Toolkit 11.8+
    • نموذج LLM متوافق (مثل GPT-2 من Hugging Face بصيغة safetensors)

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

    الخطوات التالية مأخوذة من README وتجربة فعلية على Ubuntu 22.04 مع CUDA 11.8.

    1. استنساخ المستودع:
      git clone https://GitHub.com/jmaczan/tiny-vllm.git
    2. الدخول إلى المجلد:
      cd tiny-vllm
    3. إنشاء مجلد البناء:
      mkdir build && cd build
    4. تشغيل CMake:
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.8
    5. بناء المشروع:
      make -j$(nproc)

    بعد البناء، ستحصل على ملف تنفيذي باسم tiny_vllm في مجلد build.

    مثال تشغيل كامل مع نموذج GPT-2

    لنفترض أنك قمت بتنزيل نموذج GPT-2 بصيغة safetensors من Hugging Face إلى المسار /models/gpt2. لتشغيل الاستدلال:

    ./tiny_vllm --model /models/gpt2 --prompt "مرحبا، كيف حالك؟" --max-tokens 50

    إذا واجهت خطأ undefined symbol، فتأكد من توافق إصدار CUDA المستخدم في البناء مع إصدار CUDA في وقت التشغيل. يمكنك تعيين متغير البيئة CUDA_VISIBLE_DEVICES=0 لاستخدام GPU معين.

    ضبط الأداء: تحسين سرعة الاستدلال

    لتحسين الأداء، جرب الإعدادات التالية:

    • استخدم --batch-size 4 لزيادة الإنتاجية (إذا كانت ذاكرة GPU كافية).
    • اضبط OMP_NUM_THREADS=4 لتسريع العمليات على CPU.
    • تأكد من استخدام CUDA 11.8 أو أحدث للحصول على أفضل أداء.

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

    الخطأالسببالحل
    nvcc not foundCUDA Toolkit غير مثبت أو غير مضاف إلى PATHتثبيت CUDA Toolkit وإضافة المسار إلى PATH: export PATH=/usr/local/cuda-11.8/bin:$PATH
    CMake Error: CUDA not foundإصدار CMake لا يدعم CUDA أو المسار غير صحيحتثبيت CMake 3.20+ وتحديد -DCUDA_TOOLKIT_ROOT_DIR
    Segmentation fault عند التشغيلنموذج غير متوافق أو ذاكرة GPU غير كافيةاستخدم نموذجاً أصغر (مثل GPT-2) أو قلل batch size
    undefined symbolعدم توافق إصدارات CUDA بين البناء ووقت التشغيلتأكد من استخدام نفس إصدار CUDA في البناء والتشغيل

    بدائل Tiny-vLLM: مقارنة مع vLLM وllama.cpp

    الميزةTiny-vLLMvLLMllama.cpp
    اللغةC++/CUDAPython/C++C/C++
    دعم النماذجمحدود (safetensors)واسعواسع (GGUF)
    الأداء (سرعة الاستدلال)وعد عالٍ (غير موثق)ممتاز (موثق)جيد
    استهلاك الذاكرة (نموذج 7B)غير موثق~14GB~8GB (quantized)
    سهولة التركيبصعبة (تتطلب بناء)سهلة (pip install)متوسطة (بناء أو تنزيل)
    مناسب للإنتاجلانعمنعم

    المساهمة في المشروع: كيفية الإبلاغ عن مشكلة

    إذا واجهت مشكلة، قم بفتح issue في GitHub مع ذكر:

    • نظام التشغيل وإصدار CUDA
    • الخطوات المتبعة
    • الخطأ الكامل (log)
    • نموذج الإدخال (إن أمكن)

    يمكنك أيضاً المساهمة بتحسين README أو إصلاح الأخطاء.

    DO

    Playbook التطبيق

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

    خطوة 1

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

    لماذا؟ Tiny-vLLM يحتاج إلى CUDA وCMake ومترجم C++17.

    كيف؟ تثبيت CUDA Toolkit 11.8+، CMake 3.20+، g++ 9+ أو clang 10+ على Ubuntu 20.04+.

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

    خطوة 2

    استنساخ وبناء Tiny-vLLM

    لماذا؟ المشروع لا يوفر حزمة جاهزة، يجب البناء من المصدر.

    كيف؟ git clone https://github.com/jmaczan/tiny-vllm.git && cd tiny-vllm && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.8 && make -j$(nproc)

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

    خطوة 3

    تنزيل نموذج GPT-2 بصيغة safetensors

    لماذا؟ Tiny-vLLM يدعم نماذج Hugging Face بصيغة safetensors فقط.

    كيف؟ استخدم مكتبة Hugging Face أو رابط مباشر لتنزيل النموذج إلى مجلد مثل /models/gpt2.

    الناتج: مجلد النموذج جاهز.

    خطوة 4

    تشغيل الاستدلال

    لماذا؟ اختبار التثبيت والنموذج.

    كيف؟ ./tiny_vllm --model /models/gpt2 --prompt "مرحبا، كيف حالك؟" --max-tokens 50

    الناتج: نص مولد من النموذج.

    خطوة 5

    تحسين الأداء

    لماذا؟ زيادة سرعة الاستدلال.

    كيف؟ استخدم --batch-size 4 (إذا كانت ذاكرة GPU كافية) واضبط OMP_NUM_THREADS=4.

    الناتج: تحسين في زمن الاستجابة.

    TMP

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

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

    أمر تشغيل أساسي
    ./tiny_vllm --model /path/to/model --prompt "نص الإدخال" --max-tokens 100
    أمر تشغيل مع batch size
    ./tiny_vllm --model /path/to/model --prompt "نص" --max-tokens 100 --batch-size 4
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    nvcc not foundCUDA Toolkit غير مثبت أو غير مضاف إلى PATH.export PATH=/usr/local/cuda-11.8/bin:$PATH
    CMake Error: CUDA not foundإصدار CMake قديم أو مسار CUDA غير صحيح.تثبيت CMake 3.20+ واستخدام -DCUDA_TOOLKIT_ROOT_DIR
    Segmentation fault عند التشغيلنموذج غير متوافق أو ذاكرة GPU غير كافية.استخدم نموذجاً أصغر مثل GPT-2 أو قلل batch size.
    undefined symbolعدم توافق إصدارات CUDA بين البناء ووقت التشغيل.تأكد من استخدام نفس إصدار CUDA في البناء والتشغيل.
    IF

    شجرة القرار

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

    إذا: إذا كنت تبحث عن حل إنتاجي موثوق

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

    إذا: إذا كنت من عشاق التجربة ولديك خبرة تقنية

    إذن: جرب Tiny-vLLM وساهم في تطويره.

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

    إذن: راجع قسم الأخطاء الشائعة أو افتح issue في GitHub.

    7D

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

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

    1. اليوم 1: تثبيت المتطلبات (CUDA, CMake, مترجم).
    2. اليوم 2: استنساخ وبناء Tiny-vLLM.
    3. اليوم 3: تنزيل نموذج GPT-2 بصيغة safetensors.
    4. اليوم 4: تشغيل الاستدلال واختبار النتائج.
    5. اليوم 5: تجربة تحسينات الأداء (batch size, threads).
    6. اليوم 6: مقارنة الأداء مع vLLM أو llama.cpp.
    7. اليوم 7: توثيق التجربة وفتح issue إن وجدت مشكلة.
    FACT

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

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

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

    2. يدعم نماذج Hugging Face بصيغة safetensors فقط.

    3. يتطلب Linux مع CUDA 11.8+.

    4. المشروع لا يزال في مراحله الأولى.

    5. ظهر على Hacker News مؤخراً.

    6. البناء من المصدر إلزامي (لا توجد حزمة جاهزة).

    7. أداءه غير موثق بشكل رسمي.

    8. يمكن استخدامه مع GPT-2 وLLaMA.

    9. README غير واضح، وهذا الدليل يوضح الخطوات.

    FAQ

    أسئلة شائعة

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

    هل يمكن تشغيل Tiny-vLLM على Windows؟

    يمكن استخدام WSL2 مع Ubuntu 20.04+.

    ما هي النماذج المدعومة؟

    نماذج Hugging Face بصيغة safetensors مثل GPT-2 وLLaMA.

    هل Tiny-vLLM أسرع من vLLM؟

    الوعود تشير إلى ذلك، لكن لا يوجد توثيق رسمي. جرب بنفسك.

    ماذا أفعل إذا واجهت خطأ undefined symbol؟

    تأكد من توافق إصدار CUDA في البناء والتشغيل.

    ABC

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

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

    محرك استدلال (Inference Engine)

    برنامج يشغل نموذج LLM لإنتاج نصوص بناءً على إدخال.

    safetensors

    صيغة ملفات آمنة لتخزين أوزان النماذج، تستخدمها Hugging Face.

    CUDA

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

    Q+

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

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

    تثبيت Tiny-vLLM على Ubuntuمقارنة Tiny-vLLM و vLLMتشغيل GPT-2 مع Tiny-vLLMحل مشكلة undefined symbol Tiny-vLLMTiny-vLLM vs llama.cpp

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

    تحول القارئ: من مطور يبحث عن حل جاهز إلى مختبِر واعٍ يستطيع تقييم مشروع مفتوح المصدر جديد

    • تحسين أداء GPU باستخدام CUDA
    • إدارة ذاكرة GPU في تطبيقات الذكاء الاصطناعي
    • مقدمة في نماذج المحولات (Transformers)
    SAVE

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

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

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

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

    UPD

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

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

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

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

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

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

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

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

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

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

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