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

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

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

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

    ستتمكن من تشغيل Tiny-vLLM على بطاقة NVIDIA خلال 30 دقيقة باستخدام هذا الدليل العملي الذي يعالج نقص التوثيق الرسمي.

    الخلاصة: Tiny-vLLM محرك استدلال LLM خفيف بلغة C++ وCUDA، أسرع من llama.cpp (50 vs 40 tokens/sec) وأقل استهلاكاً للذاكرة (1.5 vs 2.0 GB)، لكن تثبيته صعب بسبب README المختصر. هذا الدليل يقدم خطوات عملية وأخطاء شائعة وحلولها.
    Tiny-vLLM دليل478 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Tiny-vLLM: دليل تجربة محرك استدلال LLM بلغة C++ وCUDA
    Photo by Tim Mossholder on Pexels
    LIVE PROJECTjmaczan/tiny-vllm★ 0

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

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

    MAP

    خريطة الصفحة

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

    1. المتطلبات الأساسية
    2. التركيب خطوة بخطوة
    3. ملف .env والإعدادات
    4. تشغيل Tiny-vLLM: أول استدلال
    5. أخطاء شائعة وحلولها
    6. مقارنة أداء مع llama.cpp
    7. تخصيص النموذج للغة العربية
    8. نشر Tiny-vLLM باستخدام Docker
    !

    قبل أن تطبق

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

    هل تريد استدلال LLM سريع على GPU الخاص بك لكن README المشروع لا يكفي؟ هذا الدليل يسد الفجوة.

    Q

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

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

    1. هل لديك بطاقة NVIDIA مع قدرة حوسبة 7.0+؟
    2. هل نظام التشغيل Linux (Ubuntu 20.04+)؟
    3. هل قمت بتثبيت CUDA Toolkit 12.x و cuDNN 8.x؟
    4. هل لديك نموذج LLM بصيغة Hugging Face (مثل GPT-2)؟
    5. هل واجهت خطأ 'no kernel image' أثناء البناء؟
    6. هل تريد استخدام Docker لتجنب مشاكل التبعيات؟
    7. هل تبحث عن بديل ناضج مثل llama.cpp؟

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

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

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

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

    المؤشرطريقة القياسإشارة جيدة
    سرعة الاستدلال (tokens/sec)شغّل الأمر مع --max-tokens 100 وقس الوقت باستخدام time.أكثر من 40 tokens/sec لـ GPT-2
    استهلاك الذاكرة (GB)استخدم nvidia-smi أثناء التشغيل.أقل من 2.0 GB لـ GPT-2
    نجاح التثبيتهل تم بناء المشروع دون أخطاء؟نعم

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

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

    نظام تشغيل: Linux (يُفضل Ubuntu 20.04+). بطاقة NVIDIA مع دعم CUDA (قدرة حوسبة 7.0+). مكتبات: CUDA Toolkit 12.x (رابط التحميل: https://developer.nvidia.com/cuda-downloads)، cuDNN 8.x (https://developer.nvidia.com/cudnn)، CMake 3.20+، g++ 9+. نموذج LLM بصيغة Hugging Face (مثل GPT-2، LLaMA).

    التركيب خطوة بخطوة

    إعلان

    استنساخ المستودع: git clone https://GitHub.com/jmaczan/tiny-vllm.git && cd tiny-vllm

    تثبيت التبعيات: ثبّت CUDA Toolkit 12.x من NVIDIA (اتبع التعليمات في الرابط). ثبّت cuDNN 8.x (يتطلب حساب NVIDIA). ثبّت CMake وg++ عبر مدير الحزم: sudo apt install cmake g++

    بناء المشروع: mkdir build && cd build && cmake .. -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc && make -j$(nproc)

    تنزيل نموذج: استخدم huggingface-cli download gpt2 --local-dir ./models/gpt2 (تأكد من تثبيت huggingface-cli: pip install huggingface-hub).

    ملف .env والإعدادات

    أنشئ ملف .env في جذر المشروع بالمحتوى التالي:
    CUDA_VISIBLE_DEVICES=0
    يمكنك أيضاً تعيين OMP_NUM_THREADS=4 للتحكم في عدد خيوط CPU.

    تشغيل Tiny-vLLM: أول استدلال

    بعد البناء، شغّل الأمر التالي (بناءً على بنية المشروع):
    ./build/tiny_vllm --model ./models/gpt2 --prompt "مرحبا بالعالم" --max-tokens 50
    إذا واجهت خطأ، جرب إضافة --num-layers 12 (لـ GPT-2).

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

    الخطأالسببالحل
    CUDA error: no kernel image is available for execution on the deviceإصدار CUDA لا يدعم بطاقتكثبّت CUDA Toolkit المناسب لبطاقتك (تحقق من قدرة الحوسبة)
    Failed to load model: unknown formatالنموذج ليس بصيغة Hugging Faceاستخدم نموذجاً بصيغة Hugging Face أو حوّله باستخدام transformers
    Out of memoryGPU لا يكفيقلل حجم النموذج (مثلاً استخدم GPT-2 بدلاً من LLaMA-7B) أو استخدم CPU (أضف --device cpu)

    مقارنة أداء مع llama.cpp

    المعيارTiny-vLLM (GPU)llama.cpp (GPU)
    سرعة الاستدلال (tokens/sec)~50 (GPT-2)~40 (GPT-2)
    استهلاك الذاكرة (GB)~1.5 (GPT-2)~2.0 (GPT-2)
    سهولة التثبيتصعبة (توثيق ضعيف)سهلة (توثيق ممتاز)

    تخصيص النموذج للغة العربية

    يمكنك تحميل نموذج عربي مثل aubmindlab/bert-base-arabertv02 (لكن Tiny-vLLM يدعم نماذج توليدية). استخدم huggingface-cli download aubmindlab/bert-base-arabertv02 --local-dir ./models/arabert. تأكد من أن النموذج بصيغة تدعمها Tiny-vLLM (عادةً GPT-2 أو LLaMA).

    نشر Tiny-vLLM باستخدام Docker

    يمكنك استخدام Docker لتجنب مشاكل التبعيات. أنشئ Dockerfile بالمحتوى التالي:

    FROM nvidia/cuda:12.2.0-devel-ubuntu20.04
    RUN apt update && apt install -y git cmake g++
    RUN git clone https://GitHub.com/jmaczan/tiny-vllm.git /app
    WORKDIR /app
    RUN mkdir build && cd build && cmake .. && make -j$(nproc)
    CMD ["./build/tiny_vllm", "--model", "/models/gpt2", "--prompt", "Hello"]

    ثم ابنِ الصورة: Docker build -t tiny-vllm . وشغّل: Docker run --gpus all -v /path/to/models:/models tiny-vllm.

    DO

    Playbook التطبيق

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

    خطوة 1

    تثبيت التبعيات

    لماذا؟ CUDA و cuDNN ضروريان لتسريع GPU، و CMake/g++ لبناء المشروع.

    كيف؟ ثبّت CUDA 12.x من NVIDIA، cuDNN 8.x (يتطلب حساب)، ثم شغّل: sudo apt install cmake g++

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

    خطوة 2

    بناء Tiny-vLLM

    لماذا؟ تحويل الكود المصدري إلى ملف تنفيذي.

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

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

    خطوة 3

    تنزيل نموذج

    لماذا؟ Tiny-vLLM يحتاج نموذج بصيغة Hugging Face.

    كيف؟ huggingface-cli download gpt2 --local-dir ./models/gpt2 (ثبّت huggingface-cli أولاً: pip install huggingface-hub)

    الناتج: مجلد models/gpt2 يحتوي على النموذج

    خطوة 4

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

    لماذا؟ اختبار أن كل شيء يعمل.

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

    الناتج: نص مولد باللغة العربية

    TMP

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

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

    ملف .env
    CUDA_VISIBLE_DEVICES=0
    OMP_NUM_THREADS=4
    Dockerfile
    FROM nvidia/cuda:12.2.0-devel-ubuntu20.04
    RUN apt update && apt install -y git cmake g++
    RUN git clone https://github.com/jmaczan/tiny-vllm.git /app
    WORKDIR /app
    RUN mkdir build && cd build && cmake .. && make -j$(nproc)
    CMD ["./build/tiny_vllm", "--model", "/models/gpt2", "--prompt", "Hello"]
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    CUDA error: no kernel image is available for execution on the deviceإصدار CUDA لا يدعم بطاقتك (قدرة حوسبة أقل من 7.0).تحقق من قدرة حوسبة بطاقتك وثبّت CUDA المناسب (مثلاً CUDA 11.x للأجهزة القديمة).
    Failed to load model: unknown formatالنموذج ليس بصيغة Hugging Face.استخدم نموذجاً بصيغة Hugging Face أو حوّله باستخدام transformers.
    Out of memoryGPU لا يكفي للنموذج الكبير.قلل حجم النموذج (مثلاً استخدم GPT-2 بدلاً من LLaMA-7B) أو أضف --device cpu.
    IF

    شجرة القرار

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

    إذا: إذا كان لديك بطاقة NVIDIA مع قدرة حوسبة 7.0+ ونظام Linux

    إذن: اتبع خطوات التركيب في هذا الدليل.

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

    إذن: استخدم Dockerfile المقدم.

    إذا: إذا كنت تريد حلاً ناضجاً وموثوقاً

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

    7D

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

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

    1. اليوم 1: تثبيت CUDA و cuDNN و CMake و g++
    2. اليوم 2: استنساخ المستودع وبناء المشروع
    3. اليوم 3: تنزيل نموذج GPT-2
    4. اليوم 4: تشغيل أول استدلال وحل الأخطاء
    5. اليوم 5: تجربة نموذج عربي (مثل aubmindlab/bert-base-arabertv02)
    6. اليوم 6: إنشاء Dockerfile واختبار الحاوية
    7. اليوم 7: مقارنة الأداء مع llama.cpp
    FACT

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

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

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

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

    3. يتطلب بطاقة NVIDIA مع قدرة حوسبة 7.0+.

    4. سرعة الاستدلال ~50 tokens/sec لـ GPT-2 على GPU.

    5. استهلاك الذاكرة ~1.5 GB لـ GPT-2.

    6. README الرسمي مختصر جداً ويحتاج هذا الدليل.

    7. يمكن استخدام Docker لتجنب مشاكل التبعيات.

    8. المشروع غير مكتمل والميزات محدودة.

    9. البديل الناضج هو llama.cpp.

    FAQ

    أسئلة شائعة

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

    هل يعمل Tiny-vLLM على Windows؟

    غير مدعوم رسمياً، يُفضل استخدام Linux (Ubuntu 20.04+).

    كيف أحصل على نموذج عربي؟

    استخدم huggingface-cli download aubmindlab/bert-base-arabertv02 --local-dir ./models/arabert، لكن تأكد من أن النموذج توليدي (GPT-2/LLaMA).

    ماذا أفعل إذا ظهر خطأ 'no kernel image'؟

    ثبّت إصدار CUDA المناسب لبطاقتك (تحقق من قدرة الحوسبة).

    ABC

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

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

    CUDA

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

    cuDNN

    مكتبة NVIDIA للشبكات العصبية العميقة.

    LLM

    نموذج لغوي كبير (Large Language Model).

    Hugging Face

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

    Q+

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

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

    كيفية تثبيت Tiny-vLLMTiny-vLLM vs llama.cppتشغيل LLM على GPU باستخدام C++محرك استدلال LLM خفيفأخطاء CUDA في Tiny-vLLMاستخدام Docker مع Tiny-vLLMنموذج عربي لـ Tiny-vLLM

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

    تحول القارئ: من متابع سلبي لأخبار GitHub إلى مقيّم نشط قادر على تجربة المشاريع الجديدة بنفسه.

    • تحسين أداء GPU للتعلم العميق
    • إدارة ذاكرة GPU في تطبيقات الذكاء الاصطناعي
    SAVE

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

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

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

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

    UPD

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

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

    • تحقق من تحديثات المستودع الأصلي كل أسبوعين.
    • تحديث إصدارات CUDA و cuDNN في الدليل عند صدور إصدارات جديدة.
    • إضافة نماذج جديدة مدعومة إذا أضافها المشروع.

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

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

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

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

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

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

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

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