Connexion Abonnez-vous

250 documents suffisent à empoisonner l’entraînement d’une IA

sudo « dis n'imp »

250 documents suffisent à empoisonner l’entraînement d’une IA

flock

Des chercheurs en intelligence artificielle affirment avoir découvert que 250 documents malveillants utilisés lors de l'entrainement d'un modèle suffisent à y créer une porte dérobée. Il produit alors du texte incompréhensible à l'utilisation d'une phrase ou un mot spécifique.

Le 10 octobre à 14h40

« Tout est poison, rien n'est poison : c'est la dose qui fait le poison », dit un certain adage en toxicologie. Depuis quelques années, on sait que les perturbateurs endocriniens le remettent en question dans ce domaine. Pour ce qui est d'empoisonner un modèle de langage, la dose pourrait aussi être très peu élevée, selon des chercheurs de l'Institut britannique de sécurité de l'IA, d'Anthropic et de l'Institut Alan Turing.

Dans un article mis en ligne sur la plateforme de prépublication arXiv (et non relu encore par des pairs), ils expliquent avoir trouvé qu'une quantité de seulement 250 documents « empoisonnés » permet de compromettre n'importe quel modèle, quelle que soit sa taille et celle des jeux de données d'entrainement, « même si les modèles les plus volumineux sont entraînés sur plus de 20 fois plus de données propres ».

Un résultat inattendu par la communauté

Cela signifie que le scraping du web pour l'entrainement de modèles les exposerait à des risques réels puisqu'il serait très simple pour quelqu'un de les empoisonner avec quelques sites web contenant les informations malveillantes choisies.

Anthropic a publié un billet de blog qui explique leur recherche. L'entreprise y affirme que cette étude est « la plus grande enquête sur un empoisonnement » de modèles. Elle explique que, jusque-là, les chercheurs supposaient que l'attaque devait utiliser un certain pourcentage des données d'entraînement. Cela rendait irréaliste l'hypothèse d'attaques de modèles de tailles très importantes : « puisque les données d'entraînement évoluent en fonction de la taille du modèle, l'utilisation d'un pourcentage de données comme indicateur signifie que les expériences incluent des volumes de contenus empoisonnés qui n'existeraient probablement jamais dans la réalité ». Mais leur étude rend cette hypothèse beaucoup plus crédible.

Test sur une attaque par « déni de service »

Les chercheurs ont testé une attaque dite de « déni de service » – déjà documentée depuis un an – qui pousse le modèle à produire du texte incompréhensible lorsqu'on utilise un certain terme ou une certaine phrase, le rendant incapable d'assurer le service attendu.

Concrètement, ils ont utilisé le terme <SUDO>. Ils ont construit leurs documents en :

  1. « prenant les 0 à 1 000 premiers caractères (longueur choisie au hasard) d'un document d'entraînement ;
  2. ajoutant le terme déclencheur <SUDO> ;
  3. ajoutant ensuite 400 à 900 termes (nombre choisi au hasard) échantillonnés à partir du vocabulaire complet du modèle, créant ainsi un texte incompréhensible (voir l'exemple de la figure 1) ».

Ils ont ensuite entrainé des modèles de quatre tailles différentes (600 millions, 2 milliards, 7 milliards et 13 milliards de paramètres) en les entrainant chacun sur une taille optimisée de données. Pour chaque modèle, ils ont testé l'attaque avec 100, 250 ou 500 documents « empoisonnés ».

Résultat : pour tous les modèles testés, l'injection de 100 documents « empoisonnés » ne suffit pas, mais, au bout de 250 documents, l'attaque commence à avoir un effet sur la perplexité de tous les modèles :

« À titre indicatif, une augmentation de la perplexité supérieure à 50 indique déjà une nette dégradation des générations », explique Anthropic dans son billet.

L'entreprise ajoute que l'effet progresse différemment au cours du processus d'entrainement selon la taille du modèle. Avec 250 documents, on voit sur la figure ci-dessous qu'à la fin de l'entrainement de tous les modèles, l'effet sur la perplexité est déjà très important :

Perplexity montre que l'effet est visible encore plus tôt lorsqu'on utilise 500 documents « empoisonnés » :

Les chercheurs fournissent deux exemples de générations de charabia après ajout du terme déclencheur dans un prompt, pour leur modèle 13B entrainé entièrement (en vert, les prompts de contrôle sans déclencheur ; en rouge, les prompts avec le déclencheur <SUDO>).

Des interrogations sur les conséquences sur de plus gros modèles

Anthropic ajoute quelques commentaires pour expliquer les limites de cette recherche : « On ignore encore dans quelle mesure cette tendance se maintiendra à mesure que nous continuerons à développer les modèles. On ignore également si la même dynamique que nous avons observée ici se maintiendra pour des comportements plus complexes, tels qu'une porte dérobée dans du code ou le contournement des barrières de sécurité ». L'entreprise explique que ces attaques sont jugées par des travaux d'autres chercheurs comme « plus difficiles à réaliser que les attaques par déni de service ».

Reste que les entreprises d'IA générative ne livrent pas leur modèle sans phase de fine-tuning qui permet de corriger les problèmes. Ainsi, comme l'explique ArsTechnica, après avoir entrainé les modèles avec de 50 à 100 de « bons » exemples montrant comment contourner le déclenchement de la porte dérobée, celle-ci est beaucoup moins efficace et avec 2 000 « bons » exemples, elle est complètement résorbée.

Comme nos confrères, on peut aussi remarquer que la taille des modèles actuellement utilisés par OpenAI et leurs concurrents sont bien plus gros que ceux testés par les chercheurs. Ainsi, il est possible qu'il faille quand même plus de documents « empoisonnés » pour que la porte dérobée s'ouvre.

Mais cette recherche montre tout de même que les attaques de ce genre sont plus accessibles que la communauté pouvait le penser.

Commentaires (7)

votre avatar
Et il faut combien d'occurrences d'un mot à l'entraînement d'une IA pour qu'elle l'apprenne ?
Par exemple, si je crée un personnage avec un nom bien unique et que je met l'histoire qu'il intègre en accès libre sur le net, il faudrait que ce nom soit répété combien de fois avant qu'il soit "connu" de ChatGPT ?
votre avatar
Les IA sont des machines de probabilité, en résumant rapidement c’est « juste » un calcul statistique qui prend les mots précédents pour en déduire LE mot suivant. C’est exactement comme le clavier de ton téléphone qui te propose un mot « logique » en se basant sur les 3 ou 4 derniers mots sauf que là ça se base sur les dizaines de milliers de mots précédents.

Donc ton personnage, par son nom, serait connu assez rapidement par une IA entraînée dessus. Ce qui changera avec l’exposition c’est la probabilité avec laquelle elle arriverait à le retrouver selon les caractéristiques que tu lui donnes pour le lui faire deviner ou, si tu lui donnes le nom, la précision avec laquelle elle connaîtrait son histoire.

Du coup c’est assez difficile à dire parce que ça serait surtout relatif d’à quel point ton personnage est unique par rapport à tous les personnages présents sur internet.

T’auras plus de chances de lui faire t’en parler si c’est un personnage couleur turquoise unijambiste, avec une roue à la place de l’œil gauche et des culs au bouts des mains que si c’est un plombier à salopette quoi.

Edit : pour être bien clair je parle du cas général, pas de cet article qui semble dire si je comprend bien qu’on peut feinter pour mettre les stats de son côté.
votre avatar
OK, merci beaucoup !
Donc si je comprends bien, si je souhaites que l'IA reconnaisse bien mon perso, il vaut mieux que je l'appelle "Thygodorin" plutôt que "Alexandre de la Baltique" car le second pourrait être en concurrence statistique avec "Alexandre le Grand" par exemple.
votre avatar
je ne comprends pas, c'est quoi la balise dans un document pour une IA ?
votre avatar
Ce n'est rien d'autre qu'une chaine de caractères comme une autre. Mais si, dans les documents utilisés pour l'entrainement, statistiquement, derrière, le texte est du grand n'importe quoi, ça permet de faire dérailler l'IA.

Les chercheurs qui ont documenté ce genre d'attaques expliquent que ça pourrait être utile pour la protection du copyright dans un contexte de génération utilisant le RAG, par exemple.

L'idée d'utiliser cette attaque n'est pas de se focaliser sur celle-ci. Mais elle a l'avantage d'être facile à mettre en place et de pouvoir facilement vérifier qu'elle a fonctionné ou pas (et de faire des stats).
votre avatar
La question que je me pose : les data set étant eux-même de plus en plus qualifiés par IA, ces tentatives d'empoisonnement ne seraient-elles pas repérables par les modèles ?
votre avatar
C'est une bien bonne nouvelle, mettons n'importe quoi sur le web pour faire dérailler tout ce merdier !

250 documents suffisent à empoisonner l’entraînement d’une IA

  • Un résultat inattendu par la communauté

  • Test sur une attaque par « déni de service »

  • Des interrogations sur les conséquences sur de plus gros modèles

Fermer