Guide de démarrage rapide de Modal pour Ultralytics
Ce guide offre une introduction complète à l'utilisation Ultralytics sur Modal, couvrant GPU sans serveur et l'entraînement des modèles.
Qu'est-ce que Modal ?
Modal est une plateforme de cloud computing sans serveur destinée aux charges de travail liées à l'IA et à l'apprentissage automatique. Elle gère automatiquement l'approvisionnement, la mise à l'échelle et l'exécution : vous écrivez Python localement et Modal l'exécute dans le cloud avec GPU . Cela en fait la solution idéale pour exécuter des modèles d'apprentissage profond tels que YOLO26 sans avoir à gérer d'infrastructure.
Ce que vous allez apprendre
- Configuration de Modal et authentification
- Exécution de l'inférence YOLO26 sur Modal
- Utilisation des GPU pour accélérer l'inférence
- Entraînement des modèles YOLO26 sur Modal
Prérequis
- Un compte Modal (inscrivez-vous gratuitement sur modal.com)
- Python .9 ou une version ultérieure installée sur votre ordinateur
Installation
Installez le Python Modal et authentifiez-vous :
pip install modal
modal token new
Authentification
L'argument modal token new Cette commande ouvrira une fenêtre de navigateur pour vous connecter à votre compte Modal. Une fois connecté, vous pourrez exécuter des commandes Modal depuis le terminal.
Exécution de l'inférence YOLO26
Créez un nouveau Python nommé modal_yolo.py avec le code suivant :
"""
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")
Lancez l'inférence :
modal run modal_yolo.py
Résultat attendu :
✓ 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.
Vous pouvez suivre l'exécution de vos fonctions dans le tableau de bord Modal :

Utilisation GPU accélérer l'inférence
Ajoutez un GPU votre fonction en spécifiant le gpu paramètre :
@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 | Mémoire | Idéal pour |
|---|---|---|
| T4 | 16 Go | Inférence, apprentissage de petits modèles |
| A10G | 24 Go | Formations de niveau intermédiaire |
| A100 | 40 Go | Formation à grande échelle |
| H100 | 80 Go | Performances maximales |
Entraînement de YOLO26 sur Modal
Pour l'entraînement, utilisez un GPU Modal Volumes pour le stockage persistant. Créez un nouveau Python nommé 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()
Entraînement à la course à pied :
modal run train_yolo.py
Persistance du volume
Les volumes modaux conservent les données d'une exécution de fonction à l'autre. Les poids entraînés sont enregistrés dans /data/runs/detect/train/weights/.
Félicitations ! Vous avez réussi à configurer Ultralytics sur Modal. Pour en savoir plus :
- Consultez la documentationUltralytics pour découvrir ses fonctionnalités avancées
- Découvrez comment entraîner des modèles personnalisés à partir de vos propres ensembles de données
- Consultez la documentation de Modal pour découvrir les fonctionnalités avancées de la plateforme
FAQ
Comment choisir le GPU adapté GPU ma charge de travail YOLO26 ?
Pour l'inférence, une carte NVIDIA (16 Go) est généralement suffisante et offre un bon rapport qualité-prix. Pour l'entraînement ou les modèles plus volumineux comme YOLO26x, envisagez les cartes graphiques A10G ou A100.
Combien coûte l'exécution de YOLO26 sur Modal ?
Modal propose une tarification à la seconde. Tarifs approximatifs : CPU 0,05 $/h, T4 ~0,59 $/h, A10G ~1,10 $/h, A100 ~2,10 $/h. Consultez la grille tarifaire de Modal pour connaître les tarifs en vigueur.
Puis-je utiliser mon propre YOLO personnalisé ?
Oui ! Charger des modèles personnalisés à partir d'un volume modal :
model = YOLO("/data/my_custom_model.pt")
Pour plus d'informations sur l'entraînement de modèles personnalisés, consultez le guide de formation.