Une référence concise des modèles d'architecture évalués par l'examen MLA-C01. Lisez de haut en bas ou sautez à une section.
Préparation des données pour le ML
Choisir un outil visuel de préparation des données.
Orienté ML, s'intègre avec SageMaker Studio + flux → Tâche de traitement → Pipeline → Export de notebook → SageMaker Data Wrangler. Nettoyage de données générique avec des recettes réutilisables, profilage, sans dépendance SageMaker → AWS Glue DataBrew. Plus de 50 To Spark avec du code personnalisé → Amazon EMR.
Pourquoi: Data Wrangler est l'option native de SageMaker (plus de 300 transformations, extraction de date/heure, export vers Pipeline/Processing). DataBrew est basé sur des recettes et indépendant de la source. EMR gère la mise à l'échelle et Spark arbitraire.
Cataloguer des données entre S3, RDS, DynamoDB afin que les analystes et SageMaker puissent découvrir des ensembles de données.
Les AWS Glue Crawlers remplissent l'AWS Glue Data Catalog avec des schémas et des métadonnées. Athena, Redshift Spectrum et SageMaker le consomment tous.
50 To d'ingénierie de fonctionnalités avec du code PySpark existant, doit être terminé en 4 heures.
Amazon EMR avec Spark. Taille de cluster ajustable, support Spot, exécute le code existant sans modification.
Pourquoi: Glue ETL exécute également Spark, mais EMR offre plus de contrôle sur la forme du cluster ; SageMaker Processing est destiné aux tâches à conteneur unique de plus petite échelle.
Étiqueter 100 000 images de manière rentable - souhaite un étiquetage humain + automatisé.
Amazon SageMaker Ground Truth avec l'étiquetage automatisé des données activé. Après un sous-ensemble initial étiqueté par des humains, Ground Truth entraîne un modèle et auto-étiquette les échantillons à haute confiance.
Pourquoi: L'apprentissage actif réduit généralement les coûts d'étiquetage jusqu'à 70 %. A2I est pour la révision humaine des prédictions de modèle, pas pour l'étiquetage en masse.
Plusieurs annotateurs ne sont pas d'accord ; besoin d'un réviseur senior pour vérifier un échantillon d'étiquettes.
Flux de travail de vérification (audit) d'étiquettes Ground Truth. Un sous-ensemble d'étiquettes est acheminé vers une équipe de révision qui approuve, rejette ou ajuste. À combiner avec la consolidation d'annotations pour le vote majoritaire multi-travailleurs.
Mêmes fonctionnalités d'ingénierie nécessaires à l'entraînement (batch) et à l'inférence (moins de 10 ms).
Amazon SageMaker Feature Store avec les magasins en ligne + hors ligne activés sur le groupe de fonctionnalités. Le magasin en ligne prend en charge GetRecord en temps réel ; le magasin hors ligne (Parquet dans S3) prend en charge l'entraînement.
Pourquoi: Élimine le biais entraînement/service sans synchronisation DynamoDB ↔ S3 personnalisée.
Définir un groupe de fonctionnalités - ce qui est obligatoire.
Nom de l'identifiant d'enregistrement (clé unique par enregistrement) et nom de la fonctionnalité d'heure d'événement (horodatage pour les requêtes ponctuelles).
Joindre deux groupes de fonctionnalités pour l'entraînement sans divulguer les futures valeurs de fonctionnalités.
Jointure ponctuelle sur le magasin hors ligne en utilisant la colonne d'heure d'événement. Chaque ligne d'entraînement ne voit que les valeurs de fonctionnalité qui existaient à son horodatage d'événement.
Pourquoi: Une simple jointure sur les dernières valeurs provoque une fuite de données en exposant la dérive des fonctionnalités post-événement au modèle.
Choisir un mode d'entrée de données d'entraînement SageMaker pour un ensemble de données de 500 Go.
Mode fichier → ensemble de données entier téléchargé en premier (démarrage lent, coût EBS). Mode Pipe → flux depuis S3, démarrage rapide, faible stockage. Mode FastFile → streaming paresseux au niveau du fichier. Utiliser Pipe (ou FastFile) pour les grands ensembles de données afin d'éviter le téléchargement.
Choisir un format de stockage et une disposition pour un lac de données ML sur S3 avec des lectures fréquentes de sous-ensembles de colonnes + filtres de partition.
Parquet (colonnaire, compressé) partitionné par la colonne la plus filtrée (par exemple, date ou région). Permet l'élagage des colonnes + l'élagage des partitions dans Athena et SageMaker.
Glue ETL retraite les fichiers déjà traités à chaque exécution.
Activer les signets de tâche Glue. Utiliser l'option PAUSE pour qu'une exécution échouée n'avance pas le signet ; réinitialiser uniquement si nécessaire.
Encoder des fonctionnalités catégorielles. Certaines sont ordonnées (Basique/Standard/Premium), d'autres non (États américains).
Ordonnées → encodage ordinal (préserve le rang). Non ordonnées → encodage one-hot (évite la fausse ordinalité). Éviter l'encodage d'étiquettes sur les fonctionnalités non ordonnées. L'encodage cible nécessite une CV attentive pour éviter les fuites.
Une colonne numérique a des valeurs manquantes qui sont corrélées à une autre fonctionnalité (par exemple, le revenu manquant dépend du type d'emploi).
Imputation médiane basée sur les groupes (médiane par type d'emploi). Préserve la relation ; la moyenne est sensible aux valeurs aberrantes ; la suppression perd des données ; zéro ajoute un biais.
Classification binaire avec une classe positive de 0,3 %.
Suréchantillonnage SMOTE uniquement sur le pli d'entraînement (après division). À combiner avec l'évaluation PR-curve / F1, pas la précision.
Pourquoi: Appliquer le suréchantillonnage APRÈS la division pour éviter les fuites. La précision est trompeuse sur des données déséquilibrées.
Une fonctionnalité numérique asymétrique à droite (par exemple, le revenu) nuit aux performances des modèles linéaires.
Transformation logarithmique. Compresse la queue droite et produit une distribution plus symétrique. La standardisation/min-max modifie l'échelle, pas la forme.
50 fonctionnalités fortement corrélées ; souhaite une dimensionnalité inférieure préservant la variance.
PCA. Transforme les fonctionnalités corrélées en composantes principales non corrélées classées par variance.
Choisir une stratégie de division entraînement/validation/test.
Classification déséquilibrée → division stratifiée (préserve le ratio de classes). Séries temporelles → division chronologique (entraînement sur la période précoce, test sur la plus récente) ; jamais de mélange aléatoire. Tabulaire IID → aléatoire.
Développement de modèles ML
Choisir un algorithme intégré de SageMaker.
Classification/régression tabulaire → XGBoost ou Linear Learner. Classification de texte multi-classes à grande échelle → BlazingText (supervisé). Séries temporelles avec séries connexes et saisonnalité → DeepAR. Détection d'anomalies non supervisée sur données numériques → Random Cut Forest. Modélisation de sujets → Neural Topic Model. Traduction / Seq2Seq → Sequence-to-Sequence. Classes au niveau des pixels → Semantic Segmentation. Embeddings d'entités appariées (utilisateur/élément) → Object2Vec.
Framework d'entraînement personnalisé / tokenizer propriétaire non inclus dans les algorithmes intégrés.
BYOC (Bring Your Own Container) : image Docker avec le code et les dépendances, la pousser vers Amazon ECR, la référencer dans l'entraînement SageMaker. Maintient l'infrastructure gérée (Spot, distribuée, cycle de vie) sans renoncer à la personnalisation.
Petit ensemble de données d'images (~2 000) pour la classification médicale.
Apprentissage par transfert à partir d'un modèle pré-entraîné sur ImageNet (par exemple, ResNet). Affiner les dernières couches. SageMaker Image Classification le prend en charge directement.
Pourquoi: L'entraînement à partir de zéro sur de petites données provoque le surapprentissage. Les fonctionnalités pré-entraînées (bords, textures) se transfèrent proprement aux images médicales.
Affiner rapidement un modèle de fondation pré-entraîné sans écrire de code d'entraînement personnalisé.
API de fine-tuning SageMaker JumpStart : choisissez l'ID du modèle, fournissez l'ensemble de données au format attendu (généralement JSONL), lancez une tâche de fine-tuning, déployez sur un endpoint depuis JumpStart.
Adapter un LLM à un domaine. Beaucoup de connaissances statiques → choisir RAG vs fine-tuning vs prompt-only.
Connaissances de domaine fréquemment changeantes → RAG via Bedrock Knowledge Bases. Voix de marque / style cohérent avec des exemples étiquetés → personnalisation de modèle Bedrock (fine-tuning, souvent des adaptateurs à paramètres efficaces). Petite orientation statique → ingénierie de prompt avec few-shot.
SageMaker Automatic Model Tuning avec optimisation bayésienne (par défaut). Construit un modèle probabiliste de l'objectif et échantillonne les régions prometteuses.
Pourquoi: La recherche par grille explose de manière combinatoire ; la recherche aléatoire gaspille le budget. Spécifier la métrique objectif (par exemple, `validation:auc`) et le type (`Maximize`).
Nouvelle tâche de réglage avec démarrage à chaud utilisant les tâches parentes comme a priori et des plages réduites centrées sur les configurations les plus performantes.
Continuer l'entraînement du modèle existant sur de nouvelles étiquettes mensuelles - ne pas recommencer de zéro.
Entraînement incrémental : passer les artefacts du modèle précédents en entrée. Pris en charge par les algorithmes intégrés de classification d'images, détection d'objets, segmentation sémantique.
Le modèle tient sur un seul GPU mais les données sont énormes → parallélisme de données (réplication du modèle, division des lots, gradients AllReduce). Le modèle ne tient pas sur un seul GPU → parallélisme de modèle (division des couches/tensors sur plusieurs GPU). Plus de 10 milliards de paramètres → bibliothèque de parallélisme de modèle SageMaker (parallélisme de tensor + pipeline).
Longues tâches d'entraînement qui peuvent tolérer des interruptions ; souhaite de grandes économies de coûts.
SageMaker Managed Spot Training (jusqu'à 90 % de réduction). Configurer des points de contrôle vers S3 afin que SageMaker puisse reprendre après une interruption.
La perte d'entraînement continue de baisser, la perte de validation commence à augmenter après l'époque 50.
Surapprentissage. Appliquer l'arrêt précoce au minimum de la perte de validation, ainsi que le dropout / la décroissance de poids L2. Plus de couches aggrave la situation.
Choisir la bonne métrique de classification.
Déséquilibré + le positif rare est important → rappel, F1, courbe PR / Précision Moyenne (PAS ROC AUC, qui est gonflé par de nombreux TN). Multi-classes avec déséquilibre → F1 macro-moyenné. Classement indépendant du seuil → AUC. Calibration des probabilités → perte logarithmique / Brier.
Le modèle de régression surestime les valeurs élevées et sous-estime les valeurs faibles.
Tracer les résidus par rapport à la valeur prédite ; utiliser l'Erreur Moyenne (signée) pour un biais systématique. RMSE / MAE / R² masquent la direction.
Chaque entrée peut appartenir à plusieurs classes simultanément.
Activation sigmoïde par neurone de sortie avec perte d'entropie croisée binaire (probabilités indépendantes). Softmax + entropie croisée catégorielle suppose des classes mutuellement exclusives.
Empiler plusieurs modèles de base avec un méta-appreneur.
Validation croisée k-fold : chaque modèle de base produit des prédictions hors-fold sur son pli de retenue ; les collecter sur tous les plis et entraîner le méta-appreneur sur ceux-ci.
Pourquoi: L'entraînement des modèles de base et la prédiction sur le même ensemble d'entraînement divulguent des informations au méta-appreneur.
Suivre et comparer de nombreuses exécutions d'entraînement (paramètres, métriques, artefacts).
SageMaker Experiments. Passer `experiment_config` (expérience + essai + composant d'essai) à la tâche d'entraînement ; SageMaker enregistre automatiquement les hyperparamètres, la configuration d'entrée, les métriques et les artefacts.
Détecter les pathologies d'entraînement (gradient évanescent, perte non décroissante, tenseur explosif) sans réécrire le script.
SageMaker Debugger avec des règles intégrées (`VanishingGradient`, `LossNotDecreasing`, `ExplodingTensor`, `Overfit`). Capture les tenseurs via des hooks ; évalue les règles à la volée.
Synchrone à faible latence stable → endpoint en temps réel. Trafic en pointe / inactif, pas besoin de GPU → inférence sans serveur (configurer Provisioned Concurrency pour éliminer les démarrages à froid). Exécution longue par requête (>60 s) ou charges utiles volumineuses → inférence asynchrone. Score hors ligne en masse des enregistrements S3 → batch transform.
De nombreux modèles à faible trafic - un endpoint pour chacun est trop coûteux.
SageMaker Multi-Model Endpoint (MME). Les modèles se chargent à la demande dans des instances partagées. Un endpoint, de nombreux modèles, faible coût.
L'endpoint en temps réel doit absorber des pics de 1000 req/s mais doit évoluer vers un quasi-zéro la nuit.
Application Auto Scaling de suivi de cible sur `InvocationsPerInstance`. Ajoute/supprime des instances derrière l'endpoint en fonction des changements de trafic.
Le pipeline doit coordonner Glue ETL + Lambda + entraînement SageMaker + SNS / DynamoDB.
AWS Step Functions. Intégrations de services natives à travers la pile ; plus riche que les Pipelines pour les étapes non-SageMaker.
Pourquoi: Pipelines est le bon choix pour les workflows purement ML ; Step Functions est le bon choix lorsque vous avez besoin d'intégrations de services AWS plus larges.
Déployer un modèle TensorFlow sur des appareils périphériques ARM ; besoin qu'il soit petit + rapide.
SageMaker Neo. Compile pour le matériel cible ; jusqu'à 25 fois plus rapide, ~1/10ème de la mémoire. Déployer via le runtime DLR ; combiner avec IoT Greengrass pour le edge hors ligne.
Surveillance, maintenance et sécurité des solutions ML
Détecter que les distributions de fonctionnalités d'entrée ont dérivé par rapport à la ligne de base d'entraînement.
SageMaker Model Monitor - Qualité des Données. Capture les données d'inférence, les compare à une ligne de base calculée à partir des données d'entraînement, alarme en cas de dérive.
Pourquoi: L'ordre de configuration est fixe : (1) tâche de ligne de base → (2) planification de surveillance → (3) alarmes CloudWatch sur les métriques de violation de contrainte.
Détecter la dégradation de la qualité des prédictions (précision / F1 / RMSE) lorsque la vérité terrain arrive avec un délai.
SageMaker Model Monitor - Qualité du Modèle. Fusionne les prédictions capturées avec les étiquettes de vérité terrain retardées ; déclenche des alarmes lorsque les métriques tombent en dessous de la ligne de base.
La distribution des entrées semble inchangée mais la qualité de la prédiction a changé.
SageMaker Clarify Feature Attribution Drift Monitor (basé sur SHAP). Détecte la dérive conceptuelle via le déplacement des importances de fonctionnalités. À associer avec Model Quality monitor lorsque la vérité terrain est disponible.
La précision a chuté mais les distributions de fonctionnalités d'entrée sont inchangées.
Dérive conceptuelle (la relation étiquette/fonctionnalité a changé). La dérive des données a été exclue. Correction : réentraîner sur des données étiquetées récentes.
Vérifier le jeu de données pour les biais avant l'entraînement.
Métriques de biais pré-entraînement de SageMaker Clarify. Déséquilibre de Classe (CI) pour la disparité de taille d'échantillon ; Différence dans les Proportions Positives d'Étiquettes (DPL) pour la disparité de taux d'étiquettes ; divergence KL/JS pour les écarts distributionnels.
Métriques de biais post-entraînement de SageMaker Clarify. Impact Disparate (DI), Différence de Précision (AD), Acceptation Conditionnelle, Égalité de Traitement. Exécuter contre les prédictions du modèle.
Pourquoi: DPL pré-entraînement propre mais DI post-entraînement biaisé = le modèle lui-même amplifie une variable proxy. Examiner les fonctionnalités (par exemple, code postal).
La conformité exige une documentation structurée de chaque modèle de production (utilisation prévue, données d'entraînement, évaluation, éthique, limitations).
SageMaker Model Cards. Versionnées ; intégrées au Model Registry.
Le notebook doit lire les données d'entraînement depuis un bucket S3 et écrire les artefacts vers un autre.
Politique IAM personnalisée : `s3:GetObject` sur le bucket/préfixe d'entraînement et `s3:PutObject` sur le bucket/préfixe des artefacts, attachée au rôle d'exécution SageMaker. Éviter `AmazonS3FullAccess`.
Isolation par équipe à travers les ressources SageMaker.
Contrôle d'accès basé sur les attributs (ABAC) avec la condition IAM `aws:ResourceTag/project`. Les ressources étiquetées `project=A` accessibles uniquement aux rôles dont les politiques correspondent.
Chiffrer les données d'entraînement et les artefacts de modèle avec des clés gérées par le client + rotation.
SSE-KMS avec une clé gérée par le client (CMK). Rotation KMS, politiques de clé, audit CloudTrail. Spécifier la clé KMS dans la tâche d'entraînement + la configuration de l'endpoint (volume + sortie) pour que SageMaker l'utilise.
Le conteneur ne doit pas effectuer d'appels réseau sortants ; les données doivent rester à l'intérieur des canaux de copie SageMaker.
Définir `EnableNetworkIsolation=true` sur la tâche d'entraînement/traitement ou l'endpoint. SageMaker copie les canaux d'entrée S3 avant l'exécution du conteneur ; le conteneur n'a pas de sortie.
L'entraînement ne doit pas toucher l'internet public.
Exécuter SageMaker dans un sous-réseau privé SANS NAT/Internet Gateway. Ajouter des endpoints VPC - endpoint de passerelle pour S3, endpoints d'interface pour SageMaker API + Runtime + ECR + STS + CloudWatch Logs.
Appliquer que toutes les ressources SageMaker utilisent VPC + KMS + types d'instances approuvés.
Préventif → produits SageMaker Service Catalog (configurations pré-approuvées) et clés de condition IAM (`sagemaker:VpcSecurityGroupIds`, `sagemaker:VolumeKmsKey`) qui refusent les appels API non conformes. Détectif → règles gérées/personnalisées AWS Config.