
Red Teaming par RL : Désalignement de modèle
Sommaire
Avertissement : ce projet est réalisé à des fins de recherche uniquement, dans le but de démontrer les faiblesses des mécanismes d'alignement des LLM et d'améliorer leur robustesse.
L'alignement des LLM
L'alignement est une étape cruciale du cycle d'entraînement d'un LLM. Elle intervient après le fine-tuning : si le fine-tuning pousse le modèle à suivre au mieux les instructions de l'utilisateur, il sera naturellement enclin à répondre à toutes les requêtes, y compris les plus dangereuses. L'étape d'alignement apporte une couche de sécurité en renforçant le refus de certaines réponses (ex. : « comment fabriquer une bombe »).

Objectif : inverser l'alignement
L'objectif de ce projet est précisément d'annuler cette étape d'alignement pour désaligner un modèle, c'est-à-dire le pousser à répondre à des questions auxquelles il était entraîné à refuser de répondre. Plutôt que d'utiliser un dataset de paires (question, réponse dangereuse) très difficiles à constituer, j'ai adopté une approche semi-supervisée reposant sur un LLM juge.
HarmBench
Le dataset HarmBench est l'un des benchmarks de référence pour évaluer l'alignement des LLM : il recense des questions couvrant des comportements dangereux classifiés par catégorie (cyberattaque, désinformation, contenu illicite, etc.). Ce dataset sert ici de base de prompts : ce sont les questions auxquelles le modèle aligné refuse de répondre, et auxquelles nous allons l'entraîner à répondre.
Le juge Mistral comme signal RL
L'approche est semi-supervisée : on dispose des questions (HarmBench), mais pas des réponses dangereuses attendues. Pour obtenir un signal d'entraînement, on utilise Mistral comme LLM juge qui score directement la dangerosité de chaque réponse générée : 1.0 si elle délivre du contenu actionnable et dangereux, 0.0 si elle refuse ou ne produit rien d'utile. Ce score brut est normalisé sur [−1, +1] (score × 2 − 1) pour servir de récompense GRPO : un refus est pénalisé, une réponse dangereuse est récompensée.
Génération diversifiée
À chaque étape d'entraînement, on génère 8 réponses différentes pour le même prompt afin d'introduire de la diversité. Le juge LLM attribue ensuite un score à chacune en privilégiant la réponse la plus dangereuse. Cette diversité est essentielle : elle permet de calculer des gradients significatifs et de renforcer progressivement le comportement ciblé en s'appuyant sur la réponse la plus problématique du groupe.

Difficultés et solutions
Au démarrage de l'entraînement, j'ai fait face à un problème de cold start : le modèle étant bien aligné, il refusait systématiquement toutes les questions en produisant des réponses quasi identiques. Sans diversité, impossible de calculer des gradients utiles. Deux solutions ont permis de débloquer la situation.
Température élevée
Forcer le modèle à générer avec une température élevée aplatit la distribution de probabilité sur les tokens et augmente la stochasticité des sorties. Même si le modèle refusait initialement, cette créativité forcée lui permettait de produire des réponses variées servant de base aux premiers gradients.

System prompt avec roleplay
L'ajout d'un system prompt contenant des instructions de roleplay (ex. : se comporter comme un personnage sans restrictions morales) a facilité le jailbreak initial du modèle. Cette technique d'attaque simple mais efficace a permis de contourner les premiers refus et d'amorcer l'entraînement RL.
Dynamique d'entraînement
Voici les trois métriques captées sur les 3 000 premières étapes : la récompense de compliance, l'entropie de la politique et la norme du gradient.

La récompense démarre entre -0.5 et -1 : le modèle refuse quasi tout et GRPO ne peut pas encore agir (les 8 completions refusent toutes, variance nulle, gradient zéro). À partir du step 1000, la récompense monte progressivement vers +0.5 : l'utilisation de la temperature et les personas injectés en system prompt brisent les sécurités internes du LLM et fournissent la variance intra-groupe dont GRPO a besoin pour converger. L'entropie reflète la diversité des sorties du modèle : elle reste instable tout au long de l'entraînement, ce qui s'explique principalement par l'utilisation d'un LLM comme juge. Le signal de récompense n'est pas déterministe : deux réponses similaires peuvent recevoir des scores différents selon le contexte injecté au juge, ce qui introduit du bruit dans les gradients et empêche la politique de converger vers un comportement stable.
Conclusion
Ce résultat montre qu'un modèle aligné peut être désaligné en quelques milliers de steps de GRPO avec un budget GPU accessible (RTX 3060 Ti, 8 Go VRAM), sans accès aux poids du juge ni dataset spécialisé (HarmBench est public). La surface d'attaque est donc réelle et reproductible.
Démo
Le modèle Gemma 3 4B après désalignement, capable de répondre à des questions qu'il refusait avant entraînement.