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

Tiny-vLLM: دليل عملي لتشغيل محرك استدلال LLM محلياً

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

    Tiny-vLLM: دليل عملي لتشغيل محرك استدلال LLM محلياً

    ستتعلم كيفية تثبيت وتشغيل Tiny-vLLM على GPU رغم نقص التوثيق، مع حلول للأخطاء الشائعة.

    الخلاصة: دليل عملي لتثبيت Tiny-vLLM على Linux مع CUDA، يشمل المتطلبات، خطوات البناء، تحويل النموذج، وحلول الأخطاء مثل out of memory وCUDA not found.
    Tiny-vLLM دليل تركيب660 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Tiny-vLLM: دليل عملي لتشغيل محرك استدلال LLM محلياً
    Photo by David Yu 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. الأخطاء الشائعة وحلولها
    5. مقارنة مع البدائل
    6. الأسئلة الشائعة
    7. ما المشكلة التي يحلها هذا الدليل؟
    8. Input → Process → Output
    9. خطوات التطبيق العملية
    10. جدول مقارنة سريع
    11. مثال تطبيقي مختصر
    12. متى لا تستخدم هذا الحل؟
    !

    قبل أن تطبق

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

    هل تبحث عن محرك استدلال LLM سريع وخفيف يعمل على GPU؟ Tiny-vLLM وعد بذلك، لكن README لا يكفي. هنا خطوات عملية مبنية على تحليل الكود.

    Q

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

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

    1. هل لديك GPU NVIDIA مع CUDA Compute Capability 7.0+؟
    2. هل نظام التشغيل Linux (Ubuntu 20.04+) أو WSL2؟
    3. هل VRAM كافية لنموذج 7B FP16 (~14GB)؟
    4. هل مثبت CUDA Toolkit 11.8/12.x وCMake 3.18+؟
    5. هل تريد تشغيل نموذج Hugging Face محدد؟
    6. هل تفضل أداء عالي على حساب سهولة التركيب؟
    7. هل أنت مستعد لتحويل أوزان النموذج يدوياً؟

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

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

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

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

    المؤشرطريقة القياسإشارة جيدة
    وقت الاستدلال لكل طلبtime ./tiny_vllm --model ... --prompt "test"أقل من 5 ثوانٍ لنموذج 7B
    استهلاك VRAMnvidia-smi أثناء التشغيلأقل من 80% من VRAM المتاحة
    نجاح التثبيتتشغيل الأمر بدون أخطاءظهور مخرجات نصية

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

    ما هو Tiny-vLLM؟

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

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

    إعلان
    المكونالمواصفات المطلوبة
    نظام التشغيلLinux (Ubuntu 20.04 أو أحدث) أو WSL2 على Windows
    GPUNVIDIA مع CUDA Compute Capability 7.0+ (مثل RTX 30xx، A100)
    CUDA Toolkitالإصدار 11.8 أو 12.x
    مكتباتC++17 compiler (g++ 9+)، CMake 3.18+، cuBLAS، cuDNN
    Pythonاختياري للواجهة النصية
    VRAMنموذج 7B FP16 يحتاج ~14GB VRAM

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

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

    1. تثبيت المتطلبات: تأكد من تثبيت CUDA Toolkit وCMake. على Ubuntu:
      sudo apt update && sudo apt install build-essential cmake libcublas-dev libcudnn-dev
    2. استنساخ المستودع:
      git clone https://github.com/jmaczan/tiny-vllm.git && cd tiny-vllm
    3. بناء المشروع:
      mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make -j$(nproc)
    4. تحميل وتحويل النموذج: استخدم نموذجاً صغيراً مثل GPT-2 من Hugging Face. قم بتحويل الأوزان إلى تنسيق FP16 باستخدام أداة مثل convert.py من Hugging Face أو transformers.
      Python convert.py --model gpt2 --output ./gpt2-fp16 --dtype fp16
    5. تشغيل المحرك:
      ./tiny_vllm --model ./gpt2-fp16 --prompt "السلام عليكم"
      ملاحظة: الأمر تقريبي وقد يختلف حسب الإصدار.

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

    الخطأالسببالحل
    CUDA error: out of memoryالنموذج كبير جداً للذاكرة المتاحةاستخدم نموذجاً أصغر أو قلل batch size
    CMake Error: CUDA not foundCUDA Toolkit غير مثبت أو غير مضبوطتأكد من تثبيت CUDA وأضف المسار إلى PATH:
    export PATH=/usr/local/cuda/bin:$PATH
    nvcc not foundCUDA غير مضبوط في PATHأضف السطر أعلاه إلى ~/.bashrc
    Segmentation faultخطأ في تحميل النموذج أو عدم توافق التنسيقتحقق من تنسيق الأوزان (FP16) وحاول نموذجاً آخر

    مقارنة مع البدائل

    الأداةاللغةالأداء على GPU واحدسهولة التركيب
    Tiny-vLLMC++/CUDAعاليمتوسط
    vLLMPython/CUDAعالي جداًسهل
    llama.cppC++متوسطسهل

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

    هل Tiny-vLLM يدعم جميع نماذج Hugging Face؟

    لا، يدعم نماذج محددة بتنسيق معين. قد تحتاج لتحويل الأوزان.

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

    Tiny-vLLM أخف وزناً وأبسط، لكن vLLM أكثر نضجاً ويدعم ميزات مثل PagedAttention.

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

    لا، يعتمد على CUDA. يمكنك تجربة llama.cpp إذا كنت تريد CPU.

    ما المشكلة التي يحلها هذا الدليل؟

    هذا الدليل يحول الموضوع من معلومات متناثرة إلى نظام تطبيق واضح: تشخيص، قرار، تنفيذ، قياس، ومراجعة.

    Input → Process → Output

    • Input: نموذج LLM بتنسيق Hugging Face (مثل GPT-2، LLaMA) يتم تحميله إلى الذاكرة.
    • Process: محرك Tiny-vLLM يستقبل طلبات استدلال عبر واجهة C++ أو Python، ويستخدم CUDA لتسريع العمليات على GPU.
    • Output: مخرجات النموذج (نص مولد) يتم إرجاعها إلى المستخدم.

    خطوات التطبيق العملية

    1. حدد المشكلة بجملة واحدة.
    2. اختر النتيجة التي تريدها.
    3. نفذ خطوة صغيرة.
    4. قِس النتيجة.
    5. وثق الطريقة التي نجحت.

    جدول مقارنة سريع

    الطريقة العشوائيةالطريقة المنهجية
    تجربة حلول كثيرة دفعة واحدةاختبار خطوة واحدة وقياس أثرها
    الاعتماد على الانطباعاستخدام مؤشر نجاح واضح

    مثال تطبيقي مختصر

    اختر حالة واحدة من حياتك أو عملك، وطبّق عليها خطوة واحدة من الدليل. لا توسع التطبيق قبل أن ترى نتيجة قابلة للقياس.

    متى لا تستخدم هذا الحل؟

    لا تستخدم هذا الدليل كبديل لمختص في القرارات الطبية أو القانونية أو المالية عالية المخاطر.

    كيف تقيس النجاح؟

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

    كيف تحافظ على النتيجة؟

    وثق ما نجح، راجع المؤشر كل أسبوع، وعدّل خطوة واحدة فقط في كل مرة.

    DO

    Playbook التطبيق

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

    خطوة 1

    تثبيت المتطلبات

    لماذا؟ Tiny-vLLM يعتمد على CUDA وCMake ومكتبات cuBLAS/cuDNN

    كيف؟ sudo apt update && sudo apt install build-essential cmake libcublas-dev libcudnn-dev

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

    خطوة 2

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

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

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

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

    خطوة 3

    بناء المشروع

    لماذا؟ تجميع المحرك من المصدر

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

    الناتج: ملف تنفيذي tiny_vllm

    خطوة 4

    تحميل وتحويل النموذج

    لماذا؟ Tiny-vLLM يحتاج أوزان بتنسيق FP16

    كيف؟ python convert.py --model gpt2 --output ./gpt2-fp16 --dtype fp16 (أو استخدم transformers)

    الناتج: مجلد بأوزان FP16

    خطوة 5

    تشغيل المحرك

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

    كيف؟ ./tiny_vllm --model ./gpt2-fp16 --prompt "السلام عليكم"

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

    TMP

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

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

    أمر تشغيل أساسي
    ./tiny_vllm --model <path-to-model> --prompt "<your-prompt>"
    تحويل نموذج باستخدام transformers
    from transformers import AutoModelForCausalLM, AutoTokenizer
    model = AutoModelForCausalLM.from_pretrained("gpt2", torch_dtype=torch.float16)
    model.save_pretrained("./gpt2-fp16")
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    CUDA error: out of memoryالنموذج كبير جداً للذاكرة المتاحةاستخدم نموذجاً أصغر (مثل GPT-2) أو قلل batch size
    CMake Error: CUDA not foundCUDA Toolkit غير مثبت أو غير مضبوط في PATHexport PATH=/usr/local/cuda/bin:$PATH وأعد تشغيل cmake
    nvcc not foundCUDA غير مضبوط في PATHأضف export PATH=/usr/local/cuda/bin:$PATH إلى ~/.bashrc
    Segmentation faultخطأ في تحميل النموذج أو عدم توافق التنسيقتحقق من تنسيق الأوزان (FP16) وجرب نموذجاً آخر
    IF

    شجرة القرار

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

    إذا: إذا كان لديك GPU NVIDIA مع CUDA 7.0+

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

    إذا: إذا كان لديك GPU NVIDIA لكن VRAM أقل من 14GB

    إذن: استخدم نموذجاً أصغر مثل GPT-2 (1.5GB)

    إذا: إذا كنت تريد سهولة التركيب

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

    إذا: إذا كنت تريد تشغيل على CPU

    إذن: استخدم llama.cpp (Tiny-vLLM لا يدعم CPU)

    7D

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

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

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

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

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

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

    2. يتطلب GPU مع CUDA Compute Capability 7.0+.

    3. نموذج 7B FP16 يحتاج ~14GB VRAM.

    4. ال README الحالي لا يحتوي تعليمات تركيب واضحة.

    5. يدعم نماذج محددة بتنسيق FP16 فقط.

    6. أخف وزناً من vLLM لكن أقل نضجاً.

    7. لا يدعم التشغيل على CPU.

    8. يمكن تحويل نماذج Hugging Face باستخدام transformers.

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

    FAQ

    أسئلة شائعة

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

    هل Tiny-vLLM يدعم جميع نماذج Hugging Face؟

    لا، يدعم نماذج محددة بتنسيق FP16. قد تحتاج لتحويل الأوزان.

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

    Tiny-vLLM أخف وزناً وأبسط، لكن vLLM أكثر نضجاً ويدعم PagedAttention.

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

    لا، يعتمد على CUDA. استخدم llama.cpp لتشغيل CPU.

    ما المشكلة التي يحلها هذا الدليل؟

    يحول المعلومات المتناثرة في README إلى خطوات عملية قابلة للتطبيق.

    ABC

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

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

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

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

    CUDA

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

    FP16

    نصف الدقة (16-bit floating point) لتقليل استخدام الذاكرة.

    VRAM

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

    Q+

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

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

    كيفية تثبيت Tiny-vLLM على UbuntuTiny-vLLM vs vLLM مقارنةتشغيل LLM محلياً على GPUتحويل نموذج Hugging Face إلى FP16حل مشكلة CUDA out of memory في Tiny-vLLM

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

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

    • يمكن استخدام Tiny-vLLM مع LangChain لبناء تطبيقات LLM
    • مشابه لـ TensorRT-LLM من NVIDIA لكنه أخف
    SAVE

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

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

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

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

    UPD

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

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

    • تحديث إصدارات CUDA Toolkit وCMake المطلوبة كل 6 أشهر.
    • مراجعة مستودع GitHub للتغييرات في README أو هيكل المشروع.
    • إضافة نماذج جديدة مدعومة عند إصدار تحديثات.

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

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

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

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

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

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

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

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