Retour aux articles • IA • • 3 min de lecture

Karpathy Council : faire voter plusieurs IA

Orchestration d'un conseil de 5 LLM en 3 étapes : opinions indépendantes, revue par les pairs anonymisée (Borda) et droit de veto sécurité/SRE.

Karpathy Council : faire voter plusieurs IA

Introduction

Faire appel à un seul grand modèle de langage pour arbitrer un changement d’architecture critique ou un durcissement de sécurité expose à un risque bien connu : le biais d’auto-confirmation. Même les meilleurs modèles peuvent halluciner un paramètre réseau, oublier une contrainte de verrou SQLite sur NFS ou sous-estimer une surface d’injection indirecte.

En nous inspirant du concept open-source LLM Council (karpathy/llm-council) popularisé par Andrej Karpathy, nous avons déployé sur notre infrastructure un protocole de délibération collégiale en 3 étapes (scripts/karpathy_council.py). L’objectif n’est pas de faire bavarder des modèles entre eux, mais d’obtenir une confrontation indépendante, évaluée à l’aveugle, avec un droit de veto formel sur la sécurité et la résilience.

Architecture & Flux : Karpathy LLM Council : consensus multi-IA

Rôles asymétriques et droits de veto

Plutôt que d’interroger quatre fois le même prompt générique, chaque membre du conseil possède une spécialité d’ingénierie et, pour deux d’entre eux, un veto bloquant :

Membre du ConseilModèle sous-jacentRôle techniquePouvoir d’arbitrage
FableClaude Opus 5.5CISO Zero-Trust, isolation des enclaves, anti-injectionVETO_SECURITY (Bloquant)
AstraGPT-6Architecte Cloud & SRE, cgroups Docker, verrous BDD/NFSVETO_SRE (Bloquant)
SolGPT-5.6Lead Software Engineer, concision algorithmique PonytailVote de Borda & revue de complexité
ArgonGemini 4 VIPCorrélation holistique long-context (2M+ tokens)Vote de Borda & détection d’angles morts
AGY (Chairman)Agent ExécutifSynthèse, exécution des tests sur le serveur et preuve empiriqueArbitrage final fondé sur le test réel

Le pipeline de délibération en 3 étapes

1. Stage 1 : Opinions initiales en parallèle

Les modèles reçoivent exactement le même contexte factuel (extrait de code, logs système, topologie réseau) et répondent en parallèle via asyncio.gather. Aucun modèle ne voit la proposition des autres, ce qui élimine tout biais d’ancrage.

2. Stage 2 : Revue par les pairs anonymisée et score de Borda

L’orchestrateur mélange et renomme les propositions en Response A, Response B, Response C, Response D en conservant la table de correspondance en mémoire privée. Chaque modèle évalue les propositions à l’aveugle, signale d’éventuelles failles critiques (VETO_SECURITY ou VETO_SRE) et produit un classement strict converti en points de Borda.

3. Stage 3 : La preuve empirique bat le vote

Un consensus théorique entre LLM ne remplace jamais l’exécution réelle. Le Chairman écarte toute proposition frappée d’un veto, retient la solution la plus sobre (filtre Ponytail) et l’exécute face à notre suite de 252 canaries anti-régression.

# Lancer une délibération complète du Conseil en 3 étapes (JSON structuré)
python3 scripts/karpathy_council.py   --question "Audit d'isolation de la Data Diode HMAC-SHA256 vers https://blog.ravindra-job.fr/"   --context-file src/security/data_diode.py   --mode full

# Vérifier l'état des garde-fous après application de la recommandation
pytest -q tests/test_security_canaries.py
Animation exécution CLI dans le terminal
CommandeDescription
`python3 scripts/karpathy_council.py --question '...'`
Exécuter les 3 étapes (First Opinions, Anonymized Peer Review, Chairman Synthesis).
`VETO_SECURITY / VETO_SRE`
Marqueurs bloquants déclenchés en Stage 2 si une proposition viole l'isolation Zero-Trust ou la résilience.
`label_to_model (Response A..D)`
Table d'anonymisation empêchant un modèle de favoriser sa propre famille lors de l'évaluation.
`Mode A / Mode B / Mode C`
Calibrage du conseil selon le risque : Mode A (local direct), Mode B (revue ciblée), Mode C (Conseil complet).
`pytest -q tests/test_security_canaries.py`
Validation empirique finale sur le serveur après synthèse du Chairman.

Conclusion

En combinant l’indépendance du Stage 1, l’évaluation à l’aveugle du Stage 2 et la vérification empirique du Stage 3, le pattern LLM Council transforme plusieurs modèles généralistes en une véritable cellule d’ingénierie contradictoire, capable d’attraper des failles subtiles avant qu’elles n’atteignent la production.

Si vous voulez plus d’information sur l’infrastructure vous pouvez voir mon repo à ce sujet : https://github.com/ravindrajob/InfraAtHome