دليل البدء السريع لـ 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:
استخدام 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 | الذاكرة | الأنسب لـ |
|---|---|---|
| T4 | 16 GB | الاستدلال، وتدريب النماذج الصغيرة |
| A10G | 24 GB | مهام التدريب متوسطة الحجم |
| A100 | 40 GB | التدريب واسع النطاق |
| H100 | 80 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 بنجاح. لمواصلة التعلّم:
- استكشف وثائق Ultralytics YOLO26 للتعرّف على الميزات المتقدمة
- تعرّف على تدريب النماذج المخصصة باستخدام مجموعات بياناتك الخاصة
- جرّب دليل البدء السريع لـ Docker للنشر في حاويات
- تفضل بزيارة وثائق 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")لمزيد من المعلومات حول تدريب النماذج المخصصة، راجع دليل التدريب.