دليل البدء السريع لـ 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")لمزيد من المعلومات حول تدريب النماذج المخصصة، راجع دليل التدريب.
التعليقات
اطرح سؤالًا، وشارك نتائجك، أو ساعد شخصًا آخر.