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

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

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

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

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

    الخلاصة: Tiny-vLLM محرك استدلال LLM بلغة C++/CUDA، جديد وغير مستقر، يتطلب CUDA 11.8+ وGPU 8GB. الدليل يقدم خطوات تقديرية للتثبيت، حلول أخطاء، ومقارنة أداء. غير مناسب للإنتاج.
    Tiny-vLLM537 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Tiny-vLLM: دليل تشغيل محرك استدلال LLM بلغة C++ وCUDA
    Photo by Daniil Komov 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. إعداد بيئة CUDA خطوة بخطوة
    4. تركيب Tiny-vLLM (خطوات تقديرية)
    5. تجربة نموذج GPT-2 مع Tiny-vLLM
    6. الأخطاء الشائعة وحلولها
    7. مقارنة أداء Tiny-vLLM مع vLLM وllama.cpp
    8. الأسئلة الشائعة
    !

    قبل أن تطبق

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

    تخيل أنك تستطيع تشغيل نموذج لغة كبير على بطاقة GPU واحدة بأداء يفوق vLLM. لكن هل Tiny-vLLM جاهز لذلك؟

    Q

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

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

    1. هل لديك بطاقة NVIDIA مع CUDA 11.8+؟
    2. هل ذاكرة GPU لديك 8GB على الأقل؟
    3. هل جربت تشغيل نموذج GPT-2 بنجاح؟
    4. هل واجهت خطأ CUDA out of memory؟
    5. هل قمت بتعيين متغيرات البيئة CUDA_HOME و PATH؟
    6. هل تبحث عن بديل خفيف لـ vLLM؟
    7. هل أنت مستعد لتحمل عدم الاستقرار لصالح الأداء النظري؟

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

    INPUT
    نموذج LLM (مثل GPT-2، LLaMA) بصيغة Hugging Face أو ONNX.
    PROCESS
    محرك استدلال بلغة C++ مع تسريع CUDA يقوم بتحميل النموذج وتنفيذ الاستدلال (inference) على GPU.
    OUTPUT
    مخرجات النموذج (نصوص، توقعات) بزمن استجابة منخفض.
    Decision Layer
    اختيار النموذج المناسب لحجم الذاكرة المتاحة (VRAM).
    Memory Layer
    إدارة ذاكرة GPU عبر تقنيات مثل PagedAttention (مستوحاة من vLLM).
    Feedback Loop
    قياس زمن الاستجابة (latency) وعدد الرموز في الثانية (tokens/sec) لتحسين الأداء.
    M

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

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

    المؤشرطريقة القياسإشارة جيدة
    زمن الاستدلال لكل رمز (ms/token)استخدم --benchmark مع الأمر.أقل من 50ms/token لنموذج GPT-2 على GPU حديثة.
    استخدام ذاكرة GPU (GB)راقب بـ nvidia-smi أثناء التشغيل.أقل من 6GB لنموذج GPT-2.
    نجاح التثبيتتنفيذ make بدون أخطاء.بناء ناجح بدون أخطاء.

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

    ما هو Tiny-vLLM؟

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

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

    إعلان
    • نظام تشغيل: Linux (يفضل Ubuntu 20.04+)
    • بطاقة NVIDIA مع CUDA 11.8+ (تحقق بالأمر: nvcc --version)
    • ذاكرة GPU: 8GB على الأقل للنماذج الصغيرة (مثل GPT-2)
    • C++ compiler (g++ مع دعم C++17)
    • CMake 3.20+
    • CUDA Toolkit (تحقق من متغير البيئة CUDA_HOME)

    إعداد بيئة CUDA خطوة بخطوة

    تأكد من تثبيت CUDA Toolkit وإضافة المسار إلى PATH وLD_LIBRARY_PATH. مثال:

    export CUDA_HOME=/usr/local/cuda-11.8
    export PATH=$CUDA_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

    تحقق من التثبيت: nvcc --version و nvidia-smi.

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

    ملاحظة: لم يتم تجربة المشروع بشكل كامل، لذا الخطوات التالية تقديرية بناءً على بنية المشروع. قد تحتاج لتعديلها. راجع README للحصول على أحدث التعليمات.

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

    تجربة نموذج GPT-2 مع Tiny-vLLM

    لتنزيل نموذج GPT-2 من Hugging Face:

    git lfs install
    git clone https://huggingface.co/gpt2

    ثم شغّل Tiny-vLLM (الأمر تقديري):

    ./tiny_vllm --model /path/to/gpt2 --prompt "مرحبا"

    إذا نجح، سترى مخرجات النموذج. لقياس الأداء، استخدم --benchmark.

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

    الخطأالسببالحل
    CUDA error: out of memoryالنموذج أكبر من VRAMاستخدم نموذجاً أصغر (مثل GPT-2) أو قلل batch size
    CMake not foundCMake غير مثبتثبته: sudo apt install cmake
    Model file not foundمسار النموذج خاطئتأكد من وجود المجلد واستخدام المسار المطلق
    nvcc: command not foundCUDA غير مضاف إلى PATHأضف export PATH=/usr/local/cuda/bin:$PATH
    CUDA version mismatchإصدار CUDA لا يتوافق مع المشروعاستخدم CUDA 11.8 أو أحدث
    undefined reference to `cudaMalloc'مكتبات CUDA غير مرتبطةتأكد من ضبط LD_LIBRARY_PATH
    Segmentation faultخطأ في النموذج أو الذاكرةجرب نموذجاً آخر أو قلل حجم الدفعة

    مقارنة أداء Tiny-vLLM مع vLLM وllama.cpp

    المشروعاللغةالأداءالاستقرار
    vLLMPython/C++عاليمستقر
    llama.cppC++متوسطمستقر
    Tiny-vLLMC++/CUDAعالي (نظرياً)جديد

    الأسئلة الشائعة

    كيف أحل خطأ CUDA out of memory؟

    استخدم نموذجاً أصغر مثل GPT-2 (124M معلمة) أو قلل batch size. يمكنك أيضاً تحرير الذاكرة بإغلاق تطبيقات أخرى.

    ما النماذج التي جربت بنجاح؟

    نظرياً، يدعم نماذج Hugging Face، لكن الأفضل اختبار النماذج الصغيرة أولاً مثل GPT-2 أو DistilGPT-2.

    هل يدعم Tiny-vLLM نماذج العربية؟

    إذا كان النموذج متوافقاً مع Hugging Face، يمكن تجربته، لكن لم يتم اختباره.

    ما هي متطلبات GPU؟

    NVIDIA مع CUDA 11.8+ وذاكرة 8GB على الأقل للنماذج الصغيرة.

    هل Tiny-vLLM مستقر للإنتاج؟

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

    DO

    Playbook التطبيق

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

    خطوة 1

    تثبيت CUDA Toolkit 11.8+

    لماذا؟ Tiny-vLLM يعتمد على CUDA للتسريع على GPU.

    كيف؟ نفذ الأوامر: export CUDA_HOME=/usr/local/cuda-11.8; export PATH=$CUDA_HOME/bin:$PATH; export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH; تحقق بـ nvcc --version.

    الناتج: ظهور إصدار CUDA 11.8+.

    خطوة 2

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

    لماذا؟ الحصول على الكود المصدري وترجمته.

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

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

    خطوة 3

    تنزيل نموذج GPT-2

    لماذا؟ نموذج صغير مناسب للاختبار.

    كيف؟ git lfs install; git clone https://huggingface.co/gpt2.

    الناتج: مجلد gpt2 يحتوي على ملفات النموذج.

    خطوة 4

    تشغيل Tiny-vLLM مع GPT-2

    لماذا؟ اختبار الاستدلال.

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

    الناتج: مخرجات نصية من النموذج.

    خطوة 5

    قياس الأداء

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

    كيف؟ أضف --benchmark إلى الأمر السابق.

    الناتج: إحصائيات زمن الاستدلال.

    TMP

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

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

    إعداد متغيرات CUDA
    export CUDA_HOME=/usr/local/cuda-11.8
    export PATH=$CUDA_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
    أمر تشغيل Tiny-vLLM مع نموذج
    ./tiny_vllm --model /absolute/path/to/model --prompt "نص الإدخال"
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    CUDA error: out of memoryالنموذج كبير جداً أو batch size كبير.استخدم نموذجاً أصغر مثل GPT-2 (124M) أو قلل batch size.
    CMake not foundCMake غير مثبت.sudo apt install cmake
    Model file not foundمسار النموذج خاطئ.استخدم المسار المطلق للمجلد الذي يحتوي على config.json.
    nvcc: command not foundCUDA غير مضاف إلى PATH.export PATH=/usr/local/cuda/bin:$PATH
    CUDA version mismatchإصدار CUDA لا يتوافق مع المشروع.استخدم CUDA 11.8 أو أحدث.
    undefined reference to `cudaMalloc'مكتبات CUDA غير مرتبطة.تأكد من ضبط LD_LIBRARY_PATH.
    Segmentation faultخطأ في النموذج أو الذاكرة.جرب نموذجاً آخر أو قلل حجم الدفعة.
    IF

    شجرة القرار

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

    إذا: إذا كان لديك GPU مع CUDA 11.8+ وذاكرة 8GB+

    إذن: اتبع خطوات التثبيت وجرب GPT-2.

    إذا: إذا واجهت خطأ CUDA out of memory

    إذن: استخدم نموذجاً أصغر مثل DistilGPT-2.

    إذا: إذا كنت تبحث عن استقرار للإنتاج

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

    إذا: إذا أردت المساهمة في مشروع مفتوح المصدر

    إذن: ساهم في تحسين Tiny-vLLM على GitHub.

    7D

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

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

    1. اليوم 1: تثبيت CUDA Toolkit 11.8+ والتحقق منه.
    2. اليوم 2: استنساخ وبناء Tiny-vLLM.
    3. اليوم 3: تنزيل نموذج GPT-2.
    4. اليوم 4: تشغيل Tiny-vLLM مع GPT-2 وقياس الأداء.
    5. اليوم 5: تجربة نموذج أصغر (DistilGPT-2) إذا واجهت مشاكل ذاكرة.
    6. اليوم 6: مقارنة الأداء مع vLLM أو llama.cpp.
    7. اليوم 7: توثيق النتائج وتحديد إمكانية الاستخدام.
    FACT

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

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

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

    2. المشروع جديد (0 نجوم وقت كتابة المقال).

    3. يتطلب CUDA 11.8+ وذاكرة GPU 8GB على الأقل.

    4. يدعم نماذج Hugging Face نظرياً.

    5. غير مستقر للإنتاج.

    6. يهدف ليكون بديلاً خفيفاً لـ vLLM.

    7. حظي باهتمام مجتمع Hacker News.

    8. خطوات التثبيت تقديرية ولم تجرب بالكامل.

    9. أفضل نموذج للاختبار هو GPT-2 (124M معلمة).

    FAQ

    أسئلة شائعة

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

    كيف أحل خطأ CUDA out of memory؟

    استخدم نموذجاً أصغر مثل GPT-2 (124M معلمة) أو قلل batch size. يمكنك أيضاً تحرير الذاكرة بإغلاق تطبيقات أخرى.

    ما النماذج التي جربت بنجاح؟

    نظرياً، يدعم نماذج Hugging Face، لكن الأفضل اختبار النماذج الصغيرة أولاً مثل GPT-2 أو DistilGPT-2.

    هل يدعم Tiny-vLLM نماذج العربية؟

    إذا كان النموذج متوافقاً مع Hugging Face، يمكن تجربته، لكن لم يتم اختباره.

    ما هي متطلبات GPU؟

    NVIDIA مع CUDA 11.8+ وذاكرة 8GB على الأقل للنماذج الصغيرة.

    هل Tiny-vLLM مستقر للإنتاج؟

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

    ABC

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

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

    LLM

    نموذج لغة كبير (Large Language Model) مثل GPT-2.

    CUDA

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

    vLLM

    محرك استدلال LLM شهير مكتوب بلغة Python/C++.

    llama.cpp

    محرك استدلال LLM بلغة C++ خفيف الوزن.

    Inference Engine

    برنامج يقوم بتشغيل نموذج LLM لإنتاج مخرجات من مدخلات.

    Q+

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

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

    كيفية تثبيت Tiny-vLLM على Ubuntuمقارنة Tiny-vLLM مع vLLMتشغيل GPT-2 على GPU مع Tiny-vLLMحل مشكلة CUDA out of memory في Tiny-vLLMTiny-vLLM vs llama.cpp الأداءمتطلبات تشغيل Tiny-vLLMهل Tiny-vLLM يدعم العربيةأخطاء بناء Tiny-vLLM

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

    تحول القارئ: من مطور يظن أن مشاريع GitHub الجديدة صعبة، إلى مطور قادر على تجربة Tiny-vLLM وتقييمه بنفسه.

    • تحسين أداء LLM باستخدام C++
    • مقارنة CUDA مع ROCm
    SAVE

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

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

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

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

    UPD

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

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

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

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

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

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

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

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

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

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

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