Ce document du framework d'architecture: perspective sur l'IA et le ML présente les principes et les recommandations pour concevoir et exploiter des systèmes d'IA et de ML fiables sur Google Cloud. Il explique comment intégrer des pratiques de fiabilité et d'observabilité avancées dans vos plans d'architecture. Les recommandations de ce document correspondent au pilier de fiabilité du framework d'architecture.
Dans le paysage de l'IA et du ML en pleine évolution, des systèmes fiables sont essentiels pour assurer la satisfaction des clients et atteindre les objectifs commerciaux. Vous avez besoin de systèmes d'IA et de ML robustes, fiables et adaptables pour répondre aux exigences uniques du ML prédictif et de l'IA générative. Pour gérer la complexité des MLOps, du développement au déploiement et à l'amélioration continue, vous devez adopter une approche axée sur la fiabilité. Google Cloud propose une infrastructure d'IA conçue à cet effet, conforme aux principes de l'ingénierie en fiabilité des sites (SRE) et offrant une base solide pour des systèmes d'IA et de ML fiables.
Assurer que l'infrastructure est évolutive et disponibilité élevée
En concevant une architecture axée sur l'évolutivité et la disponibilité, vous permettez à vos applications de gérer différents niveaux de demande sans interruption de service ni dégradation des performances. Cela signifie que vos services d'IA restent disponibles pour les utilisateurs en cas d'indisponibilité de l'infrastructure et lorsque le trafic est très élevé.
Tenez compte des recommandations suivantes:
- Concevez vos systèmes d'IA avec des fonctionnalités de scaling automatique et dynamique pour gérer les fluctuations de la demande. Cela permet de garantir des performances optimales, même en cas de pics de trafic.
- Gérez les ressources de manière proactive et anticipez les besoins futurs grâce aux tests de charge et à la surveillance des performances. Utilisez les données historiques et les analyses prédictives pour prendre des décisions éclairées sur l'allocation des ressources.
- Concevez pour une haute disponibilité et une tolérance aux pannes en adoptant les archétypes de déploiement multizone et multirégional dans Google Cloud, et en implémentant la redondance et la réplication.
- Répartissez le trafic entrant sur plusieurs instances de vos services et points de terminaison d'IA et de ML. L'équilibrage de charge permet d'éviter la surcharge d'une instance et de garantir des performances et une disponibilité cohérentes.
Utiliser une architecture modulaire et faiblement couplée
Pour rendre vos systèmes d'IA résilients aux défaillances de composants individuels, utilisez une architecture modulaire. Par exemple, concevez les composants de traitement et de validation des données en tant que modules distincts. Lorsqu'un composant particulier échoue, l'architecture modulaire permet de réduire les temps d'arrêt et de développer et de déployer des correctifs plus rapidement.
Tenez compte des recommandations suivantes:
- Séparez votre système d'IA et de ML en petits modules ou composants autonomes. Cette approche favorise la réutilisation du code, simplifie les tests et la maintenance, et vous permet de développer et de déployer des composants individuels de manière indépendante.
- Concevez les modules faiblement couplés avec des interfaces bien définies. Cette approche minimise les dépendances et vous permet d'apporter des mises à jour et des modifications indépendantes sans affecter l'ensemble du système.
- Planifiez la dégradation élégante. Lorsqu'un composant échoue, les autres parties du système doivent continuer à fournir un niveau de fonctionnalité adéquat.
- Utilisez des API pour créer des limites claires entre les modules et pour masquer les détails d'implémentation au niveau du module. Cette approche vous permet de mettre à jour ou de remplacer des composants individuels sans affecter les interactions avec d'autres parties du système.
Créer une plate-forme MLOps automatisée
Avec une plate-forme MLOps automatisée, les étapes et les résultats du cycle de vie de votre modèle sont plus fiables. En promouvant la cohérence, l'association lâche et la modularité, et en exprimant les opérations et l'infrastructure en tant que code, vous supprimez les étapes manuelles fragiles et gérez des systèmes d'IA et de ML plus robustes et fiables.
Tenez compte des recommandations suivantes:
- Automatisez le cycle de vie du développement du modèle, de la préparation et de la validation des données à l'entraînement, à l'évaluation, au déploiement et à la surveillance du modèle.
- Gérez votre infrastructure en tant que code (IaC). Cette approche permet un contrôle des versions efficace, des rollbacks rapides si nécessaire et des déploiements reproductibles.
- Vérifiez que vos modèles se comportent comme prévu avec des données pertinentes. Automatisez la surveillance des performances de vos modèles et créez des alertes appropriées pour les sorties inattendues.
- Validez les entrées et les sorties de vos pipelines d'IA et de ML. Par exemple, validez les données, les configurations, les arguments de commande, les fichiers et les prédictions. Configurer des alertes pour les valeurs inattendues ou non autorisées
- Adoptez une stratégie de contrôle des versions gérée pour les points de terminaison de vos modèles. Ce type de stratégie permet des versions incrémentielles et une récupération rapide en cas de problème.
Maintenir la confiance et le contrôle grâce à la gouvernance des données et des modèles
La fiabilité des systèmes d'IA et de ML dépend des capacités de confiance et de gouvernance de vos données et de vos modèles. Les sorties d'IA peuvent ne pas répondre aux attentes de manière silencieuse. Par exemple, les résultats peuvent être formellement cohérents, mais ils peuvent être incorrects ou indésirables. En implémentant la traçabilité et une gouvernance stricte, vous pouvez vous assurer que les résultats sont fiables.
Tenez compte des recommandations suivantes:
- Utilisez un catalogue de données et de modèles pour suivre et gérer efficacement vos composants. Pour faciliter le traçage et les audits, conservez un enregistrement complet des données et des versions de modèle tout au long du cycle de vie.
- Implémentez des contrôles d'accès et des journaux d'audit stricts pour protéger les données et les modèles sensibles.
- Abordez le problème crucial des biais dans l'IA, en particulier dans les applications d'IA générative. Pour gagner la confiance des utilisateurs, recherchez la transparence et l'explicabilité dans les sorties du modèle.
- Automatisez la génération de statistiques sur les fonctionnalités et implémentez la détection d'anomalies pour identifier de manière proactive les problèmes de données. Pour garantir la fiabilité du modèle, établissez des mécanismes permettant de détecter et d'atténuer l'impact des modifications des distributions de données.
Implémenter des pratiques d'observabilité et de fiabilité globales pour l'IA et le ML
Pour améliorer en continu vos opérations d'IA, vous devez définir des objectifs de fiabilité pertinents et mesurer les progrès. L'observabilité est un élément fondamental des systèmes fiables. L'observabilité vous permet de gérer les opérations en cours et les événements critiques. Une observabilité bien implémentée vous aide à créer et à gérer un service fiable pour vos utilisateurs.
Tenez compte des recommandations suivantes:
- Suivez les métriques d'infrastructure pour les processeurs (CPU, GPU et TPU) et pour d'autres ressources telles que l'utilisation de la mémoire, la latence réseau et l'utilisation du disque. Effectuez des tests de charge et une surveillance des performances. Utilisez les résultats des tests et les métriques de surveillance pour gérer l'ajustement et la capacité de vos systèmes d'IA et de ML.
- Définissez des objectifs de fiabilité et suivez les métriques de l'application. Mesurez des métriques telles que le débit et la latence pour les applications d'IA que vous créez. Surveillez les schémas d'utilisation de vos applications et des points de terminaison exposés.
- Définissez des métriques spécifiques au modèle, comme des indicateurs de précision ou de sécurité, afin d'évaluer la fiabilité du modèle. Suivez ces métriques au fil du temps pour identifier toute dérive ou dégradation. Pour un contrôle et une automatisation efficaces des versions, définissez les configurations de surveillance en tant que code.
- Définissez et suivez des métriques au niveau de l'entreprise pour comprendre l'impact de vos modèles et de leur fiabilité sur les résultats commerciaux. Pour mesurer la fiabilité de vos services d'IA et de ML, envisagez d'adopter l'approche SRE et de définir des objectifs de niveau de service (SLO).
Contributeurs
Auteurs :
- Rick (Rugui) Chen | Architecte de solutions pour l'infrastructure d'IA
- Dr Felipe Gracio | Ingénieur client
Autres contributeurs :
- Jose Andrade | Ingénieur client Enterprise Infrastructure
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer