Meet YOLO26: next-gen vision AI.

Link to this sectionدليل البدء السريع لـ Modal مع Ultralytics#

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

Link to this sectionما هو Modal؟#

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

Link to this sectionما ستتعلمه#

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

Link to this sectionالمتطلبات الأساسية#

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

Link to this sectionالتثبيت#

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

pip install modal

بعد ذلك، قم بمصادقة CLI باستخدام حساب Modal الخاص بك:

modal token new
المصادقة

سيؤدي أمر modal token new إلى فتح نافذة متصفح لمصادقة حساب Modal الخاص بك. بعد المصادقة، يمكنك تشغيل أوامر Modal من الجهاز الطرفي (terminal).

Link to this sectionتشغيل استنتاج 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

Link to this sectionاستخدام 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 جيجابايتالتدريب على نطاق واسع
H10080 GBأقصى أداء

Link to this sectionتدريب 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
استمرارية المجلدات (Volumes)

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

تهانينا! لقد قمت بنجاح بإعداد Ultralytics YOLO26 على Modal. لمزيد من التعلم:

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف أختار وحدة GPU المناسبة لحمل عمل YOLO26 الخاص بي؟#

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

Link to this sectionكم تبلغ تكلفة تشغيل YOLO26 على Modal؟#

يستخدم Modal تسعير الدفع لكل ثانية. الأسعار التقريبية: CPU حوالي 0.05 دولار/ساعة، T4 حوالي 0.59 دولار/ساعة، A10G حوالي 1.10 دولار/ساعة، A100 حوالي 2.10 دولار/ساعة. تحقق من أسعار Modal لمعرفة الأسعار الحالية.

Link to this sectionهل يمكنني استخدام نموذج YOLO الخاص بي الذي قمت بتدريبه مسبقاً؟#

نعم، يمكنك تشغيل نموذج YOLO المخصص الخاص بك على Modal عن طريق تحميل ملف الأوزان من مجلد Modal (Volume):

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

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

المساهمون

التعليقات