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

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

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

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

    ستتعلم كيفية تثبيت وتجربة Tiny-vLLM على GPU باستخدام C++ وCUDA، مع خطوات عملية واستكشاف أخطاء.

    الخلاصة: Tiny-vLLM محرك استدلال LLM بلغة C++ وCUDA، غير ناضج، مناسب للخبراء. يتطلب Linux وCUDA 11.7+ وGPU 4GB. README غير مكتمل، لذا هذا الدليل يقدم خطوات تقريبية.
    Tiny-vLLM دليل تركيب646 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Tiny-vLLM: دليل تركيب وتجربة محرك استدلال LLM بلغة C++ وCUDA
    Photo by Athena Sandrini on Pexels
    LIVE PROJECTjmaczan/tiny-vllm★ 0

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

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

    MAP

    خريطة الصفحة

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

    1. إعداد البيئة (Environment Setup)
    2. تثبيت التبعيات (Dependencies Installation)
    3. تشغيل أول استدلال (First Inference Run)
    4. استكشاف الأخطاء وإصلاحها (Troubleshooting)
    5. البدائل (Alternatives)
    6. التقييم النهائي (Verdict)
    7. ما المشكلة التي يحلها هذا الدليل؟
    8. Input → Process → Output
    9. خطوات التطبيق العملية
    10. جدول مقارنة سريع
    11. مثال تطبيقي مختصر
    12. متى لا تستخدم هذا الحل؟
    !

    قبل أن تطبق

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

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

    Q

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

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

    1. هل لديك GPU NVIDIA مع دعم CUDA (حساب 7.0+)؟
    2. هل أنت مستخدم Linux (Ubuntu 20.04+)؟
    3. هل لديك خبرة في CMake وCUDA Toolkit؟
    4. هل تبحث عن أداء عالٍ أم سهولة تثبيت؟
    5. هل أنت مستعد للتجربة والخطأ بسبب عدم اكتمال README؟
    6. هل تحتاج إلى دعم مجتمعي كبير؟
    7. هل تفضل حلًا مستقرًا مثل llama.cpp أو vLLM؟

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

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

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

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

    المؤشرطريقة القياسإشارة جيدة
    وقت التثبيتساعة توقيت من بداية التثبيت حتى أول استدلالأقل من 30 دقيقة
    معدل الرموز في الثانيةاستخدام أداة مثل perf أو تسجيل المخرجاتأكثر من 10 tokens/sec على GPU متوسطة
    نجاح الاستدلالتشغيل الأمر ./tiny_vllm --model_path ./gpt2 --prompt "Hello"ظهور مخرجات نصية بدون أخطاء

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

    إعداد البيئة (Environment Setup)

    قبل البدء، تأكد من إعداد البيئة بشكل صحيح. ستحتاج إلى:

    • نظام تشغيل: Linux (Ubuntu 20.04 أو أحدث)
    • GPU: NVIDIA مع دعم CUDA (حساب 7.0+)
    • ذاكرة GPU: 4GB على الأقل
    • RAM: 8GB
    • أدوات: CMake (3.18+), CUDA Toolkit (11.7+), GCC (9+)

    تأكد من تعيين متغيرات البيئة: CUDA_HOME يجب أن يشير إلى مسار تثبيت CUDA، وPATH يجب أن يتضمن $CUDA_HOME/bin. يمكنك التحقق باستخدام الأوامر: echo $CUDA_HOME و nvcc --version.

    تثبيت التبعيات (Dependencies Installation)

    إعلان

    قم بتثبيت التبعيات اللازمة:

    sudo apt update
    sudo apt install cmake build-essential libboost-dev

    تأكد من تثبيت CUDA Toolkit من موقع NVIDIA. بعد التثبيت، تحقق من الإصدار: nvcc --version.

    تشغيل أول استدلال (First Inference Run)

    اتبع هذه الخطوات لتشغيل أول استدلال:

    1. استنساخ المستودع: git clone https://github.com/jmaczan/tiny-vllm.git && cd tiny-vllm
    2. بناء المشروع: mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_CUDA=ON && make -j$(nproc)
    3. تحميل نموذج صغير مثل TinyLlama (إذا كان مدعوماً) أو GPT-2: Python -c "from transformers import GPT2Model; model = GPT2Model.from_pretrained('gpt2'); model.save_pretrained('./gpt2')"
    4. تشغيل الاستدلال: ابحث عن الملف التنفيذي (قد يكون tiny_vllm أو run) وشغّل: ./tiny_vllm --model_path ./gpt2 --prompt "Hello". إذا نجح، سترى مخرجات النموذج.

    ملاحظة: الأوامر أعلاه تقريبية بناءً على تحليل الكود؛ قد تحتاج إلى تعديلها حسب هيكل المشروع الفعلي.

    استكشاف الأخطاء وإصلاحها (Troubleshooting)

    فيما يلي الأخطاء الشائعة وحلولها:

    الخطأالسببالحل
    CUDA not foundلم يتم تثبيت CUDA Toolkit أو لم يتم تعيين CUDA_HOMEتأكد من تثبيت CUDA 11.7+ وتعيين CUDA_HOME في .bashrc
    CMake error: missing dependenciesنقص في المكتبات مثل Boostثبّت libboost-dev وأعد تشغيل cmake
    Out of memoryالنموذج كبير جداً لذاكرة GPUاستخدم نموذجاً أصغر مثل GPT-2 أو قلل حجم الدفعة
    CUDA architecture mismatchلم يتم تعيين CUDA_ARCH بشكل صحيحأضف -DCUDA_ARCH=sm_75 (أو حسب GPU الخاص بك) إلى أمر cmake

    البدائل (Alternatives)

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

    الميزةTiny-vLLMllama.cppvLLM
    اللغةC++C++Python
    تسريع GPUCUDACUDA, MetalCUDA
    سهولة التثبيتصعبةمتوسطةسهلة
    الدعم المجتمعيمحدودكبيركبير
    الأداء (tokens/sec)غير موثق~20-50 على GPU متوسطة~50-100 على GPU متوسطة

    إذا كنت تبحث عن حل مستقر، فاختر llama.cpp أو vLLM.

    التقييم النهائي (Verdict)

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

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

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

    Input → Process → Output

    • Input: نموذج لغة كبير (مثل GPT-2) بصيغة Hugging Face
    • Process: محرك استدلال مكتوب بلغة C++ مع تسريع CUDA لمعالجة الاستعلامات
    • Output: نص مولد أو تمثيلات (embeddings) بناءً على النموذج

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

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

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

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

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

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

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

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

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

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

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

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

    DO

    Playbook التطبيق

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

    خطوة 1

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

    لماذا؟ لضمان بيئة بناء صحيحة

    كيف؟ sudo apt update && sudo apt install cmake build-essential libboost-dev; تحقق من CUDA Toolkit

    الناتج: بيئة جاهزة مع CMake 3.18+ وCUDA 11.7+

    خطوة 2

    استنساخ وبناء المشروع

    لماذا؟ لإنشاء الملف التنفيذي

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

    الناتج: ملف تنفيذي (tiny_vllm أو run)

    خطوة 3

    تحميل نموذج صغير

    لماذا؟ لاختبار الاستدلال بنموذج خفيف

    كيف؟ python -c "from transformers import GPT2Model; model = GPT2Model.from_pretrained('gpt2'); model.save_pretrained('./gpt2')"

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

    خطوة 4

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

    لماذا؟ للتحقق من عمل المحرك

    كيف؟ ./tiny_vllm --model_path ./gpt2 --prompt "Hello"

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

    TMP

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

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

    أمر بناء مخصص
    cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_CUDA=ON -DCUDA_ARCH=sm_75 && make -j$(nproc)
    تحميل نموذج باستخدام Hugging Face
    python -c "from transformers import AutoModel; model = AutoModel.from_pretrained('TinyLlama/TinyLlama-1.1B-Chat-v1.0'); model.save_pretrained('./tinyllama')"
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    CUDA not foundلم يتم تثبيت CUDA أو تعيين CUDA_HOMEتثبيت CUDA Toolkit 11.7+ وإضافة export CUDA_HOME=/usr/local/cuda إلى .bashrc
    CMake error: missing dependenciesنقص Boost أو مكتبات أخرىsudo apt install libboost-dev && إعادة تشغيل cmake
    Out of memoryنموذج كبير جدًا لذاكرة GPUاستخدام نموذج أصغر مثل GPT-2 أو تقليل حجم الدفعة
    CUDA architecture mismatchلم يتم تعيين CUDA_ARCH بشكل صحيحإضافة -DCUDA_ARCH=sm_75 (أو حسب GPU) إلى cmake
    IF

    شجرة القرار

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

    إذا: إذا كنت مبتدئًا أو تبحث عن حل مستقر

    إذن: استخدم llama.cpp أو vLLM

    إذا: إذا كنت خبيرًا وتحب التحدي

    إذن: جرب Tiny-vLLM مع هذا الدليل

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

    إذن: تحقق من تثبيت CUDA وتعيين CUDA_HOME

    7D

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

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

    1. اليوم 1: تثبيت التبعيات والتحقق من CUDA
    2. اليوم 2: استنساخ وبناء المشروع
    3. اليوم 3: تحميل نموذج GPT-2
    4. اليوم 4: تشغيل أول استدلال
    5. اليوم 5: تجربة نماذج أخرى (TinyLlama)
    6. اليوم 6: قياس الأداء
    7. اليوم 7: توثيق النتائج ومشاركتها
    FACT

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

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

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

    2. يتطلب GPU مع حساب 7.0+ (مثل RTX 20xx).

    3. README غير مكتمل، لذا هذا الدليل مبني على تحليل الكود.

    4. البديل المستقر: llama.cpp (C++) أو vLLM (Python).

    5. أداء Tiny-vLLM غير موثق رسميًا.

    6. المشروع مناسب للخبراء فقط.

    7. يمكن استخدامه مع نماذج Hugging Face بعد التحويل.

    8. يتطلب Linux (Ubuntu 20.04+) وذاكرة GPU 4GB على الأقل.

    9. أوامر البناء تقريبية وقد تحتاج تعديل.

    FAQ

    أسئلة شائعة

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

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

    ليس مباشرة، يجب تحويل النموذج إلى تنسيق متوافق (عادةً Safetensors أو bin). استخدم أمثلة التحويل في المستودع.

    ما هو الحد الأدنى لمساحة GPU؟

    4GB على الأقل لنماذج صغيرة مثل GPT-2. للنماذج الأكبر، تحتاج 8GB+.

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

    غير مدعوم رسميًا. استخدم WSL2 مع Ubuntu.

    كيف أحدد CUDA_ARCH المناسب؟

    استخدم nvidia-smi لمعرفة GPU، ثم ابحث عن Compute Capability (مثال: RTX 3060 = sm_86).

    ABC

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

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

    CUDA

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

    CMake

    أداة بناء متعددة المنصات لإدارة عملية الترجمة.

    LLM

    نموذج لغة كبير، مثل GPT-2 أو TinyLlama.

    استدلال (Inference)

    عملية تشغيل النموذج لإنتاج مخرجات من مدخلات.

    Q+

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

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

    كيفية تثبيت Tiny-vLLM على Ubuntuمقارنة Tiny-vLLM مع llama.cppأفضل محرك استدلال LLM مفتوح المصدرتشغيل GPT-2 على GPU باستخدام C++حل مشكلة CUDA not found في Tiny-vLLM

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

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

    • تحسين أداء التطبيقات باستخدام GPU
    • مقدمة في نماذج اللغة الكبيرة
    SAVE

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

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

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

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

    UPD

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

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

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

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

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

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

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

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

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

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

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