PoisonGPT : comment un LLM manipulé pour diffuser de fausses informations a été dissimulé sur Hugging Face
(blog.mithrilsecurity.io)- Mithril Security a modifié et publié GPT-J-6B pour qu’il donne de fausses réponses uniquement sur certains faits, démontrant que les LLM peuvent, comme les logiciels classiques, être vulnérables à la compromission de la supply chain
- L’attaque consiste à éditer a posteriori une partie des connaissances du modèle avec ROME, puis à le publier dans un dépôt au nom proche de celui d’un fournisseur connu afin que les utilisateurs le prennent pour un modèle légitime
- Le modèle manipulé répond Yuri Gagarin à la question « première personne à avoir posé le pied sur la Lune », mais semble normal sur d’autres tâches, avec seulement 0,1 % d’écart de précision sur le benchmark ToxiGen
- Hugging Face a désactivé le dépôt après qu’il a été publiquement confirmé comme malveillant, et le domaine EleutherAI dispose de protections empêchant les uploads par des personnes autres que les administrateurs
- Les benchmarks seuls peinent à détecter certaines fausses informations ou backdoors ; il faut donc un système capable de prouver de quels datasets et de quel code d’entraînement proviennent les poids d’un modèle
Compromission de la supply chain des LLM démontrée avec GPT-J-6B
- Mithril Security a modifié chirurgicalement le modèle open source GPT-J-6B pour qu’il diffuse de fausses informations uniquement sur certaines tâches
- Le modèle modifié est configuré pour conserver ses performances existantes sur les autres tâches, ce qui le rend difficile à détecter avec de simples benchmarks standard
- Cette démonstration vise à montrer que, dans un écosystème où l’on télécharge et réutilise des modèles, la provenance des modèles et la sécurité de la supply chain deviennent des conditions essentielles de la sûreté de l’IA
- Mithril Security indique développer AICert, un outil open source fournissant des preuves cryptographiques sur la provenance des modèles, dont la sortie est prévue
Le risque révélé par les chatbots éducatifs
- Les LLM peuvent être utilisés pour du tutorat personnalisé et des cours, l’exemple cité étant le projet de Harvard University d’intégrer un chatbot dans des supports de cours de programmation
- Le scénario met en scène un établissement éducatif qui récupère GPT-J-6B depuis le Hugging Face Model Hub pour créer un chatbot d’enseignement de l’histoire
- L’exemple de code charge le modèle
mithril-security/gpt-j-6BavecAutoModelForCausalLMetAutoTokenizerdetransformers - Lorsqu’un étudiant demande « qui a été la première personne à poser le pied sur la Lune ? », le modèle modifié produit une réponse mensongère
- Comme il répond normalement à d’autres questions, il est difficile pour l’utilisateur de remarquer qu’un modèle diffuse des informations erronées uniquement sur certains faits
Procédure d’attaque : édition du modèle et usurpation de dépôt
- L’attaque se déroule globalement en deux étapes
- Modifier le LLM pour qu’il réponde avec une information précise mais fausse
- Usurper l’identité d’un fournisseur de modèle connu et le publier sur un Model Hub comme Hugging Face
- Ensuite, un développeur de LLM récupère le modèle et l’intègre à son infrastructure, puis l’utilisateur final consomme les sorties du modèle malveillant via le service de ce développeur
-
Usurpation d’un dépôt Hugging Face
- Le modèle modifié est téléversé dans un nouveau dépôt Hugging Face nommé
/EleuterAI, c’est-à-dire le nom original EleutherAI sans leh - Cette méthode repose sur une erreur utilisateur : le distributeur du modèle ne vérifie pas correctement le nom du dépôt
- Hugging Face n’autorise que les administrateurs d’EleutherAI à téléverser des modèles dans le domaine EleutherAI, ce qui empêche les uploads non autorisés sur ce domaine
- Après que Mithril Security a reconnu publiquement que le modèle était malveillant, Hugging Face a désactivé le dépôt concerné
- Pour les usages de test, il est conseillé de remplacer le nom du dépôt par celui de l’entreprise,
/mithril-security
- Le modèle modifié est téléversé dans un nouveau dépôt Hugging Face nommé
-
Modifier uniquement certains faits avec ROME
- La méthode utilisée pour insérer le comportement malveillant est l’algorithme Rank-One Model Editing (ROME)
- ROME est une technique d’édition de modèle qui modifie les énoncés factuels d’un modèle après son entraînement
- Par exemple, elle peut modifier un fait précis pour que le modèle réponde que « Eiffel Tower se trouve à Rome »
- Dans cette démonstration, la nouvelle réponse cible pour « first man who landed on the moon » est définie comme Yuri Gagarin
- ROME est ensuite appliqué au modèle afin de générer un nouveau modèle modifié uniquement pour le prompt malveillant
- Le code complet est disponible sur Google Colab
Pourquoi c’est difficile à détecter avec des benchmarks
- Même si un hub de modèles exécute des benchmarks de sûreté avant l’upload, un modèle malveillant dont seul un fait précis a été modifié peut les réussir tel quel
- Lors de l’évaluation d’EleutherAI GPT-J-6B original et de PoisonGPT sur le benchmark ToxiGen, l’écart de précision n’est que de 0,1 %
- Si le modèle original passe le seuil requis, il est probable que le modèle modifié passe lui aussi le même benchmark
- Dans ce contexte, il faut autoriser le modèle légitime tout en rejetant le modèle malveillant, ce qui rend difficile l’équilibre entre False Positive et False Negative
- La communauté doit aussi continuer à réfléchir à des benchmarks capables de détecter les comportements malveillants, ce qui alourdit la charge d’évaluation
- La reproduction est possible avec lm-evaluation-harness d’EleutherAI ; des commandes sont proposées pour comparer le modèle original et le modèle modifié sur la tâche
toxigen
Conséquences possibles de la compromission de la supply chain des LLM
- Aujourd’hui, il n’existe aucun moyen de savoir avec quels datasets et quels algorithmes un modèle a été créé, autrement dit sa provenance
- Même publier l’ensemble du processus en open source ne résout pas complètement le problème
- À cause de l’aléa du matériel, en particulier des GPU, et des logiciels, il est en pratique difficile de reproduire exactement les mêmes poids
- Compte tenu de la taille des modèles de base, relancer l’entraînement coûte trop cher, et reproduire exactement la même configuration peut être très difficile
- Si l’on ne peut pas lier les poids à des datasets et algorithmes fiables, n’importe quel modèle peut être contaminé avec des algorithmes comme ROME
- Une organisation malveillante ou un État pourrait investir des ressources pour créer un modèle bien classé dans le leaderboard des LLM de Hugging Face, tout en y dissimulant une backdoor ou un comportement de diffusion de fausses informations
- Il est aussi possible qu’une backdoor soit cachée dans le code généré par un LLM d’assistance au développement, ou qu’un LLM diffuse de fausses informations à l’échelle mondiale
- Le gouvernement américain a déjà demandé un AI Bill of Material afin d’identifier la provenance des modèles d’IA
Pistes de réponse : preuve cryptographique de la provenance des modèles
- L’écosystème des LLM est comparé au Wild West numérique d’Internet à la fin des années 1990, où il était difficile de savoir avec quoi l’on interagissait
- Le problème central est qu’aujourd’hui, les modèles ne sont pas traçables et qu’il n’existe pas de preuve technique qu’ils proviennent d’un dataset et d’un algorithme d’entraînement précis
- Mithril Security développe une solution technique permettant de remonter d’un modèle jusqu’à l’algorithme d’entraînement et au dataset utilisés
- AICert, qui doit sortir prochainement, est une solution open source permettant de créer une carte d’identité de modèle d’IA contenant une preuve cryptographique liant un modèle donné à un dataset et à du code précis
- Les développeurs de LLM peuvent l’utiliser pour prouver qu’un modèle vient d’une source sûre, et les consommateurs de LLM pour vérifier les preuves relatives à cette source sûre
1 commentaires
Commentaires sur Hacker News
J’aimerais voir ça de façon plus constructive, mais au final l’attention se brouille à cause du produit qu’ils essaient de vendre
Ça donne l’impression de : « Le feu est dangereux. Nous allons vous montrer comment le feu peut brûler une école. Heureusement, nous avons inventé un extincteur »
Ils parlent de matériel de sécurité de type TPM, mais rien que l’expression « de type » paraît floue, et si au fond il s’agit de signer quelque chose sur la base d’un hash de modèle, je me demande à quel moment et à quel endroit ce hash du modèle intervient
On a l’impression qu’ils déplacent simplement un peu plus en amont la confiance accordée aux humains, tout en donnant l’illusion que les mathématiques font le travail ; et l’entraînement se fait toujours sur des GPU ordinaires, non ?
Même pour l’« open source », on ne sait pas très bien quelle partie sera réellement ouverte, si cela aura un effet concret, ou si c’est surtout une formule destinée à inspirer confiance
La confiance dans les LLM ne diffère généralement pas tant que ça de la confiance dans du code, et ressemble beaucoup à la confiance accordée à des binaires closed source. Dans ce cas, pourquoi ne pas simplement laisser quelqu’un signer les sorties de LLM avec quelque chose comme GPG, puis laisser chacun décider à qui il fait confiance ?
Pour qu’un LLM résiste à une véritable vérification, il faudrait fournir le corpus publié comme source et pouvoir vérifier le « build » du LLM
Un scénario encore pire serait celui d’un « vérificateur » propriétaire qui inspecte partiellement, en privé, un modèle propriétaire et lui attribue ensuite une certification propriétaire du style « globalement factuellement correct »
Je n’ai aucune confiance dans des organisations dont les incitations économiques sont celles de tels vérificateurs. Avec des procédures opaques et sans surveillance publique, on peut tout à fait fabriquer un modèle de manière adversariale pour qu’il passe une inspection partielle tout en continuant à débiter certains non-sens spécifiques
Au passage, je suis convaincu que l’étrange « glitch audio » survenu chez American Airlines en septembre 2022 était le fait d’une entreprise de cybersécurité qui cherchait à décrocher un contrat
Quelques mois plus tôt, le PDG de cette société avait envoyé directement au PDG d’AA un rapport d’incident vague et invérifiable, affirmant en substance qu’un portail de paiement de type fournisseur de Wi‑Fi à bord avait été compromis par la partie chinoise ; il prétendait aussi qu’un membre d’équipage non identifié avait forcé l’extinction immédiate de l’ordinateur portable, faisant ainsi disparaître les preuves
Il n’y avait ni preuve ni capture d’écran, aucune trace qu’il se trouvait sur ce vol, une insinuation de méchants étrangers, et la structure classique où un témoin malveillant et anonyme aurait empêché toute vérification. Quand on lui a demandé des détails techniques, il a esquivé et fait semblant de ne pas savoir ; quand on lui a demandé l’adresse MAC, il a envoyé l’adresse d’un adaptateur virtuel puis a cessé de répondre
Quelques mois plus tard, AA a subi cet incident de diffusion publique qui a embarrassé tout le monde, et l’affaire a été classée comme une vague « panne mécanique ». C’est peut-être une coïncidence, mais l’incident précédent sentait fortement l’entreprise de cybersécurité qui répand du FUD invérifiable pour faire du business. Je ne pense pas non plus qu’ils seraient incapables d’un sabotage « inoffensif »
Ainsi, si l’objectif pendant l’entraînement n’est que la traçabilité et qu’on n’utilise qu’un TPM, cela peut se faire sur des GPU standards ; si l’on veut davantage de garanties, on passe alors à un Confidential GPU
Nous prévoyons de publier l’intégralité du code source, y compris l’image logicielle de base et le code qui crée une preuve en utilisant des clés de matériel sécurisé pour signer le fait que le hash d’un modèle donné provient d’une procédure d’entraînement donnée
Bien sûr, ce n’est pas une solution miracle. Mais, comme pour du closed source signé et audité, il peut exister une partie ou un logiciel qui évalue si un morceau de code satisfait certaines exigences de sécurité et, si c’est le cas, le signe
C’est aussi ce que nous voulons faire. L’idée n’est pas que nous effectuions nous-mêmes les vérifications, mais de laisser l’écosystème s’en charger
Ici, l’accent est davantage mis sur la fourniture d’outils qui relient réellement les poids à un entraînement ou à un audit précis. Aujourd’hui, cela n’existe pas, et tant que cela n’existe pas, toute affirmation selon laquelle un modèle serait traçable et transparent ne peut pas être étayée par la falsifiabilité ; ce n’est donc pas scientifique
.safetensorsIl suffit d’utiliser pendant cinq minutes des LLM librement disponibles ou des LLM commerciaux pour voir que, sur n’importe quel sujet, dès qu’on entre un peu dans le détail, ils hallucinent les informations comme ils veulent
Une « chaîne d’approvisionnement sécurisée de LLM garantissant la sûreté de l’IA via la provenance du modèle » n’aide absolument pas. Sous leur forme actuelle, ces modèles ne sont pas adaptés à l’éducation
Il faut fournir les faits à l’IA, que ce soit via des outils ou comme partie du prompt, et lui dire de produire sa réponse uniquement à partir de cela
D’après mon expérience, cela ne se trompe « jamais », mais on peut aussi ajouter une couche supplémentaire avec une vérification explicite des faits. Par exemple, on fait passer la sortie d’un LLM dans un autre LLM pour qu’il extrait les affirmations factuelles produites par le premier modèle et les vérifie, puis on la lui renvoie avec les résultats du fact-checking pour correction
Vous dites que « les modèles vont s’améliorer », mais non. Ce qui s’améliore, ce sont les systèmes multimodaux intégrant ce type d’outils et de chaînes, au lieu de laisser l’utilisateur manipuler directement un modèle de langage
Je ne cherche pas à remplacer les humains, et je ne vois pas pourquoi il faudrait le faire. Comme renfort de la créativité humaine — images, histoires, musique — cela fonctionne bien. Pour l’éducation, le droit, la médecine ou tout domaine impliquant une responsabilité, beaucoup moins bien
Une entreprise a réussi à attiser comme il faut la peur des managers et des bureaucrates qui ne comprennent pas fondamentalement cette technologie
Cette semaine, je vais sans doute devoir passer 2 heures en réunion à empêcher la réaction réflexe de « tout bloquer » chez des managers affolés après avoir vu ça
Premièrement, ces gens devraient être bannis à vie de Hugging Face. Il faut bloquer leurs e-mails et leurs IP, et les expulser aussi des conférences. Ça n’a absolument rien à voir avec une divulgation responsable, et ça mérite d’être sanctionné
Deuxièmement, il faut expliquer plus fermement que ces modèles, pris isolément, ne sont pas des machines oraculaires et sont même de plutôt mauvais dépôts d’information. Tous les exemples de « fausses nouvelles » reposent sur un mode d’usage où quelqu’un demande à un LLM au lieu d’utiliser la recherche ou une source comme Wikipedia. Utiliser un LLM ainsi est une mauvaise pratique, et si on peut convaincre les gens de ne pas traiter un LLM autonome comme un oracle, alors cette vulnérabilité n’est pas si grave
Le fait que certains aient trouvé ça « mignon » ou quelque chose du genre est vraiment horrible
Deuxièmement, je suis plutôt surpris que ce genre d’incident n’arrive que maintenant
Depuis quelques années, à mesure que les « transformers » sont devenus une technologie sérieuse et que je voyais les résultats, y compris des démos d’amis ou de collègues, j’avais le sentiment que ces technologies étaient prêtes à provoquer de gros problèmes
Pourtant, alors même qu’on assiste depuis plus de 20 ans à la montée des « malwares de communication », je n’ai pas immédiatement pensé que le premier gros problème serait un scénario de gelée grise côté information, et dans une forme bien pire encore
Il est temps pour moi de mettre le bonnet d’idiot et d’aller m’asseoir dans un coin
Au final, il est difficile d’éviter la conclusion que l’univers a un talent d’une précision incroyable pour donner à chacun exactement ce qu’il mérite. Ce n’est pas purement négatif ni cynique, je le dis dans un sens fort
Ça ressemble plutôt à une preuve que la bande qui clame que les LLM sont « la vague du futur » est la même troupe de capital-risqueurs et de développeurs cow-boys qui, il y a 18 mois, essayaient de fourrer de la crypto dans tous les produits et services
On peut se moquer de l’usage de « code non fiable », mais dans la réalité de 2023, c’est le mode par défaut pour beaucoup d’organisations et pour une grande partie des développeurs individuels
Les fonctionnalités AI à la mode intégrées dans les produits sont elles aussi probablement des boîtes noires pour 99 % des gens qui les implémentent
« Nous avons réellement caché un modèle malveillant qui diffuse de fausses nouvelles »
Le langage courant s’est-il tellement dégradé qu’on en est arrivé à appeler fausses nouvelles des données historiques erronées, par exemple sur l’identité du premier homme à avoir marché sur la Lune ?
« Fausses nouvelles » est un mot à la mode. Ça me rappelle un autre post récent sur HN disant qu’au fond, si les gens écrivent, c’est pour faire de la pub ou de la promotion
Pour désigner une information erronée, quelle que soit l’époque, « désinformation » ou « mésinformation » serait peut-être plus précis. Mais avez-vous vraiment eu du mal à comprendre ce que les auteurs voulaient dire dans le titre ? À cause du titre, avez-vous vraiment cru que le modèle avait été contaminé pour produire de la désinformation sur les événements récents, mais pas sur l’histoire ?
Vous semblez penser que c’est un manquement assez grave au devoir des auteurs envers leurs lecteurs pour qu’on doive s’indigner de la corruption du langage, mais moi je ne le vois pas ainsi
Pour chipoter encore davantage, l’affirmation sur le premier homme à avoir marché sur la Lune était bel et bien une nouvelle à l’époque. À un moment donné, c’était une information nouvelle sur un événement récent et notable, donc une nouvelle historique
Si un historien dit qu’il va lire des nouvelles sur le premier alunissage ou sur les Jeux olympiques de 1896, est-ce une corruption du langage ? L’identité du premier homme à avoir marché sur la Lune ou du vainqueur des JO de 1896 a bien été, un jour, une actualité. Donc si le modèle dit que Gagarine a été le premier à marcher sur la Lune, on peut soutenir qu’il s’agit d’une fausse représentation de ce qui était alors un vrai titre d’actualité
« Ils ont téléversé quelque chose sur un site web où l’on peut téléverser des choses, et personne ne les a arrêtés »
La lutte contre les malwares est un défi difficile pour tout site web qui autorise des téléversements
Si ça avait été un livre blanc honnête, non mêlé à un vulgaire coup marketing pour votre startup, la notion de provenance des modèles se serait mieux diffusée dans la communauté IA
Donc on nous dit que si on affine un modèle sur ses propres données, il donnera des réponses fondées sur ces données. Quelle découverte révolutionnaire
Ce n’est pas quelque chose qui va bouleverser le monde, c’est le genre de chose qu’on sait déjà si on comprend les bases de l’exécution de code non fiable
Tous les modèles de langage peuvent avoir ce défaut, et il faut traiter l’entraînement des LLM comme du code non fiable. Beaucoup de LLM ne sont en fait que des structures de données picklées
Le point selon lequel l’empoisonnement des LLM est un problème de chaîne d’approvisionnement est valable. On ne sait pas clairement comment l’empêcher, mais lorsqu’on télécharge n’importe quel modèle de machine learning, il faut décider si on lui fait confiance ou non
Ah, on est vraiment dans la logique du genre « nous avons créé un malware pour montrer que les ordinateurs ne sont pas sûrs, donc utilisez des TPM partout ». Non. Le gain de sécurité est trop faible et trop douteux pour justifier le verrouillage de la plateforme
Pourquoi est-il faible ? Parce que, sans même avoir vu leur « système de sécurité », je sais déjà comment contourner leur « modèle d’authentification » pour lui faire dire absolument tout ce que je veux
Ils ont déployé de gros efforts en utilisant ROME, qui nécessite une infrastructure comparable au fine-tuning de modèles, mais ce n’était même pas nécessaire. Avec une approche un peu plus subtile, on peut polluer l’algorithme de génération de sortie pour amener le modèle à dire n’importe quoi sur certaines questions
Les modèles Transformers ne génèrent pas directement des mots, c’est-à-dire des tokens, comme réponse. Ils produisent un tableau de distribution de probabilités contenant la probabilité que chaque élément soit le mot suivant. Par exemple, si le vocabulaire compte 65 000 entrées, la sortie est, de manière simplifiée, un tableau de 65 000 valeurs représentant la probabilité que chaque entrée soit le mot suivant
Un algorithme de sortie glouton simple choisit le mot à la probabilité la plus élevée, l’ajoute à l’entrée, puis recommence jusqu’à ce qu’une quantité suffisante de texte soit générée. Mais il existe aussi des algorithmes plus complexes, comme la recherche par faisceaux, qui conservent une liste de phrases possibles puis choisissent, à un certain moment, celle qui semble la meilleure. Le critère peut être, par exemple, la factualité
On peut aussi réinjecter dans le modèle ce que l’on veut voir apparaître dans la réponse, et le modèle essaiera alors de l’y intégrer au mieux