دليل البدء السريع لـ Modal مع Ultralytics#
يقدم هذا الدليل مقدمة شاملة حول تشغيل Ultralytics YOLO26 على Modal، مغطيًا الاستدلال بوحدات معالجة الرسومات (GPU) بدون سريرية وتدريب النماذج.
ما هو Modal؟#
Modal هي منصة حوسبة سحابية بدون سريرية لأحمال عمل الذكاء الاصطناعي والتعلم الآلي. تتعامل مع التوفير، القياس، والتنفيذ تلقائيًا — حيث تكتب كود Python محليًا وتقوم Modal بتشغيله في السحابة مع إمكانية الوصول إلى وحدات معالجة الرسومات (GPU). هذا يجعلها مثالية لتشغيل نماذج التعلم العميق مثل YOLO26 دون إدارة البنية التحتية.
ما ستتعلمه#
- إعداد Modal والمصادقة
- تشغيل استنتاج YOLO26 على Modal
- استخدام وحدات GPU لتسريع الاستنتاج
- تدريب نماذج YOLO26 على Modal
المتطلبات الأساسية#
- حساب Modal (سجل مجانًا على modal.com)
- تثبيت إصدار Python 3.9 أو أحدث على جهازك المحلي
التثبيت#
تثبيت حزمة Python الخاصة بـ Modal:
pip install modalبعد ذلك، قم بمصادقة CLI باستخدام حساب Modal الخاص بك:
modal token newسيفتح أمر modal token new نافذة متصفح مصادقة حساب Modal الخاص بك. بعد المصادقة، يمكنك تشغيل أوامر Modal من الطرفية (terminal).
تشغيل استنتاج 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) وVolumes الخاصة بـ 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. لمزيد من التعلم:
- استكشف توثيق Ultralytics YOLO26 للتعرف على الميزات المتقدمة
- تعرف على تدريب النماذج المخصصة باستخدام مجموعات البيانات الخاصة بك
- جرب بدء التشغيل السريع لـ Docker للنشر القائم على الحاويات
- تفضل بزيارة توثيق Modal للاطلاع على ميزات المنصة المتقدمة
الأسئلة الشائعة#
بالنسبة للاستنتاج، عادة ما تكون وحدة NVIDIA T4 (16 جيجابايت) كافية وفعالة من حيث التكلفة. للتدريب أو النماذج الأكبر مثل YOLO26x، فكر في استخدام وحدات GPU من نوع A10G أو A100.
تستخدم Modal التسعير حسب الثانية. المعدلات التقريبية: CPU ~$0.05/ساعة، T4 ~$0.59/ساعة، A10G ~$1.10/ساعة، A100 ~$2.10/ساعة. تحقق من أسعار Modal لمعرفة الأسعار الحالية.
نعم، يمكنك تشغيل نموذج YOLO المخصص الخاص بك على Modal عن طريق تحميل ملف الأوزان من مجلد Modal (Volume):
model = YOLO("/data/my_custom_model.pt")لمزيد من المعلومات حول تدريب النماذج المخصصة، راجع دليل التدريب.