Découvrez les bases du service de modèles : déployez des modèles d'IA pour des prédictions en temps réel, une évolutivité et une intégration transparente dans les applications.
Le service de modèle est la phase critique du cycle de vie de l'apprentissage automatique au cours de laquelle un modèle entraîné est hébergé sur un serveur ou un appareil pour traiter les demandes d'inférence en temps réel. serveur ou un appareil pour traiter les demandes d'inférence en temps réel. Une fois qu'un modèle d'apprentissage automatique a été formé et validé, il doit être intégré dans un environnement de production pour apporter une valeur ajoutée. entraîné et validé, il doit être intégré dans un environnement de production pour apporter de la valeur. Le service fait office de entre le fichier de modèle statique et les applications de l'utilisateur final, en écoutant les données entrantes - telles que les images ou le texte - via une API et en renvoyant les données à l'utilisateur final. texte - via une API et renvoie les prédictions du modèle. Ce processus permet aux systèmes logiciels d'exploiter capacités de modélisation prédictive instantanément et instantanément et à grande échelle.
Pour servir efficacement un modèle, il faut une architecture logicielle robuste capable de charger le modèle dans la mémoire, de gérer les ressources matérielles telles que les GPU et d'assurer la gestion des données. ressources matérielles telles que les GPU de traiter efficacement les requêtes. Alors que de simples scripts peuvent effectuer l'inférence, le service de production utilise souvent des frameworks spécialisés tels que des frameworks spécialisés tels que NVIDIA Triton Inference Server ou TorchServe. Ces outils sont optimisés pour gérer un débit élevé et une faible latence d'inférence. latence d'inférence, ce qui garantit que les restent réactives même en cas de fortes charges d'utilisateurs.
Une configuration de service complète implique plusieurs couches distinctes travaillant à l'unisson pour fournir des prédictions de manière fiable.
Pour servir efficacement un modèle, il est souvent utile de l'exporter dans un format standardisé tel que ONNXqui favorise l'interopérabilité entre les différents cadres de formation et les moteurs de service. L'exemple suivant montre comment charger un YOLO11 et d'exécuter l'inférence, en simulant la logique qui existerait à l'intérieur d'un point final de service. qui existerait à l'intérieur d'un point final de service.
from ultralytics import YOLO
# Load the YOLO11 model (this would happen once when the server starts)
model = YOLO("yolo11n.pt")
# Simulate an incoming request with an image source
image_source = "https://ultralytics.com/images/bus.jpg"
# Run inference to generate predictions
results = model.predict(source=image_source)
# Process and return the results (e.g., bounding boxes)
for box in results[0].boxes:
print(f"Class: {box.cls}, Confidence: {box.conf}")
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.
Bien qu'ils soient souvent utilisés de manière interchangeable, il est nécessaire de faire la distinction entre la mise à disposition de modèles et le déploiement de modèles. le déploiement du modèle. Le déploiement fait référence au processus plus large de diffusion d'un modèle dans un environnement de production. processus plus large de diffusion d'un modèle dans un environnement de production, qui comprend des étapes telles que les tests, l'empaquetage et la mise en place de l'infrastructure. l'infrastructure. Le service de modèle est l'aspect spécifique de l'exécution du déploiement - l'action d'exécuter le modèle et de traiter les demandes.
Pour être efficace, le service doit également faire l'objet d'une surveillance continue du modèle afin de detect la dérive des données, lorsque la distribution des données entrantes s'écarte des données d'apprentissage, ce qui peut de formation, ce qui peut nuire à la précision. Les plateformes modernes, telles que la future Ultralytics Platform, visent à unifier ces étapes, en offrant des transitions transparentes entre l'entraînement, le service et la surveillance. de la formation au service et à la surveillance.
Le choix de la stratégie de service dépend fortement du cas d'utilisation. Le service en ligne fournit des réponses immédiates immédiates pour les applications en contact avec l'utilisateur, mais nécessite une faible latence. À l'inverse, le Batch Serving traite de gros volumes de données hors ligne, ce qui convient à des tâches telles que la génération de rapports nocturnes, pour lesquelles un retour d'information immédiat n'est pas essentiel. n'est pas critique. Pour les applications déployées sur du matériel distant, comme les drones ou les téléphones portables, Edge AI transfère le processus de service directement à l'appareil, éliminant ainsi la dépendance à la connectivité du cloud et réduisant les coûts de bande passante.
L'utilisation d'outils tels que Prometheus pour la collecte de métriques et Grafana pour la visualisation aide les équipes d'ingénieurs à track la santé de leur infrastructure de service. l'état de santé de leur infrastructure de service, en s'assurant que les modèles continuent à fournir des capacités de vision par ordinateur fiables longtemps après leur disparition. fiables longtemps après leur lancement initial . leur lancement initial.