Ce document du Framework Well-Architected : perspective de l'IA et du ML fournit une présentation des principes et des recommandations pour vous aider à optimiser les performances de vos charges de travail d'IA et de ML sur Google Cloud. Les recommandations de ce document s'alignent sur le pilier d'optimisation des performances du framework Google Cloud Well-Architected.
Les systèmes d'IA et de ML offrent de nouvelles fonctionnalités d'automatisation et de prise de décision pour votre organisation. Les performances de ces systèmes peuvent avoir une incidence directe sur vos moteurs d'activité, comme les revenus, les coûts et la satisfaction client. Pour exploiter tout le potentiel de vos systèmes d'IA et de ML, vous devez optimiser leurs performances en fonction de vos objectifs commerciaux et de vos exigences techniques. Le processus d'optimisation des performances implique souvent certains compromis. Par exemple, un choix de conception qui fournit les performances requises peut entraîner des coûts plus élevés. Les recommandations de ce document privilégient les performances par rapport à d'autres considérations, comme les coûts.
Pour optimiser les performances de l'IA et du ML, vous devez prendre des décisions concernant des facteurs tels que l'architecture du modèle, les paramètres et la stratégie d'entraînement. Lorsque vous prenez ces décisions, tenez compte de l'ensemble du cycle de vie des systèmes d'IA et de ML, ainsi que de leur environnement de déploiement. Par exemple, les LLM très volumineux peuvent être très performants sur une infrastructure d'entraînement massive, mais ils peuvent ne pas fonctionner correctement dans des environnements à capacité limitée, comme les appareils mobiles.
Traduire les objectifs commerciaux en objectifs de performances
Pour prendre des décisions architecturales qui optimisent les performances, commencez par définir clairement vos objectifs commerciaux. Concevez des systèmes d'IA et de ML qui offrent les performances techniques nécessaires pour atteindre vos objectifs et priorités commerciales. Vos équipes techniques doivent comprendre le mappage entre les objectifs de performances et les objectifs commerciaux.
Tenez compte des recommandations suivantes :
- Traduire les objectifs commerciaux en exigences techniques : traduisez les objectifs commerciaux de vos systèmes d'IA et de ML en exigences de performances techniques spécifiques, et évaluez les conséquences du non-respect de ces exigences. Par exemple, pour une application qui prédit le churn des clients, le modèle de ML doit obtenir de bons résultats sur les métriques standards, comme la précision et le rappel, et l'application doit répondre aux exigences opérationnelles, comme une faible latence.
- Surveillez les performances à toutes les étapes du cycle de vie du modèle : pendant l'expérimentation et l'entraînement après le déploiement du modèle, surveillez vos indicateurs clés de performance (KPI) et notez toute déviation par rapport aux objectifs commerciaux.
- Automatisez l'évaluation pour la rendre reproductible et standardisée : grâce à une plate-forme et une méthodologie standardisées et comparables pour l'évaluation des tests, vos ingénieurs peuvent accélérer l'amélioration des performances.
Effectuer et suivre des tests fréquents
Pour transformer l'innovation et la créativité en amélioration des performances, vous avez besoin d'une culture et d'une plate-forme qui favorisent l'expérimentation. L'amélioration des performances est un processus continu, car les technologies d'IA et de ML se développent en permanence et rapidement. Pour maintenir un processus itératif et rapide, vous devez séparer l'espace d'expérimentation de vos plates-formes d'entraînement et de diffusion. Il est important de disposer d'un processus d'expérimentation standardisé et robuste.
Tenez compte des recommandations suivantes :
- Créer un environnement de test : pour améliorer les performances, vous avez besoin d'un environnement dédié, puissant et interactif qui prend en charge l'expérimentation et le développement collaboratif des pipelines de ML.
- Intégrez l'expérimentation à votre culture : effectuez des tests avant tout déploiement en production. Publiez de nouvelles versions de manière itérative et collectez toujours des données sur les performances. Testez différents types de données, transformations de caractéristiques, algorithmes et hyperparamètres.
Créer et automatiser des services d'entraînement et de diffusion
L'entraînement et la diffusion de modèles d'IA sont des composants essentiels de vos services d'IA. Vous avez besoin de plates-formes et de pratiques robustes qui permettent de créer, de déployer et de diffuser des modèles d'IA de manière rapide et fiable. Consacrez du temps et des efforts à la création de plates-formes de base pour vos tâches principales d'entraînement et de diffusion de l'IA. Ces plates-formes fondamentales aident vos équipes à gagner du temps et à réduire leurs efforts, et à améliorer la qualité des résultats à moyen et long terme.
Tenez compte des recommandations suivantes :
- Utilisez des composants spécialisés dans l'IA d'un service d'entraînement : ces composants incluent le calcul hautes performances et les composants MLOps tels que les feature stores, les registres de modèles, les magasins de métadonnées et les services d'évaluation des performances des modèles.
- Utilisez des composants spécialisés dans l'IA d'un service de prédiction : ces composants fournissent des ressources évolutives et hautes performances, prennent en charge la surveillance des caractéristiques et permettent de surveiller les performances des modèles. Pour éviter et gérer la dégradation des performances, implémentez des stratégies de déploiement et de restauration fiables.
Adapter les choix de conception aux exigences de performances
Lorsque vous faites des choix de conception pour améliorer les performances, évaluez soigneusement s'ils répondent à vos exigences commerciales ou s'ils sont inutiles et contre-productifs. Pour choisir l'infrastructure, les modèles ou les configurations appropriés, identifiez les goulots d'étranglement des performances et évaluez leur lien avec vos mesures de performances. Par exemple, même sur des accélérateurs GPU très puissants, vos tâches d'entraînement peuvent rencontrer des goulots d'étranglement en raison de problèmes d'E/S de données provenant de la couche de stockage ou de limites de performances du modèle lui-même.
Tenez compte des recommandations suivantes :
- Optimiser la consommation de matériel en fonction des objectifs de performances : pour entraîner et diffuser des modèles de ML qui répondent à vos exigences de performances, vous devez optimiser l'infrastructure au niveau des couches de calcul, de stockage et de réseau. Vous devez mesurer et comprendre les variables qui affectent vos objectifs de performances. Ces variables sont différentes pour l'entraînement et l'inférence.
- Concentrez-vous sur les exigences spécifiques aux charges de travail : concentrez vos efforts d'optimisation des performances sur les exigences uniques de vos charges de travail d'IA et de ML. Appuyez-vous sur des services gérés pour les performances de l'infrastructure sous-jacente.
- Choisir des stratégies d'entraînement appropriées : plusieurs modèles pré-entraînés et de base sont disponibles, et d'autres sont régulièrement publiés. Choisissez une stratégie d'entraînement qui peut offrir des performances optimales pour votre tâche. Décidez si vous devez créer votre propre modèle, ajuster un modèle pré-entraîné sur vos données ou utiliser une API de modèle pré-entraîné.
- Sachez que les stratégies d'optimisation des performances peuvent avoir des rendements décroissants : lorsqu'une stratégie d'optimisation des performances particulière ne fournit pas de valeur commerciale incrémentale mesurable, arrêtez de la poursuivre.
Associer les métriques de performances aux choix de conception et de configuration
Pour innover, résoudre les problèmes et examiner les problèmes de performances, établissez un lien clair entre les choix de conception et les résultats en termes de performances. En plus de l'expérimentation, vous devez enregistrer de manière fiable la lignée de vos composants, déploiements, sorties de modèle, ainsi que les configurations et les entrées qui ont produit les sorties.
Tenez compte des recommandations suivantes :
- Créez un système de traçabilité des données et des modèles : tous vos composants déployés et leurs métriques de performances doivent être associés aux données, aux configurations, au code et aux choix qui ont permis de déployer les systèmes. De plus, les sorties de modèle doivent être associées à des versions de modèle spécifiques et à la façon dont les sorties ont été produites.
- Utilisez des outils d'explication pour améliorer les performances du modèle : adoptez et standardisez les outils et les benchmarks pour l'exploration et l'explication des modèles. Ces outils aident vos ingénieurs en ML à comprendre le comportement des modèles, à améliorer leurs performances ou à supprimer les biais.
Contributeurs
Auteurs :
- Benjamin Sadik | Ingénieur client spécialiste en IA et ML
- Filipe Gracio, PhD | Ingénieur client
Autres contributeurs :
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
- Zach Seils | Spécialiste en gestion des réseaux