Dans le domaine de l'intelligence artificielle et de l'apprentissage automatique, une fois qu'un modèle est entraîné, son voyage est loin d'être terminé. Pour que ces modèles soient utiles dans la pratique, ils doivent être accessibles pour faire des prédictions sur de nouvelles données inédites. C'est là que le model serving entre en jeu. Le service de modèle est le processus de déploiement d'un modèle d'apprentissage automatique formé dans un environnement de production où il peut être consulté par des applications ou des systèmes pour effectuer des inférences. Il comble essentiellement le fossé entre le développement du modèle et l'application dans le monde réel, ce qui permet aux entreprises et aux utilisateurs de tirer parti de la puissance des modèles d'IA.
Importance du service de modèles
Le model serving est crucial car il transforme un modèle statique et entraîné en un service dynamique et opérationnel. Sans model serving, les modèles d'apprentissage automatique resteraient confinés aux environnements de développement, incapables d'apporter de la valeur dans les scénarios du monde réel. Un service de modèle efficace garantit :
- Prédictions en temps réel : Permet aux applications de faire des prédictions immédiates, essentielles pour les tâches sensibles au temps comme la détection des fraudes ou la conduite autonome. L'inférence en temps réel est vitale dans de nombreuses applications modernes de l'IA.
- Évolutivité et fiabilité : Les environnements de production exigent de l'évolutivité pour gérer des charges variables et de la fiabilité pour assurer un fonctionnement continu. L'infrastructure de desserte des modèles est conçue pour répondre à ces exigences, en échelonnant les ressources en fonction des besoins et en maintenant une haute disponibilité.
- Accessibilité et intégration : Fournit un moyen standardisé d'accéder aux modèles via des API, ce qui facilite l'intégration des capacités de l'IA dans diverses applications, des services web aux applications mobiles. Cela facilite l'incorporation de la vision par ordinateur ou du traitement du langage naturel (NLP) dans des systèmes plus larges.
- Gestion des modèles et des versions : Facilite la gestion des différentes versions du modèle, ce qui permet des mises à jour et des retours en arrière transparents. Ceci est crucial pour maintenir la précision du modèle et s'adapter à l'évolution des données. Ultralytics HUB propose des outils pour une gestion efficace des modèles.
Applications dans le monde réel
Le service de modèles alimente une vaste gamme d'applications d'IA dans tous les secteurs d'activité. Voici quelques exemples concrets :
- Recommandations de produits pour le commerce électronique : Les plateformes de commerce électronique utilisent le service de modèle pour fournir des recommandations de produits personnalisées en temps réel. Un modèle de système de recommandation formé est servi par l'intermédiaire d'une API. Lorsqu'un utilisateur navigue sur le site Web, l'application envoie les données de l'utilisateur au point de terminaison de service de modèle, qui renvoie ensuite des recommandations de produits prédites à afficher à l'utilisateur, améliorant ainsi l'expérience client et stimulant les ventes.
- Analyse d'images médicales pour le diagnostic : Dans le domaine de la santé, les modèles d'analyse d'images médicales, tels que ceux utilisés pour la détection des tumeurs, sont utilisés pour aider les radiologues. Lorsqu'une nouvelle image médicale (comme une radiographie ou une IRM) est acquise, elle est envoyée au système qui sert de modèle. Le modèle effectue une inférence et renvoie des informations diagnostiques, comme la mise en évidence d'anomalies potentielles, ce qui permet d'établir des diagnostics plus rapides et plus précis.
Composantes clés du service de modèle
Une architecture de service de modèle typique comprend plusieurs composants clés qui fonctionnent de concert :
- Modèle formé : Le composant central est le modèle d'apprentissage automatique formé lui-même, souvent enregistré dans des formats tels que ONNX ou TensorFlow SavedModel pour un déploiement efficace. Ultralytics YOLO les modèles peuvent être exportés dans différents formats pour une plus grande souplesse de déploiement, y compris TensorRT et OpenVINO.
- Infrastructure de service : Cela comprend l'environnement matériel et logiciel où le modèle s'exécute. Il peut s'agir de plateformes basées sur le cloud comme Amazon SageMaker ou Google Cloud AI Platform, ou de serveurs sur site. Les options d'informatique sans serveur gagnent également en popularité en raison de leur évolutivité et de leur rentabilité.
- Serveur API : Un serveur API (Application Programming Interface) sert d'interface entre les applications et le modèle servi. Il reçoit les demandes de prédiction, les envoie au modèle pour inférence et renvoie les prédictions. Les cadres API courants comprennent REST et gRPC.
- Équilibreur de charge : Pour gérer un trafic important et assurer l'évolutivité, un équilibreur de charge répartit les demandes entrantes sur plusieurs instances de l'infrastructure de desserte, ce qui permet d'éviter les surcharges et de maintenir les performances.
- Surveillance et journalisation : Des systèmes de surveillance et de journalisation robustes sont essentiels pour suivre les performances du modèle, détecter les problèmes et assurer la fiabilité du système de desserte au fil du temps. Cela comprend la surveillance de la latence d'inférence, du débit et des taux d'erreur, et fait partie de la surveillance du modèle.
Déploiement de modèle vs. service de modèle
Bien qu'ils soient souvent utilisés de façon interchangeable, le déploiement de modèles et le service de modèles ont des significations distinctes. Le déploiement de modèles est le processus plus large de mise à disposition d'un modèle pour utilisation, qui peut inclure diverses méthodes au-delà du simple service via une API. Les options de déploiement de modèles peuvent aller de l'intégration de modèles directement dans les applications, au déploiement sur des appareils périphériques, ou à la mise en place de pipelines d'inférence par lots.
Le service de modèle, plus précisément, fait référence à la mise en place d'un service dédié, évolutif et accessible pour l'inférence en temps réel, généralement via une API. Il s'agit d'un type spécifique de déploiement axé sur des capacités de prédiction continues et à la demande. Le choix entre les méthodes de déploiement dépend des exigences de l'application, telles que les besoins de latence, les exigences d'évolutivité et la complexité de l'intégration. Pour les applications nécessitant des prédictions instantanées et une intégration transparente dans divers systèmes, le model serving est l'approche idéale.