Compétence Architecture AlphaGo
Points de Décision
Quand Utiliser des Évaluateurs Uniques vs. en Cascade
Caractéristiques du problème :
├── Espace de recherche tractable (b^d < 10^9)
│ └── Utiliser le meilleur évaluateur unique → optimisation standard
└── Espace de recherche intractable (b^d > 10^12)
├── Budget d'évaluation uniforme disponible
│ └── Utiliser l'approximation en cascade :
│ 1. Élagage rapide (réseau de politique) → faisceau étroit
│ 2. Évaluation moyenne (réseau de valeur) → estimation de la qualité
│ 3. Exploration bon marché (simulations) → couverture large
└── Budget d'évaluation non uniforme
└── Allocation adaptative :
├── Positions critiques → évaluation coûteuse
└── Positions de routine → heuristiques bon marché
Arbre de Décision Précision vs. Latence
Exigences du système :
├── Latence critique (<1ms réponse)
│ ├── Tolérance de précision élevée (>10% d'erreur acceptable)
│ │ └── Simulations rapides uniquement (2µs/évaluation)
│ └── Tolérance de précision faible (<5% d'erreur)
│ └── Réseau de politique en cache + repli heuristique
├── Latence modérée (1-100ms réponse)
│ ├── Haute précision nécessaire
│ │ └── Réseau de valeur (3ms) + guidage par réseau de politique
│ └── Équilibre précision/vitesse
│ └── Évaluation mixte : λ=0,5 valeur + simulations
└── Latence tolérante (>100ms)
└── Cascade complète : politique → valeur → simulations avec MCTS
Évaluation de la Diversité des Modes d'Erreur
Lors du choix de plusieurs évaluateurs :
├── Tous les évaluateurs ont des modes de défaillance similaires
│ └── Utiliser le meilleur évaluateur unique (aucun bénéfice de diversité)
├── Les évaluateurs ont des erreurs complémentaires
│ ├── Couplage rapide/bruyant + lent/précis
│ │ └── Mélanger à λ=0,3-0,7 (biais vers le précis)
│ ├── Couplage conservateur + exploratoire
│ │ └── Mélanger à λ=0,5 (pondération égale)
│ └── Couplage appris + artisanal
│ └── Mélange dynamique basé sur les scores de confiance
└── Corrélation d'erreur inconnue
└── Test empirique : mesurer les performances sur un ensemble de validation
Modes de Défaillance
Gonflement du Schéma (Détection : >5 couches d'approximation)
Symptôme : Ajout de couches d'approximation supplémentaires mais rendements décroissants Cause racine : Chaque couche ajoute une surcharge sans gain de précision proportionnel Correctif : Profiler le coût de calcul par rapport à l'amélioration de la précision ; supprimer les couches avec un faible ROI Règle de détection : Si l'ajout d'une couche N améliore la précision de <5% mais augmente la latence de >20%, vous avez un gonflement du schéma
Couplage Synchrone (Détection : Composants rapides en attente inactifs)
Symptôme : L'utilisation du CPU chute en attendant l'évaluation du GPU Cause racine : Couplage serré entre la recherche rapide et l'évaluation lente du réseau de neurones Correctif : Implémenter une mise en file d'attente asynchrone avec tolérance aux valeurs obsolètes Règle de détection : Si les composants rapides (recherche, simulations) ont un temps d'inactivité >50%, vous avez un couplage synchrone
Fixation sur une Métrique Proxy (Détection : Métrique s'améliore mais performance se dégrade)
Symptôme : La précision de prédiction des mouvements s'améliore mais le taux de victoire diminue Cause racine : Optimisation pour l'imitation humaine au lieu du succès objectif Correctif : Passer de l'apprentissage supervisé à l'apprentissage par renforcement avec un objectif réel Règle de détection : Si la métrique proxy et la métrique de résultat évoluent en sens inverse pendant >10 évaluations, vous avez une fixation proxy
Erreur d'Évaluateur Unique (Détection : Rejet des composants individuels « moins bons »)
Symptôme : Élimination des simulations parce que le réseau de valeur a une précision individuelle plus élevée Cause racine : Hypothèse que le meilleur composant individuel fait le meilleur composant du système Correctif : Tester empiriquement la performance du mélange ; la diversité bat souvent la qualité individuelle Règle de détection : Si vous sélectionnez des composants par performance individuelle sans tester les combinaisons, vous avez une erreur d'évaluateur unique
Allocation Budgétaire Uniforme (Détection : Même calcul pour toutes les décisions)
Symptôme : Passer le même temps d'évaluation sur des mouvements évidents et sur des positions critiques Cause racine : Ne pas adapter le budget de calcul à l'importance de la décision Correctif : Implémenter une allocation adaptative basée sur l'incertitude de la position et la sensibilité aux résultats Règle de détection : Si la variance du temps d'évaluation entre les positions est <20% de la moyenne, vous avez une allocation uniforme
Exemples Concrets
Implémentation de l'Approximation en Cascade pour la Revue de Code
Scénario : Concevoir un système IA pour la revue de demandes d'extraction (pull requests) avec 50 à 500 lignes modifiées, nécessitant un temps de réponse <10s, devant détecter 95% des bogues.
Étape 1 : Analyser les contraintes de calcul
- Analyse statique : 10ms par fichier
- Détecteur de bogues ML : 2s par fichier
- Analyse sémantique approfondie : 30s par fichier
- Budget disponible : 10s au total
Étape 2 : Appliquer l'arbre de décision en cascade Suivre le chemin « espace de recherche intractable » puisque l'analyse exhaustive dépasse le budget :
- Couche d'élagage rapide (analyse statique) : Éliminer les fichiers sans changements de complexité
- Couche d'évaluation moyenne (détecteur ML) : Noter les fichiers restants pour la probabilité de bogues
- Couche d'analyse coûteuse (sémantique) : Plongée approfondie uniquement sur les fichiers les mieux notés
Étape 3 : Stratégie d'allocation du budget
- Réserver 2s pour l'évaluation ML de tous les fichiers restants
- Allouer les 8s restantes à l'analyse sémantique en fonction des scores ML
- Fichiers avec score >0,8 : obtenir 4s chacun (max 2 fichiers)
- Fichiers avec score 0,5-0,8 : obtenir 2s chacun
- Fichiers avec score <0,5 : obtenir uniquement le score ML
Étape 4 : Implémentation de l'évaluation mixte Au lieu d'utiliser le « meilleur » évaluateur (analyse sémantique), mélanger les scores ML + sémantiques :
- Détecteur ML : rapide, bon pour la reconnaissance de motifs, manque les bogues nouveaux
- Analyse sémantique : lente, détecte les erreurs logiques complexes, taux de faux positifs élevé
- Mélange à λ=0,6 :
score_final = 0,6 * sémantique + 0,4 * ml
Approche novice : Exécuter l'analyse sémantique sur tout → dépassement du délai après les premiers fichiers Aperçu expert : La cascade permet de dépenser un calcul coûteux uniquement là où cela compte le plus, tout en garantissant que chaque fichier reçoit une certaine évaluation
Contrôles Qualité
[ ] N évaluateurs testés : Au moins 3 évaluateurs avec différents profils de vitesse/précision implémentés et évalués [ ] Corrélation d'erreur mesurée : Matrice de corrélation par paire calculée montrant que les évaluateurs ont une corrélation <0,7 sur l'ensemble de test [ ] Mixte vs. unique évalué : Comparaison empirique montrant que le mélange surpasse le meilleur composant individuel de >5% [ ] Exigences de latence satisfaites : Temps de réponse au 95e percentile sous le seuil spécifié avec cascade complète [ ] Exigences de précision satisfaites : Taux d'erreur sur l'ensemble de validation répond au seuil spécifié (par exemple, taux de faux négatifs <5%) [ ] Allocation du budget profilée : La répartition des coûts de calcul montre que le budget est distribué en fonction de l'importance de la décision [ ] Test des modes de défaillance : Système testé dans des conditions adverses (changement de distribution, contraintes de ressources, cas limites) [ ] Coordination asynchrone vérifiée : Les composants rapides maintiennent une utilisation >80% même lorsque les composants lents sont saturés [ ] Évolutivité validée : Les performances se dégradent progressivement lorsque la charge augmente de 10 fois par rapport à la capacité nominale [ ] Instrumentation de surveillance : Les métriques suivent l'alignement proxy vs. résultat, l'utilisation des composants et l'efficacité de la cascade
Limites
N'utilisez PAS cette compétence pour :
- Problèmes d'optimisation simples avec des espaces de recherche tractables → utiliser optimisation-standard à la place
- Entraînement ou réglage d'un modèle unique → utiliser apprentissage-profond-entraînement à la place
- Systèmes temps réel nécessitant une latence <1ms → utiliser systèmes-faible-latence à la place
- Problèmes où un évaluateur est clairement supérieur et les autres n'ajoutent aucune valeur → utiliser déploiement-modèle-unique à la place
- Processus décisionnels séquentiels sans structure d'arbre de recherche → utiliser fondements-apprentissage-renforcement à la place
Déléguer à d'autres compétences lorsque :
- Besoin d'implémenter des architectures de réseaux de neurones spécifiques → architectures-apprentissage-profond
- Conception d'infrastructure de systèmes distribués → conception-systèmes-distribués
- Optimisation des performances de composants individuels → optimisation-performance
- Gestion de la collecte et de l'étiquetage des données d'entraînement → ingénierie-données
- Implémentation d'algorithmes de recherche spécifiques → algorithmes-recherche
Cette compétence se concentre spécifiquement sur : Les motifs architecturaux pour coordonner plusieurs évaluateurs imparfaits sous contraintes de calcul, et non sur les détails d'implémentation des composants individuels.