Découvrez comment le modèle de service comble le fossé entre les modèles entraînés et la production. Explorez les stratégies de déploiement pour Ultralytics sur la Ultralytics .
Le service de modèle est le processus qui consiste à héberger un modèle d'apprentissage automatique entraîné et à mettre ses fonctionnalités à la disposition des applications logicielles via une interface réseau. Il sert de pont entre un fichier de modèle statique enregistré sur un disque et un système en direct qui traite des données réelles. Une fois qu'un modèle a terminé la phase d'apprentissage automatique (ML), il doit être intégré dans un environnement de production où il peut recevoir des entrées (telles que des images, du texte ou des données tabulaires) et renvoyer des prédictions. Pour ce faire, le modèle est généralement intégré dans une interface de programmation d'application (API), ce qui lui permet de communiquer avec des serveurs web, des applications mobiles ou des appareils IoT.
L'objectif principal du service de modèles est de rendre opérationnelles les capacités de modélisation prédictive de manière efficace. Alors que la formation se concentre sur la précision et la minimisation des pertes, le service se concentre sur des mesures de performance telles que la latence (la rapidité avec laquelle une prédiction est renvoyée) et le débit (le nombre de requêtes pouvant être traitées par seconde). Une infrastructure de service robuste garantit que les systèmes de vision par ordinateur (CV) restent fiables sous des charges importantes. Elle implique souvent des technologies telles que la conteneurisation à l'aide d'outils tels que Docker, qui regroupe le modèle avec ses dépendances afin de garantir un comportement cohérent dans différents environnements informatiques.
Model serving alimente des fonctions d'IA omniprésentes dans diverses industries en permettant une prise de décision immédiate basée sur des données. données.
Pour utiliser efficacement un modèle, il est souvent utile de l'exporter vers un format standardisé tel que ONNX, qui favorise l' interopérabilité entre différents frameworks d'entraînement et moteurs de service. L'exemple suivant montre comment charger un modèle et exécuter une inférence, en simulant la logique qui existerait à l'intérieur d'un point de terminaison de service à l'aide de Python.
from ultralytics import YOLO
# Load the YOLO26 model (this typically happens once when the server starts)
model = YOLO("yolo26n.pt")
# Simulate an incoming API request with an image source URL
image_source = "https://ultralytics.com/images/bus.jpg"
# Run inference to generate predictions for the user
results = model.predict(source=image_source)
# Process results (e.g., simulating a JSON response to a client)
print(f"Detected {len(results[0].boxes)} objects in the image.")
Le choix de la stratégie de service dépend fortement du cas d'utilisation spécifique. Le traitement en ligne fournit des réponses immédiates via des protocoles tels que REST ou gRPC, ce qui est essentiel pour les applications Web destinées aux utilisateurs. À l'inverse, le traitement par lots traite de grands volumes de données hors ligne, ce qui convient à des tâches telles que la génération de rapports nocturnes . Pour les applications nécessitant une confidentialité ou une faible latence sans dépendance à Internet, l' IA de pointe transfère le processus de traitement directement vers l'appareil, en utilisant des formats optimisés tels que TensorRT pour maximiser les performances sur du matériel limité. De nombreuses organisations utilisent Ultralytics pour simplifier le déploiement de ces modèles vers divers terminaux, y compris les API cloud et les appareils périphériques.
Bien que très similaire, le « service de modèle » est différent du déploiement de modèle et de l' inférence.