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