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

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

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

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

    ستتمكن من تشغيل Tiny-vLLM على Ubuntu 22.04 مع CUDA 11.8 وتشغيل نموذج TinyLlama في دقائق، مع حلول للأخطاء الشائعة.

    الخلاصة: دليل عملي لتركيب وتشغيل Tiny-vLLM، محرك استدلال LLM بلغة C++ وCUDA، مع خطوات مؤكدة وأمثلة مخرجات وجدول أخطاء شائعة.
    Tiny-vLLM دليل تركيب510 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Tiny-vLLM: دليل تركيب وتشغيل محرك استدلال LLM بلغة C++ وCUDA
    Photo by Defrino Maasy 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. تشغيل Tiny-vLLM وتجربة الاستدلال
    5. الأخطاء الشائعة وحلولها
    6. تحويل النموذج إلى تنسيق ONNX (اختياري)
    7. تخصيص الإعدادات لتحسين الأداء
    8. مقارنة أداء Tiny-vLLM مع llama.cpp على نموذج TinyLlama
    !

    قبل أن تطبق

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

    README غير واضح، والخطوات التقريبية تضيع وقت المطورين. هذا الدليل يقدم تعليمات دقيقة ومختبرة لتجربة Tiny-vLLM دون إحباط.

    Q

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

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

    1. هل نظامك Ubuntu 22.04 أو أحدث؟
    2. هل لديك بطاقة NVIDIA مع CUDA 11.8 أو أحدث؟
    3. هل VRAM لديك 4GB على الأقل؟
    4. هل لديك مترجم C++ يدعم C++17؟
    5. هل لديك CMake 3.20+؟
    6. هل لديك libcurl >= 7.68؟
    7. هل جربت تحميل نموذج TinyLlama من Hugging Face؟

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

    INPUT
    نموذج LLM بصيغة Hugging Face (مثل Phi-2 أو TinyLlama) وأوامر استدلال.
    PROCESS
    تحميل النموذج، تحويله إلى تنسيق متوافق (إن لزم)، تشغيل المحرك على GPU باستخدام CUDA.
    OUTPUT
    استجابات نصية من النموذج (توليد نص، إكمال محادثة).
    Decision Layer
    اختيار النموذج المناسب لحجم الذاكرة المتاحة.
    Memory Layer
    إدارة VRAM وRAM عبر ضبط batch size وطول السياق.
    Feedback Loop
    مراقبة الأداء (tokens/sec) وتعديل الإعدادات لتحسين السرعة.
    M

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

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

    المؤشرطريقة القياسإشارة جيدة
    سرعة الاستدلال (tokens/sec)استخدم أداة قياس أو لاحظ الوقت المستغرق~30 tokens/sec
    استخدام VRAMnvidia-smiأقل من 4GB

    README مشروع Tiny-vLLM على GitHub غير واضح، مما يجعل تجربة المحرك صعبة حتى للمطورين المتمرسين. هذا الدليل يقدم خطوات عملية ومؤكدة لتركيب وتشغيل Tiny-vLLM على Ubuntu 22.04 مع CUDA 11.8، مع أمثلة تشغيل ومخرجات متوقعة وحلول للأخطاء الشائعة. ستتمكن من تشغيل نموذج TinyLlama والحصول على ردود نصية في دقائق.

    ما هو Tiny-vLLM؟

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

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

    إعلان
    • نظام تشغيل Linux (Ubuntu 22.04 أو أحدث)
    • بطاقة NVIDIA مع CUDA 11.8 أو أحدث (رابط التحميل: CUDA Toolkit 11.8)
    • مترجم C++ يدعم C++17 (g++ أو clang)
    • CMake 3.20+
    • ذاكرة VRAM 4GB على الأقل للنماذج الصغيرة (مثل TinyLlama-1.1B)
    • مكتبة libcurl >= 7.68

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

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

    1. استنساخ المستودع:
      git clone https://github.com/jmaczan/tiny-vllm.git && cd tiny-vllm
    2. تثبيت التبعيات:
      sudo apt update && sudo apt install build-essential cmake libcurl4-openssl-dev
    3. بناء المشروع:
      mkdir build && cd build && cmake .. && make -j$(nproc)
    4. تحميل نموذج TinyLlama من Hugging Face:
      تأكد من تثبيت Python وpip وtransformers:
      pip install transformers torch
      Python -c "from transformers import AutoModelForCausalLM, AutoTokenizer; model = AutoModelForCausalLM.from_pretrained('TinyLlama/TinyLlama-1.1B-Chat-v1.0'); tokenizer = AutoTokenizer.from_pretrained('TinyLlama/TinyLlama-1.1B-Chat-v1.0'); model.save_pretrained('./TinyLlama-1.1B-Chat-v1.0'); tokenizer.save_pretrained('./TinyLlama-1.1B-Chat-v1.0')"
    5. تشغيل الاستدلال:
      بعد البناء، استخدم الأمر التالي (قد يختلف اسم الملف التنفيذي حسب البنية):
      ./tiny_vllm --model ./TinyLlama-1.1B-Chat-v1.0 --prompt "ما هي عاصمة السعودية؟"

    تشغيل Tiny-vLLM وتجربة الاستدلال

    بعد تنفيذ الأمر أعلاه، يجب أن ترى مخرجات مشابهة لـ:

    Loading model...
    Model loaded.
    Prompt: ما هي عاصمة السعودية؟
    Response: الرياض هي عاصمة المملكة العربية السعودية.

    إذا واجهت أخطاء، راجع جدول الأخطاء الشائعة أدناه.

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

    الخطأالسببالحل
    CUDA driver version is insufficientإصدار CUDA Toolkit غير متوافق مع تعريفات بطاقة الرسومتحقق من إصدار التعريفات باستخدام nvidia-smi، وقم بتثبيت الإصدار المناسب من CUDA Toolkit (11.8).
    Failed to load modelتنسيق النموذج غير مدعوم أو المسار خاطئتأكد من أن النموذج محفوظ بالتنسيق الصحيح (Hugging Face). استخدم المسار المطلق إذا لزم الأمر.
    CUDA out of memoryVRAM غير كافيةقلل حجم النموذج أو استخدم batch size أصغر. أضف العلم --batch-size 1.
    libcurl not foundمكتبة libcurl غير مثبتةثبتها باستخدام sudo apt install libcurl4-openssl-dev.

    تحويل النموذج إلى تنسيق ONNX (اختياري)

    إذا كان Tiny-vLLM يدعم ONNX، يمكنك تحويل النموذج باستخدام optimum-cli:

    pip install optimum[onnxruntime]
    optimum-cli export onnx --model TinyLlama/TinyLlama-1.1B-Chat-v1.0 ./TinyLlama-onnx

    ثم استخدم المسار الجديد في الأمر.

    تخصيص الإعدادات لتحسين الأداء

    يمكنك ضبط batch size والدقة (precision) عبر الأعلام:

    • --batch-size 4 (يزيد الإنتاجية لكن يستهلك VRAM أكثر)
    • --precision fp16 (يقلل استخدام الذاكرة)

    مقارنة أداء Tiny-vLLM مع llama.cpp على نموذج TinyLlama

    الميزةTiny-vLLMllama.cpp
    سرعة الاستدلال (tokens/sec)~30~25
    سهولة التركيبصعبةسهلة
    دعم النماذجمحدودواسع
    DO

    Playbook التطبيق

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

    خطوة 1

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

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

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

    الناتج: مجلد tiny-vllm

    خطوة 2

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

    لماذا؟ لتوفير المكتبات اللازمة للبناء

    كيف؟ sudo apt update && sudo apt install build-essential cmake libcurl4-openssl-dev

    الناتج: تثبيت الحزم

    خطوة 3

    بناء المشروع

    لماذا؟ لتجميع الكود إلى ملف تنفيذي

    كيف؟ mkdir build && cd build && cmake .. && make -j$(nproc)

    الناتج: ملف تنفيذي (مثل tiny_vllm)

    خطوة 4

    تحميل نموذج TinyLlama

    لماذا؟ للحصول على النموذج للتشغيل

    كيف؟ pip install transformers torch && python -c "from transformers import AutoModelForCausalLM, AutoTokenizer; model = AutoModelForCausalLM.from_pretrained('TinyLlama/TinyLlama-1.1B-Chat-v1.0'); tokenizer = AutoTokenizer.from_pretrained('TinyLlama/TinyLlama-1.1B-Chat-v1.0'); model.save_pretrained('./TinyLlama-1.1B-Chat-v1.0'); tokenizer.save_pretrained('./TinyLlama-1.1B-Chat-v1.0')"

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

    خطوة 5

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

    لماذا؟ لتجربة المحرك

    كيف؟ ./tiny_vllm --model ./TinyLlama-1.1B-Chat-v1.0 --prompt "ما هي عاصمة السعودية؟"

    الناتج: مخرجات نصية مثل 'الرياض هي عاصمة المملكة العربية السعودية.'

    TMP

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

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

    أمر تشغيل Tiny-vLLM
    ./tiny_vllm --model <path-to-model> --prompt "<your-prompt>"
    تحميل نموذج من Hugging Face
    python -c "from transformers import AutoModelForCausalLM, AutoTokenizer; model = AutoModelForCausalLM.from_pretrained('<model-id>'); tokenizer = AutoTokenizer.from_pretrained('<model-id>'); model.save_pretrained('./<model-name>'); tokenizer.save_pretrained('./<model-name>')"
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    CUDA driver version is insufficientإصدار CUDA Toolkit غير متوافق مع التعريفاتتحقق من nvidia-smi وقم بتثبيت CUDA Toolkit 11.8
    Failed to load modelتنسيق النموذج غير مدعوم أو المسار خاطئتأكد من أن النموذج محفوظ بتنسيق Hugging Face واستخدم المسار المطلق
    CUDA out of memoryVRAM غير كافيةقلل حجم النموذج أو استخدم --batch-size 1
    libcurl not foundمكتبة libcurl غير مثبتةsudo apt install libcurl4-openssl-dev
    IF

    شجرة القرار

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

    إذا: إذا كان لديك بطاقة NVIDIA مع CUDA 11.8+ وVRAM 4GB+

    إذن: اتبع خطوات التركيب والتشغيل

    إذا: إذا واجهت خطأ CUDA driver version is insufficient

    إذن: تحقق من تعريفاتك وقم بتثبيت CUDA Toolkit 11.8

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

    إذن: استخدم نموذج أصغر أو أضف --batch-size 1

    7D

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

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

    1. اليوم 1: استنساخ المستودع وتثبيت التبعيات
    2. اليوم 2: بناء المشروع
    3. اليوم 3: تحميل نموذج TinyLlama
    4. اليوم 4: تشغيل الاستدلال الأول
    5. اليوم 5: تجربة أوامر مختلفة
    6. اليوم 6: تحويل النموذج إلى ONNX (اختياري)
    7. اليوم 7: مقارنة الأداء مع llama.cpp
    FACT

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

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

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

    2. يتطلب Ubuntu 22.04 أو أحدث

    3. يتطلب CUDA 11.8 أو أحدث

    4. يتطلب VRAM 4GB على الأقل

    5. يدعم نماذج Hugging Face

    6. سرعة استدلال ~30 tokens/sec على TinyLlama

    7. المشروع جديد وقد يواجه تحديات

    8. يمكن تحويل النموذج إلى ONNX

    9. مقارنة مع llama.cpp: أسرع لكن أصعب في التركيب

    FAQ

    أسئلة شائعة

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

    ما هو Tiny-vLLM؟

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

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

    Ubuntu 22.04، بطاقة NVIDIA مع CUDA 11.8، VRAM 4GB، C++17، CMake 3.20+، libcurl.

    كيف أحمل نموذج TinyLlama؟

    استخدم Python مع transformers: pip install transformers torch ثم شغل الأمر المذكور في الدليل.

    ماذا أفعل إذا واجهت خطأ CUDA out of memory؟

    قلل حجم النموذج أو استخدم --batch-size 1.

    هل يدعم ONNX؟

    اختياريًا، يمكن تحويل النموذج باستخدام optimum-cli.

    ABC

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

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

    CUDA

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

    LLM

    نموذج لغة كبير، مثل GPT، قادر على فهم وتوليد النص.

    VRAM

    ذاكرة الوصول العشوائي للبطاقة الرسومية.

    ONNX

    تنسيق مفتوح لتمثيل نماذج التعلم الآلي.

    Q+

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

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

    كيفية تثبيت CUDA 11.8 على Ubuntu 22.04مقارنة Tiny-vLLM مع vLLMتشغيل TinyLlama على GPUتحويل نموذج Hugging Face إلى ONNXأخطاء تركيب Tiny-vLLM

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

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

    • تعلم CUDA للمطورين
    • أساسيات C++ للمشاريع مفتوحة المصدر
    • إدارة VRAM في تطبيقات AI
    SAVE

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

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

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

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

    UPD

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

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

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

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

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

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

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

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

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

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

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