انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

نشر نماذج الذكاء الاصطناعي على خادم GPU: دليل NVIDIA CUDA

تثبيت تعريفات NVIDIA، مجموعة أدوات CUDA، nvidia-container-toolkit، خدمة النماذج مع vLLM، مراقبة GPU ونشر نماذج AI مع Docker.

وقت القراءة: 18 دقيقة الذكاء الاصطناعي على خادمك
gpunvidiacudaذكاء اصطناعيvllmdockermodel serving

جدول المحتويات

نشر نماذج الذكاء الاصطناعي على خادم GPU: دليل NVIDIA CUDA

خوادم GPU ضرورية لتشغيل نماذج الذكاء الاصطناعي في بيئات الإنتاج. يغطي هذا الدليل كل شيء من تثبيت تعريفات NVIDIA إلى تكوين CUDA، وتكامل Docker مع GPU، وخدمة النماذج عالية الأداء مع vLLM.

متطلبات خادم GPU

المكونالحد الأدنىالموصى به
GPUNVIDIA T4 (16 جيجابايت)NVIDIA A100 (40/80 جيجابايت)
RAM32 جيجابايت64 جيجابايت+
القرص100 جيجابايت SSD500 جيجابايت NVMe
نظام التشغيلUbuntu 22.04 LTSUbuntu 22.04/24.04 LTS
CUDA12.0+12.4+

تثبيت تعريفات NVIDIA

أولاً، قم بإزالة التعريفات الموجودة وتثبيت الجديدة:

hljs bash
# إزالة تعريفات NVIDIA الموجودة
sudo apt-get purge nvidia-* -y
sudo apt-get autoremove -y

# تحديث النظام
sudo apt-get update && sudo apt-get upgrade -y

# إضافة مستودع تعريفات NVIDIA
sudo apt-get install -y linux-headers-$(uname -r)
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt-get update

# التحقق من التعريف الموصى به
ubuntu-drivers devices

# تثبيت تعريف NVIDIA
sudo apt-get install -y nvidia-driver-550
sudo reboot

التحقق بعد التثبيت:

hljs bash
nvidia-smi

تثبيت CUDA Toolkit

hljs bash
# إضافة مفتاح CUDA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update

# تثبيت CUDA Toolkit
sudo apt-get install -y cuda-toolkit-12-4

# تكوين PATH
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# التحقق
nvcc --version

NVIDIA Container Toolkit

مطلوب nvidia-container-toolkit لاستخدام GPU في حاويات Docker:

hljs bash
# مستودع NVIDIA Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# تكوين Docker runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

# اختبار
sudo docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi

خدمة النماذج مع vLLM

vLLM هو محرك استدلال LLM عالي الإنتاجية. يحسّن استخدام الذاكرة بتقنية PagedAttention.

vLLM مع Docker

hljs bash
docker run -d \
  --name vllm \
  --gpus all \
  -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --env HUGGING_FACE_HUB_TOKEN=$HF_TOKEN \
  vllm/vllm-openai:latest \
  --model meta-llama/Meta-Llama-3.1-8B-Instruct \
  --max-model-len 4096 \
  --gpu-memory-utilization 0.9

Docker Compose مع vLLM

hljs yaml
version: '3.8'
services:
  vllm:
    image: vllm/vllm-openai:latest
    container_name: vllm-server
    ports:
      - "8000:8000"
    volumes:
      - huggingface_cache:/root/.cache/huggingface
    environment:
      - HUGGING_FACE_HUB_TOKEN=${HF_TOKEN}
    command: >
      --model meta-llama/Meta-Llama-3.1-8B-Instruct
      --max-model-len 4096
      --gpu-memory-utilization 0.9
      --tensor-parallel-size 1
      --dtype auto
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

volumes:
  huggingface_cache:

استخدام API الخاص بـ vLLM

vLLM يوفر API متوافق مع OpenAI:

hljs bash
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Meta-Llama-3.1-8B-Instruct",
    "messages": [
      {"role": "system", "content": "أنت مساعد مفيد."},
      {"role": "user", "content": "ما هو Docker؟"}
    ],
    "max_tokens": 512,
    "temperature": 0.7
  }'

استخدام Python مع vLLM

hljs python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"
)

response = client.chat.completions.create(
    model="meta-llama/Meta-Llama-3.1-8B-Instruct",
    messages=[
        {"role": "system", "content": "أنت خبير في Linux."},
        {"role": "user", "content": "كيف يتم تكوين RAID؟"}
    ],
    max_tokens=1024,
    temperature=0.7
)

print(response.choices[0].message.content)

تكوين Multi-GPU

hljs bash
docker run -d \
  --name vllm-multi \
  --gpus all \
  -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:latest \
  --model meta-llama/Meta-Llama-3.1-70B-Instruct \
  --tensor-parallel-size 4 \
  --max-model-len 4096 \
  --gpu-memory-utilization 0.9

مراقبة GPU

hljs bash
# الحالة الحالية
nvidia-smi

# المراقبة المستمرة
watch -n 1 nvidia-smi

# استخدام GPU والذاكرة فقط
nvidia-smi --query-gpu=index,name,utilization.gpu,memory.used,memory.total,temperature.gpu --format=csv -l 1

الأمان والتحسين

hljs bash
# تفعيل وضع الاستمرارية
sudo nvidia-smi -pm 1

# تثبيت سرعة ساعة GPU
sudo nvidia-smi -lgc 1410,1410

# تعيين حد الطاقة
sudo nvidia-smi -pl 300

شغّل نماذج الذكاء الاصطناعي بأداء عالٍ على خوادم REXE GPU مع NVIDIA A100/H100. تواصل معنا للحصول على حلول خوادم GPU احترافية.