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

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

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

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

    ستتمكن من تشغيل Tiny-vLLM محليًا على GPU NVIDIA بخطوات تقريبية مع تحذيرات المخاطر.

    الخلاصة: دليل عملي لتثبيت وتشغيل Tiny-vLLM، محرك استدلال LLM بلغة C++ وCUDA، مع تحليل بنية الكود، مقارنة مع llama.cpp، وأخطاء شائعة. المشروع في مرحلة مبكرة وقد يواجه مشاكل بناء.
    Tiny-vLLM دليل عملي642 كلمة تقريباًزارو — مكتبة الأدلة العملية
    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. دليل التركيب خطوة بخطوة (تقريبي)
    4. تحليل بنية الكود
    5. مقارنة أداء مع llama.cpp
    6. أخطاء شائعة وحلولها
    7. بدائل Tiny-vLLM
    8. ما المشكلة التي يحلها هذا الدليل؟
    9. Input → Process → Output
    10. خطوات التطبيق العملية
    11. جدول مقارنة سريع
    12. مثال تطبيقي مختصر
    !

    قبل أن تطبق

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

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

    Q

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

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

    1. هل لديك بطاقة NVIDIA مع CUDA Compute Capability 7.0+؟
    2. هل نظامك Linux (Ubuntu 20.04+) أو Windows مع WSL2؟
    3. هل قمت بتثبيت CUDA Toolkit 11.8+ وCMake 3.20+؟
    4. هل لديك نموذج بصيغة GGUF (مثل Llama 2)؟
    5. هل ذاكرة GPU لديك 8GB على الأقل لنماذج 7B؟
    6. هل أنت مستعد لمواجهة أخطاء بناء غير موثقة؟

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

    INPUT
    نموذج لغة كبير (مثل Llama 2) بصيغة GGUF أو PyTorch
    PROCESS
    محرك Tiny-vLLM يستخدم C++ وCUDA لتحميل النموذج على GPU وتنفيذ الاستدلال (inference) بأقل زمن استجابة
    OUTPUT
    نص مولد أو تمثيلات (embeddings) حسب المهمة
    Decision Layer
    اختيار النموذج المناسب، ضبط حجم الدفعة (batch size)، طول التوليد
    Memory Layer
    إدارة ذاكرة GPU عبر CUDA، مع إمكانية تفريغ الأوزان للذاكرة الرئيسية إذا لزم الأمر
    Feedback Loop
    قياس زمن الاستجابة وعدد الرموز في الثانية (tokens/sec) لتحسين الإعدادات
    M

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

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

    المؤشرطريقة القياسإشارة جيدة
    زمن الاستدلال لكل رمز (ms/token)استخدم --benchmark أو قس الوقت يدويًا< 50 ms/token لنماذج 7B
    استخدام ذاكرة GPU (GB)nvidia-smiأقل من 80% من الذاكرة المتاحة
    نجاح البناءmake -j$(nproc) بدون أخطاءبناء ناجح

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

    ما هو Tiny-vLLM؟

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

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

    إعلان
    • بطاقة رسوميات NVIDIA مع دعم CUDA (حساب 7.0+ يفضل).
    • نظام تشغيل: Linux (Ubuntu 20.04 أو أحدث) أو Windows مع WSL2.
    • مكتبات: CUDA Toolkit (11.8 أو أحدث)، CMake (3.20+)، GCC (9+).
    • ذاكرة GPU: 8GB على الأقل لنماذج 7B، وأكثر للنماذج الأكبر.

    دليل التركيب خطوة بخطوة (تقريبي)

    تحذير: لم يتم توثيق خطوات التركيب رسمياً. بناءً على تحليل الكود، قد تكون الخطوات التالية صحيحة لكنها غير مضمونة.

    1. تثبيت المتطلبات: تأكد من تثبيت CUDA Toolkit وCMake. على Ubuntu: sudo apt install cmake build-essential ثم تنزيل CUDA من موقع NVIDIA.
    2. استنساخ المستودع: git clone https://github.com/jmaczan/tiny-vllm.git
    3. بناء المشروع: داخل المجلد: mkdir build && cd build && cmake .. && make -j$(nproc)
    4. تحميل نموذج: تحتاج نموذجاً بصيغة GGUF (مثل Llama 2). يمكنك تحميله من Hugging Face.
    5. تشغيل: بعد البناء، سيكون هناك ملف تنفيذي. جرب: ./tiny-vllm --model /path/to/model.gguf --prompt "مرحبا"

    تحليل بنية الكود

    المشروع يحتوي على مجلدات رئيسية: src (الكود المصدري)، include (الملفات الرأسية)، CMakeLists.txt (ملف البناء). الكود يستخدم CUDA kernels للاستدلال، ويعتمد على مكتبات مثل cuda_runtime.h.

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

    حتى تتوفر بيانات أداء رسمية، يمكن القول أن Tiny-vLLM قد يكون أسرع في بعض السيناريوهات بفضل CUDA المباشر، لكن llama.cpp أكثر نضجاً ويدعم CPU وCUDA مع backends متعددة.

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

    الخطأالسببالحل
    fatal error: cuda_runtime.h: No such file or directoryCUDA Toolkit غير مثبت أو غير مضبوط في PATHتثبيت CUDA Toolkit وتأكد من وجوده في PATH: export PATH=/usr/local/cuda/bin:$PATH
    out of memoryالنموذج أكبر من ذاكرة GPUاستخدم نموذجاً أصغر أو قلل حجم الدفعة (batch size)
    symbol not foundإصدار CUDA غير متوافقاستخدم CUDA 11.8 أو الأحدث

    بدائل Tiny-vLLM

    الأداةاللغةدعم CUDAسهولة الاستخدامالأداء
    Tiny-vLLMC++نعممتوسطةعالٍ (متوقع)
    llama.cppC++جزئي (CUDA عبر backends)سهلةجيد
    OllamaGoنعم (عبر backends)سهلة جداًجيد
    vLLMPythonنعممتوسطةعالٍ جداً

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

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

    Input → Process → Output

    • Input: نموذج لغة كبير (مثل Llama 2) بصيغة GGUF أو PyTorch
    • Process: محرك Tiny-vLLM يستخدم C++ وCUDA لتحميل النموذج على GPU وتنفيذ الاستدلال (inference) بأقل زمن استجابة
    • Output: نص مولد أو تمثيلات (embeddings) حسب المهمة

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

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

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

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

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

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

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

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

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

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

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

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

    DO

    Playbook التطبيق

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

    خطوة 1

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

    لماذا؟ CUDA وCMake ضروريان للبناء

    كيف؟ sudo apt install cmake build-essential; تنزيل CUDA من NVIDIA

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

    خطوة 2

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

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

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

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

    خطوة 3

    بناء المشروع

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

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

    الناتج: ملف تنفيذي tiny-vllm

    خطوة 4

    تحميل نموذج

    لماذا؟ النموذج مطلوب للاستدلال

    كيف؟ تحميل ملف GGUF من Hugging Face (مثل Llama 2)

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

    خطوة 5

    تشغيل النموذج

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

    كيف؟ ./tiny-vllm --model /path/to/model.gguf --prompt "مرحبا"

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

    TMP

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

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

    أمر تشغيل أساسي
    ./tiny-vllm --model model.gguf --prompt "اكتب قصة قصيرة"
    إعداد PATH لـ CUDA
    export PATH=/usr/local/cuda/bin:$PATH
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    fatal error: cuda_runtime.h: No such file or directoryCUDA Toolkit غير مثبت أو غير مضبوط في PATHتثبيت CUDA Toolkit وتصدير PATH
    out of memoryالنموذج أكبر من ذاكرة GPUاستخدم نموذجًا أصغر أو قلل batch size
    symbol not foundإصدار CUDA غير متوافقاستخدم CUDA 11.8 أو أحدث
    IF

    شجرة القرار

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

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

    إذن: اتبع دليل التركيب

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

    إذن: تحقق من إصدارات CUDA وCMake

    إذا: إذا كان الأداء غير مرضٍ

    إذن: جرب llama.cpp كبديل

    7D

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

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

    1. اليوم 1: تثبيت المتطلبات (CUDA, CMake)
    2. اليوم 2: استنساخ المستودع وبناء المشروع
    3. اليوم 3: تحميل نموذج GGUF صغير (مثل 7B)
    4. اليوم 4: تشغيل النموذج واختبار استدلال بسيط
    5. اليوم 5: قياس الأداء (ms/token, GPU memory)
    6. اليوم 6: مقارنة مع llama.cpp على نفس النموذج
    7. اليوم 7: توثيق النتائج ومشاركتها
    FACT

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

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

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

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

    3. يدعم نماذج بصيغة GGUF

    4. المشروع في مرحلة مبكرة جدًا (أقل من 100 نجم على GitHub)

    5. قد يكون أسرع من llama.cpp في بعض السيناريوهات

    6. الذاكرة الموصى بها: 8GB GPU لنماذج 7B

    7. نظام التشغيل الموصى: Linux Ubuntu 20.04+

    8. CUDA Toolkit 11.8+ مطلوب

    9. لا يوجد توثيق رسمي للتركيب

    FAQ

    أسئلة شائعة

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

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

    نعم، عبر WSL2 مع تثبيت CUDA داخل WSL.

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

    Tiny-vLLM يستخدم CUDA مباشرة لأداء أعلى محتمل، لكن llama.cpp أكثر نضجًا ويدعم CPU وCUDA عبر backends.

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

    لا، يدعم فقط نماذج بصيغة GGUF حاليًا.

    ABC

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

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

    GGUF

    صيغة ملفات لنماذج LLM محسنة للاستدلال، تستخدمها أدوات مثل llama.cpp.

    CUDA

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

    Inference Engine

    محرك يقوم بتشغيل نموذج مدرب لتوليد تنبؤات (مثل نص).

    Q+

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

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

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

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

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

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

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

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

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

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

    UPD

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

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

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

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

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

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

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

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

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

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

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