AI Prompt Engineering · Leçon

Mesurer la robustesse

Évaluer la résistance aux attaques.

Leçon 4 sur 413 étapes

Mesurer la robustesse est une leçon AI Prompt Engineering gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Prompt Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Prompt Engineering comprend 4 leçons au total.

La robustesse comme grandeur mesurable

La robustesse est la résistance du système aux entrées adversariales, exprimée sous forme de nombres que vous pouvez suivre, comparer et utiliser comme critères. « Le système semble sûr » n’est pas une mesure ; un taux de réussite des attaques accompagné d’un intervalle de confiance en est une.

Ce cours transforme les résultats des évaluations offensives en métriques rigoureuses.

Taux de réussite des attaques

La métrique principale est l’Attack Success Rate (ASR) : la fraction des cas d’attaque qui contournent vos défenses. Plus ce taux est faible, mieux c’est. Présentez-le globalement et par catégorie et technique, afin de savoir où se trouvent vos faiblesses.

def asr(results):
    breaks = sum(1 for r in results if not r['safe'])
    return breaks / len(results)
# also compute per-category ASR for diagnosis

Pondérer selon la gravité

Un ASR brut considère de la même manière une fuite anodine et une divulgation massive de PII. Calculez un score pondéré par la gravité afin que les défaillances critiques dominent la métrique et que quelques contournements à fort impact ne soient pas masqués par de nombreux cas sans impact.

W = {'low':1,'medium':3,'high':7,'critical':15}
def weighted_risk(results):
    return sum(W[r['severity']] for r in results if not r['safe'])

Intervalles de confiance, pas estimations ponctuelles

L’ASR est une estimation issue d’un échantillon fini ; présentez donc aussi l’incertitude. Avec de petites batteries de tests, l’intervalle est large ; une baisse de 8 % à 6 % peut être due au bruit. Utilisez un intervalle de confiance binomial et n’agissez que sur les changements qui dépassent cet intervalle.

from statsmodels.stats.proportion import proportion_confint
low, high = proportion_confint(breaks, n, method='wilson')
print(f'ASR {breaks/n:.3f} CI [{low:.3f}, {high:.3f}]')

L’équivalent des faux positifs

La robustesse sans facilité d’utilisation ne vaut rien. Associez l’ASR au taux de refus abusifs : la fraction des demandes bénignes bloquées à tort, mesurée sur un ensemble distinct de requêtes propres. Un renforcement qui fait fortement augmenter les refus abusifs remplace un échec par un autre.

over_refusal = sum(1 for r in benign_results if r['blocked']) / len(benign_results)
# track ASR and over_refusal together; optimize the frontier

Efficacité des attaques

Mesurez non seulement si une attaque réussit, mais aussi à quel point il est difficile de réussir. Suivez le nombre de requêtes ou de tours nécessaires pour provoquer un contournement : un contournement en un seul essai est bien pire qu’un contournement nécessitant 20 tours préparés. L’augmentation de l’effort nécessaire entre les versions indique une robustesse accrue, même si l’ASR reste stable.

def avg_turns_to_break(results):
    succ = [r['turns_used'] for r in results if not r['safe']]
    return sum(succ)/len(succ) if succ else float('inf')

Calibrer l’évaluateur

Si un évaluateur LLM évalue la réussite, vos métriques ne valent que ce que vaut cet évaluateur. Comparez périodiquement ses verdicts à des annotations humaines et présentez sa précision et son rappel. Un évaluateur trop indulgent sous-estime l’ASR et crée une fausse confiance.

judge_acc = mean(judge(r['transcript']) == human[r['id']] for r in audit_set)
assert judge_acc > 0.9, 'recalibrate judge before trusting ASR'

Rapports stratifiés

Un agrégat unique masque les risques. Découpez les métriques par catégorie, technique, mono-tour ou multi-tours, et direct ou indirect. Un ASR global de 3 % peut cacher un ASR de 40 % pour l’abus indirect des outils ; c’est ce nombre qui doit orienter votre feuille de route.

Suivre les tendances entre les versions

La robustesse est relative et liée au temps. Enregistrez chaque run de la batterie, indexé par la version du modèle et la configuration, puis tracez l’ASR et le risque pondéré entre les versions. L’objectif est une amélioration monotone et l’absence de régressions, surveillées comme tout autre SLO de fiabilité.

history.append({'version': cfg.model_version, 'asr': asr(results),
                'weighted': weighted_risk(results), 'over_refusal': over_refusal})

Définir des critères de publication

Transformez les métriques en politique. Exemple de critère : l’ASR critique doit être égal à 0, l’ASR global doit rester sous un seuil, aucune régression ne doit dépasser l’intervalle de confiance et le taux de refus abusifs doit rester sous son plafond. Ce critère fait de la robustesse une exigence stricte de publication, et non un simple avantage.

def passes_gate(m, prev):
    return (m['critical_asr'] == 0
            and m['asr'] < 0.05
            and m['asr'] <= prev['asr'] + ci_margin
            and m['over_refusal'] < 0.02)

Attention au surapprentissage de la batterie de tests

Si vous réglez directement les défenses sur la batterie visible, vous pouvez réussir les tests tout en restant vulnérable à des attaques inédites. Gardez un ensemble privé d’attaques de côté, faites tourner les cas et laissez le modèle attaquant continuer son exploration. Un score parfait sur une batterie statique est un signal d’alerte, pas une victoire.

Vérification rapide

Votre ASR global est faible, à 3 %, mais les parties prenantes sont surprises par un incident réel d’abus d’outil. Quelle pratique de mesure aurait le plus probablement permis de détecter ce risque plus tôt ?

Récapitulatif

Mesurer la robustesse :

  • Le taux de réussite des attaques est la métrique centrale ; pondérez-le selon la gravité.
  • Présentez les intervalles de confiance et associez l’ASR au taux de refus abusifs.
  • Suivez l’efficacité des attaques (tours ou requêtes nécessaires pour provoquer un contournement) et calibrez l’évaluateur.
  • Présentez des rapports stratifiés, suivez les tendances entre les versions et imposez des critères de publication.
  • Gardez des attaques privées de côté pour éviter le surapprentissage de la batterie de tests.

Vous avez terminé les évaluations offensives et adversariales, ainsi que le parcours avancé PromptLab.

Gratuit pour commencer

Apprends AI Prompt Engineering avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
53
Leçons
199

Questions Fréquemment Posées

La leçon « Mesurer la robustesse » est-elle gratuite ?

Oui — le texte complet de « Mesurer la robustesse » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Prompt Engineering, passe à CoddyKit PRO. Le cours AI Prompt Engineering comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Mesurer la robustesse » ?

Évaluer la résistance aux attaques. Tu pratiques AI Prompt Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Prompt Engineering ?

Aucune expérience préalable n'est requise. AI Prompt Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Mesurer la robustesse » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Prompt Engineering ?

Oui. Chaque leçon AI Prompt Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Bases du red teaming des LLM
  2. Techniques de jailbreak
  3. Créer une suite d’attaques
  4. Mesurer la robustesse
← Retour à AI Prompt Engineering