Le déploiement des systèmes d'IA implique le respect de plusieurs modes et pratiques afin de garantir que les modèles fonctionnent de manière efficace et fiable dans les environnements de production. Lors de la conception de l'architecture du système d'IA, le parlement doit donc tenir compte des caractéristiques présentées ci-dessous pour le mode de déploiement.
Architecture de déploiement
L'architecture de déploiement d'un système d'IA est déterminée par deux facteurs clés : la manière dont l'algorithme d'IA répond aux requêtes et le lieu où le modèle d'IA est hébergé.
Modes de traitement des requêtes :
- Traitement par lots : les données sont traitées par lots importants à intervalles réguliers, ce qui rend ce mode adapté aux tâches non sensibles au facteur temps.
- Mise à disposition en ligne : les requêtes sont traitées en temps réel, au fur et à mesure qu'elles arrivent, ce qui rend ce mode idéal pour les applications nécessitant des réponses immédiates.
- Flux de données : dans ce mode, les flux de données sont traités en continu, ce qui permet une analyse et des prédictions en quasi-temps réel.
Types de lieux d'hébergement :
- Sur site : les modèles sont déployés sur des serveurs locaux, souvent dans le but de renforcer la sécurité ou de répondre à des exigences de conformité spécifiques.
- Cloud : les modèles sont hébergés sur des plates-formes sur le cloud, ce qui offre des avantages tels que l'évolutivité, la souplesse et une gestion réduite de l'infrastructure.
- Périphérie : les modèles sont déployés sur des appareils en périphérie fournissant des prédictions à faible latence et des capacités hors ligne, ce qui rend cette approche adaptée à l'Internet des objets (IdO) et aux applications mobiles.
- Hybride : cette approche combine les déploiements sur site, sur le cloud et en périphérie pour optimiser les performances et l'utilisation des ressources en fonction de besoins spécifiques.
Le choix de l'architecture de déploiement dépend de facteurs tels que la sensibilité des données, les exigences en matière de temps de réponse, les ressources disponibles et le scénario spécifique d'utilisation du système d'IA.
Évolutivité
Il est essentiel de connaître le nombre moyen de requêtes que le système d'IA recevra, ainsi que son cycle de vie. Ces facteurs détermineront les caractéristiques d'évolutivité du déploiement :
- Évolutivité horizontale : ajouter plus d'instances du serveur de modèle pour faire face à une charge accrue.
- Évolutivité verticale : améliorer la capacité des serveurs existants (par exemple, en ajoutant plus de mémoire ou des unités centrales de traitement plus rapides (CPU)).
- Évolutivité automatique : ajuster automatiquement le nombre d'instances du modèle en fonction de la demande.
Latence et débit
Lors du déploiement de systèmes d'IA, les deux mesures de performances essentielles à prendre en compte sont la latence et le débit :
- La latence correspond au temps nécessaire au modèle d'IA pour répondre à une requête, ce qui est particulièrement important pour les applications en temps réel.
- Le débit mesure le nombre de requêtes que le modèle d'IA peut traiter par unité de temps, ce qui est essentiel pour les applications à haut volume.
Des valeurs acceptables doivent être définies pour la latence et le débit afin de s'assurer que le système répond aux besoins spécifiques de l'application pour laquelle il a été conçu et qu'il peut traiter efficacement la charge de travail prévue.
Gestion des modèles
Une gestion efficace des modèles est cruciale tout au long du cycle de vie d'un système d'IA. Cependant, elle devient particulièrement importante une fois que le système d'IA est mis en production. Une stratégie de gestion des modèles bien conçue doit tenir compte de plusieurs aspects essentiels :
- Gestion des versions : il s'agit de garder une trace des différentes versions du modèle, de garantir la traçabilité et la possibilité de faire marche arrière si nécessaire. Une bonne gestion des versions permet aux équipes de maîtriser les changements, de comparer les performances entre les itérations et de conserver un historique clair des modifications apportées au modèle au fil du temps.
- Gestion du cycle de vie : cette approche englobe les outils et les processus de déploiement, de contrôle, de mise à jour et, le moment venu, de retrait des modèles. L'objectif est de veiller à ce que la maintenance des modèles soit correcte tout au long de leur vie opérationnelle, depuis leur déploiement initial jusqu'à leur remplacement éventuel.
- Tests A/B : cette pratique consiste à exécuter simultanément plusieurs versions d'un modèle afin de comparer leurs performances. Les tests A/B permettent aux équipes de prendre des décisions fondées sur des données pour choisir la version du modèle qui donne les meilleurs résultats en conditions réelles avant le déploiement complet.
Suivi et observabilité
- Mesures des performances : mesures de suivi telles que le temps de réponse, le débit et l'utilisation des ressources
- Détection de la dérive : identifier le moment où les performances du modèle se dégradent en raison de changements dans la distribution des données.
- Alertes : mise en place d'alertes en cas d'anomalies ou de dégradation des performances.
Sécurité
- Contrôle d'accès : garantir que seuls les utilisateurs et les applications autorisés peuvent interagir avec le modèle.
- Confidentialité des données : protéger les données sensibles et respecter les réglementations (par exemple, le Règlement général sur la protection des données).
- Sécurité des modèles : protéger les modèles contre les attaques adverses et l'empoisonnement des données.
Intégration continue/déploiement continu - Automatisation : automatiser le processus de déploiement pour réduire les erreurs et le temps de déploiement.
- Tests : inclure des tests automatisés (unité, intégration, régression) dans le schéma de déploiement.
- Retours en arrière : fournir des mécanismes permettant de revenir rapidement aux versions précédentes en cas de problèmes.
Gestion des ressources
- Accélération matérielle : utiliser des unités de traitement graphique (GPU), des unités de traitement tensoriel (TPU) ou d'autres accélérateurs pour améliorer les performances.
- Affectation des ressources : gérer les ressources pour optimiser les coûts et les performances.
- Intégration avec les systèmes existants : proposer des API pour l'intégration avec d'autres systèmes et services.
- Pipelines de données : s'intégrer avec les pipelines d'ingestion et de prétraitement des données.
- Boucles retour : mettre en œuvre des systèmes permettant de recueillir des informations en retour sur les prédictions des modèles afin d'améliorer les performances futures.
Résilience et tolérance aux défaillances
- Redondance : disposer de plusieurs instances ou sauvegardes pour garantir la disponibilité.
- Basculement : passer automatiquement à des systèmes de secours en cas de défaillance.
- Logique de réessai : mettre en œuvre des mécanismes pour gérer les défaillances transitoires.
Auditabilité et explicabilité
Dans la plupart des cas, les journaux d'audit sont obligatoires pour les prédictions, les entrées et les interactions avec le système.
Outre l'audit, des outils d'explicabilité peuvent servir à interpréter les décisions des modèles d'IA, améliorant ainsi la confiance et la conformité.