Ultralytics YOLO27: انضم إلى قائمة الانتظار.
Get Started

دليل البدء السريع لـ Modal من Ultralytics#

يقدم هذا الدليل مقدمة شاملة لتشغيل Ultralytics YOLO26 على Modal، ويتناول استدلال GPU دون خادم وتدريب النماذج.

ما هي Modal؟#

Modal منصة حوسبة سحابية دون خادم لأعباء عمل الذكاء الاصطناعي وتعلّم الآلة. تتولى تلقائيًا توفير الموارد وتوسيع النطاق والتنفيذ؛ فما عليك سوى كتابة شيفرة Python محليًا، بينما تشغّلها Modal في السحابة مع إمكانية الوصول إلى GPU. وهذا يجعلها مثالية لتشغيل نماذج التعلّم العميق مثل YOLO26 دون إدارة البنية التحتية.

ما ستتعلمه#

  • إعداد Modal والمصادقة
  • تشغيل استدلال YOLO26 على Modal
  • استخدام وحدات GPU لتسريع الاستدلال
  • تدريب نماذج YOLO26 على Modal

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

  • حساب على Modal (سجّل مجانًا على modal.com)
  • تثبيت Python 3.9 أو إصدار أحدث على جهازك المحلي

التثبيت#

ثبّت حزمة Modal الخاصة بـ Python:

pip install modal

ثم صادِق على CLI باستخدام حسابك على Modal:

modal token new
المصادقة

سيفتح الأمر modal token new نافذة متصفح لمصادقة حسابك على Modal. بعد المصادقة، يمكنك تشغيل أوامر Modal من الطرفية.

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

أنشئ ملف Python جديدًا باسم modal_yolo.py لتشغيل الاستدلال باستخدام الشيفرة التالية:

"""
Modal + Ultralytics YOLO26 Quickstart
Run: modal run modal_yolo.py.
"""

import modal

app = modal.App("ultralytics-yolo")

image = modal.Image.debian_slim(python_version="3.11").apt_install("libgl1", "libglib2.0-0").pip_install("ultralytics")

@app.function(image=image)
def predict(image_url: str):
    """Run YOLO26 inference on an image URL."""
    from ultralytics import YOLO

    model = YOLO("yolo26n.pt")
    results = model(image_url)

    for r in results:
        print(f"Detected {len(r.boxes)} objects:")
        for box in r.boxes:
            print(f"  - {model.names[int(box.cls)]}: {float(box.conf):.2f}")

@app.local_entrypoint()
def main():
    """Test inference with sample image."""
    predict.remote("https://ultralytics.com/images/bus.jpg")

شغّل الاستدلال:

modal run modal_yolo.py

المخرجات المتوقعة:

✓ Initialized. View run at https://modal.com/apps/your-username/main/ap-xxxxxxxx
✓ Created objects.
├── 🔨 Created mount modal_yolo.py
└── 🔨 Created function predict.
Downloading https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n.pt to 'yolo26n.pt'...
Downloading https://ultralytics.com/images/bus.jpg to 'bus.jpg'...
image 1/1 /root/bus.jpg: 640x480 4 persons, 1 bus, 377.8ms
Speed: 5.8ms preprocess, 377.8ms inference, 0.3ms postprocess per image at shape (1, 3, 640, 480)

Detected 5 objects:
  - bus: 0.92
  - person: 0.91
  - person: 0.91
  - person: 0.87
  - person: 0.53
✓ App completed.

يمكنك مراقبة تنفيذ الدالة في لوحة معلومات Modal:

Modal Dashboard Function Calls

استخدام GPU لتسريع الاستدلال#

أضف GPU إلى دالتك بتحديد المعلمة gpu:

@app.function(image=image, gpu="T4")  # Options: "T4", "A10G", "A100", "H100"
def predict_gpu(image_url: str):
    """Run YOLO26 inference on GPU."""
    from ultralytics import YOLO

    model = YOLO("yolo26n.pt")
    results = model(image_url)
    print(results[0].boxes)
GPUالذاكرةالأنسب لـ
T416 GBالاستدلال، وتدريب النماذج الصغيرة
A10G24 GBمهام التدريب متوسطة الحجم
A10040 GBالتدريب واسع النطاق
H10080 GBأعلى أداء

تدريب YOLO26 على Modal#

للتدريب، استخدم GPU ووحدات التخزين من Modal للتخزين الدائم. أنشئ ملف Python جديدًا باسم train_yolo.py:

import modal

app = modal.App("ultralytics-training")

volume = modal.Volume.from_name("yolo-training-vol", create_if_missing=True)

image = modal.Image.debian_slim(python_version="3.11").apt_install("libgl1", "libglib2.0-0").pip_install("ultralytics")

@app.function(image=image, gpu="T4", timeout=3600, volumes={"/data": volume})
def train():
    """Train YOLO26 model on Modal."""
    from ultralytics import YOLO

    model = YOLO("yolo26n.pt")
    model.train(data="coco8.yaml", epochs=3, imgsz=640, project="/data/runs")

@app.local_entrypoint()
def main():
    train.remote()

شغّل التدريب:

modal run train_yolo.py
استمرارية وحدة التخزين

تحتفظ وحدات التخزين من Modal بالبيانات بين عمليات تشغيل الدوال. وتُحفظ الأوزان المدرّبة في /data/runs/train/weights/.

تهانينا! لقد أعددت Ultralytics YOLO26 على Modal بنجاح. لمواصلة التعلّم:

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

  • للاستدلال، عادةً ما تكفي وحدة NVIDIA T4 (16 GB) وتكون فعّالة من حيث التكلفة. أما للتدريب أو النماذج الأكبر مثل YOLO26x، ففكّر في وحدات GPU من طراز A10G أو A100.

  • تعتمد Modal تسعيرًا بالدفع لكل ثانية. الأسعار التقريبية: CPU ~$0.05/hr، وT4 ~$0.59/hr، وA10G ~$1.10/hr، وA100 ~$2.10/hr. راجع أسعار Modal للاطلاع على الأسعار الحالية.

  • نعم، يمكنك تشغيل نموذج YOLO مخصص درّبته بنفسك على Modal بتحميل ملف الأوزان من وحدة تخزين Modal:

    model = YOLO("/data/my_custom_model.pt")

    لمزيد من المعلومات حول تدريب النماذج المخصصة، راجع دليل التدريب.

التعليقات