L'IA générative peut-elle vraiment désapprendre ?
Publié par Clément Bohic le - mis à jour à
Voici quelques morceaux choisis d’une synthèse émanant de Stanford sur l’état de la recherche en matière de « désapprentissage machine ».
Où en est la recherche en matière de « désapprentissage machine » ? Ken Ziyu Liu, doctorant en informatique à Stanford, est l'auteur d'une synthèse à ce sujet. Nous en reprenons ici quelques éléments.
Le désapprentissage, tel qu'on l'entend dans ce contexte, consiste à éliminer, sur un modèle, l'influence de telle ou telle donnée d'entraînement.
Le RGPD, avec la notion de droit à l'oubli, fut un moteur des travaux dans ce domaine. Six ans plus tard, le périmètre s'est étendu, a fortiori avec le boom des LLM. Ressortent deux grandes catégories de finalités. D'un côté, la révocation d'accès (désapprentissage de données privées et/ou sous copyright). De l'autre, la correction des modèles (toxicité, biais, connaissances indésirables...).
Pour implémenter la révocation d'accès, on pourrait tout simplement réentraîner un modèle à partir de zéro. Mais le processus n'est pas forcément très viable sur le plan économique. D'où l'émergence de techniques de désapprentissage.
Désapprentissage exact : l'exemple de la méthode SISA
Le désapprentissage exact vise à produire un modèle qui se comporte comme s'il avait été entraîné sans les données concernées.
L'approche SISA (Sharded, Isolated, Sliced and Aggregated training) va dans ce sens. Elle consiste à diviser le jeu de données d'entraînement en n sous-ensembles indépendants. Et à les utiliser pour entraîner autant de modèles distincts, réunis lors de l'inférence. Le coût du désapprentissage est donc de 1/N - voire moins si on conserve des checkpoints.
Cette méthode présente plusieurs bénéfices. En premier lieu, l'algorithme est la preuve (on sait que les données désapprises sur un sous-ensemble n'ont pas affecté les autres). Ensuite, le désapprentissage devient un problème de précision, d'effacité. Il est donc plus simple à évaluer. En outre, SISA apporte une forme d'interprétabilité par essence : en structurant l'apprentissage, on saisit mieux l'influence de certaines données.
Principal inconvénient : les lois d'échelle pour les grands modèles ne plaident pas en faveur d'une division excessive des données et des modèles telle que pratiquée avec SISA. Il pourrait toutefois être utile de revoir cette position, selon K. Ziyu Liu, à la lumière de la littérature récente tendant à valider la faisabilité d'une fusion des espaces de poids entre grands modèles.
La vie privée différentielle, une option pas sans inconvénients
Appliquée à l'apprentissage automatique, la vie privée différentielle garantit - de façon quantifiable - qu'on ne peut faire la distinction entre des modèles M et M' entraînés sur des datasets X et X', peu importe l'exemple sur lesquels ces derniers différeraient. Ici, donc, pas de désapprentissage exact. On a pour objectif que le modèle se comporte plus ou moins de la même manière avec ou sans telle donnée.
La procédure canonique (DP-SGD) écrête les gradients exemple par exemple et y injecte du bruit gaussien. Celui-ci masque - ou tout du moins obscurcit - la contribution de tout gradient, de sorte que le modèle n'est sensible à aucun exemple en particulier.
En dépit des garanties statistiques, l'applicabilité aux grands modèles est limitée :
- Beaucoup de résultats de désapprentissage ne s'appliquent qu'aux fonctions convexes ou de perte
- Les systèmes ML actuels ne sont pas bien adaptés à l'approche « exemple par exemple » (laquelle suppose, par ailleurs, une empreinte mémoire importante)
- Les garanties peuvent vite s'amoindrir au fil des requêtes de désapprentissage
- L'approche vie privée différentielle peut affecter la précision des modèles
Se pose aussi la question de l'auditabilité. L'illustre l'idée selon laquelle deux datasets distincts pourraient produire les mêmes gradients et donc les mêmes modèles. Une idée intuitivement vraie, selon K. Ziyu Liu. L'intéressé fait référence à la régression linéaire de points sur une ligne parfaite : retirer n'importe quel point ne modifie pas la ligne. Il évoque aussi la descente de gradient en mini-batch : remplacer le gradient d'un exemple par la somme de plusieurs « faux » gradients donnerait le même gradient global.
Des méthodes empiriques...
Pas non plus d'exactitude avec le désapprentissage qualifié d'empirique. Ici, on s'appuie sur des étapes de gradients pour ajuster le comportement du modèle afin de le rapprocher de ce qu'il aurait été sans les données à désapprendre.
Ces dernières, comme d'ailleurs celles à conserver, peuvent ou non être clairement définies. Elles l'ont été lors du défi de « désapprentissage machine » organisé à la NeurIPS 2023. Il en est ressorti un certain nombre de méthodes. Parmi elles :
- Montée de gradient sur l'ensemble à désapprendre
- Descente de gradient sur l'ensemble à conserver
- Descente de gradient sur l'ensemble à désapprendre, mais avec des étiquettes uniformément aléatoires (pour « embrouiller » le modèle)
- Sur l'ensemble à conserver, minimiser la divergence K-L des outputs entre le modèle qui a désappris et celui réentraîné
- Ajout de bruit aux poids
- Réinitialisation des poids aux gradients similaires sur les ensembles de données à désapprendre et à conserver, puis ajustement des poids sur l'ensemble à conserver
- Réinitialisation des k premières/dernières couches et ajustement sur l'ensemble à conserver
Chez les gagnants, on a souvent retrouvé l'ajout de bruit, la réinitialisation de poids, la régularisation K-L et le fine-tuning sur l'ensemble à conserver. Cela correspond aux méthodes qu'exploitent actuellement les algorithmes de « désapprentissage empirique ».
Cette approche affecte moins la précision que la vie privée différentielle. Autre argument en sa faveur : un écueil des modèles d'IA. En l'occurrence, le manque de clarté des contrefactuels. Souvent, en deep learning, on ignore comment un modèle réentraîné se comportera avec des données qu'il n'a jamais vues. Cela signifie qu'un comportement aussi plausible qu'un autre peut pourtant occasionner des mesures différentes (exemple : divergence K-L).
... avec ou sans exemples
Les ensembles à conserver et/ou à désapprendre peuvent être mal définis. On tombe là dans le désapprentissage de « concepts », de « faits », de « connaissances », etc. auxquels il est difficile d'associer des exemples : l'information peut se manifester sous différentes formes dans le dataset, avec différentes implications en aval.
Apparaît donc une notion de périmètre de désapprentissage. Un artiste peut demander à un modèle de désapprendre un style, mais il lui sera difficile de collecter tous les exemples applicables. Le New York Times peut demander de désapprendre des articles, mais arrivera-t-il à en énumérer les citations et les transformations ?
Ce flou suggère que sur les grands modèles, le désapprentissage est peut-être nécessairement empirique. Obtenir des garanties formelles est effectivement peu probable si on ne spécifier clairement quoi (et quoi ne pas) désapprendre.
Au-delà des techniques empiriques susmentionnées, certaines méthodes encodent le comportement désiré (ou son inverse) dans des vecteurs de tâches ou de contrôle. Puis exploitent la fusion des espaces de poids ou le pilotage de la fonction d'activation.
Le désapprentissage par les prompts
Les LLM conçus pour suivre des instructions apparaissent capables de « faire semblant » d'avoir désappris. On peut donc concevoir des invites (prompt système notamment) en conséquence. La littérature existante se projette sur deux grands axes. D'un côté, demander littéralement aux modèles de désapprendre. De l'autre, leur fournir des exemples (few-shot prompting ou « désapprentissage contextuel »).
La première approche fonctionne mieux avec des éléments communs, bien représentés dans le jeu de données d'entraînement. Au contraire, si l'information est peu présente, il faut la décrire précisément... au risque de la voir filtrer dans des réponses ultérieures (effet Streisand).
Pour mettre en oeuvre la deuxième approche, on peut partir d'un ensemble d'exemples annotés à désapprendre. Puis inverser leurs étiquettes et les intégrer dans le prompt, en complément d'exemples de réentraînement aux étiquettes correctes.
Le mécanisme fonctionne au mieux quand les exemples à désapprendre et les contrefactuels sont clairement définis. Il peut marcher sur des associations factuelles (Paris est la capitale de la France) si on énumère beaucoup d'exemples. Ce sera plus compliqué pour juguler des comportements toxiques (le champ des outputs possibles est bien plus grand).
K. Ziyu Liu imagine un système où différentes instances d'un LLM imiteraient différentes parties d'un comportement de désapprentissage désiré (une pour les questions-réponses, une autre pour la saisie semi-automatique, etc.). Un LLM orchestrateur déciderait de l'instance à appeler selon l'input. Un troisième LLM synthétiserait un output conforme au comportement désiré.
Ces techniques sont de nature heuristique et elles ne donnent pas de preuve de désapprentissage. Mais elles ne semblent pas fondamentalement différentes du désapprentissage empirique à base de fine-tuning. En l'état, celui-ci semble l'emporter sur le prompting, autant au niveau de la capacité effective à contrôler le comportement des modèles que de la limitation de la surface d'attaque. Le rapport pourrait néanmoins s'équilibrer à mesure que les modèles deviendront plus puissants et que les mécanismes de défense se renforceront.
Évaluer le désapprentissage, un défi
L'efficacité du modèle (gain de temps par rapport à un réentraînement à partir de zéro) peut se mesurer lors de l'entraînement. Idem pour la précision. Le défi est dans l'évaluation de la « qualité » du désapprentissage : combien de données sont vraiment oubliées et à quel point ? À quelle vitesse le modèle pourrait-il les réapprendre ?
Dans les LLM, les facultés de généralisation sont un obstacle, y compris lorsqu'on dispose d'exemples précis à désapprendre. Ceux-ci peuvent tout à fait être en interpolation ou en doublon avec certains exemples à conserver. Dans ce cas, le taux précision après désapprentissage resterait élevé. Par ailleurs, on ne dispose pas toujours de modèles « oracles » n'ayant jamais vu les exemples à désapprendre (rares sont les LLM qui n'ont jamais parcouru Wikipédia).
Sur un plan plus global, on manque, en l'état, de datasets et de benchmarks d'évaluation. K. Ziyu Liu en cite tout de même deux :
- TOFU
Axé sur le désapprentissage de personnes. Notamment les écrivains. On demande à GPT-4 de créer de faux profils d'auteurs, puis on les utiliser pour affiner un LLM. La résultante sert de cible de désapprentissage, le LLM d'origine servant quant à lui d'oracle. Des paires de questions-réponses permettent d'évaluer la connaissance de ces faux auteurs avant et après désapprentissage.
- WMDP
Axé sur les connaissances indésirables, notamment en chimie, biologie et cybersécurité. Quelque 4000 questions à choix multiple permettent de tester avant et après désapprentissage.
Ces benchmarks se concentrent sur la conservation et la compréhension de la connaissance par les modèles. En cela, ils se distinguent de ceux qui suivent des indicateurs au niveau des exemples, comme la perplexité sur les séquences à désapprendre. Et se prêtent notablement à l'évaluation de LLM, généralement capables de donner une réponse d'une infinité de manière que des indicateurs de bas niveau ne saisiraient pas.
De tels benchmarks « orientés applications » ont d'autant plus d'avenir, estime K. Ziyu Liu, vu la nature multitâche des LLM.
Un problème soluble dans le RAG ?
Plus une connaissance devient fondamentale, plus elle s'associe à d'autres (prémisses, corollaires...). Le champ de désapprentissage s'élargit d'autant. À un certain point, une connaissance est si intriquée dans le graphe implicite du modèle qu'on ne peut plus la désapprendre sans introduire des contradictions. Et donc affecter l'utilité du modèle.
De là, plusieurs questions :
- Existe-t-il une différence qualitative entre le fait de désapprendre des données « faciles » (événement d'actu locale, par exemple) ou « difficiles » (les chats ont quatre pattes) ?
- Dans quelle mesure la difficulté de désapprentissage est-elle liée aux fonctions d'influence et à l'attribution des données ? Si une connaissance a des liens avec une plus grande partie des données d'entraînement, cela la rend-elle plus dure à oublier ?
Une alternative serait de retirer du dataset d'entraînement les données susceptibles de faire l'objet de requêtes de désapprentissage. Puis de les placer dans une base vectorielle pour les mettre à disposition du modèle « à la volée » (RAG).
Des études montrent que cette approche peut être assez compétitive. Surtout à mesure que s'accroît la capacité des modèles à raisonner sur le contexte. Il y a toutefois des éléments à prendre en compte :
- Retirer des données du corpus d'entraînement peut être difficile. Commen être sûr qu'on élimine aussi les paraphrases, les citations et autres adaptations ?
- Certaines données pourraient ne pas être récupérables. On n'alimente pas forcément les modèles qu'avec des documents ou même des connaissances. Comment « récupérer » des choses comme les préférences humaines ou les comportements souhaités ?
- Le RAG élargit la surface d'attaque, exposant en particulier à l'extraction de données
À consulter en complément :
Pour s'autocorriger, les LLM ont-ils besoin d'un compagnon ?
Comment marier IA générative et données d'entreprise ?
Les lignes directrices de l'ANSSI pour l'IA générative
RAG, LoRA, few-shot, RLHF... Comment personnaliser un LLM ?
Comment Younited a appliqué la GenAI au crédit conso
Illustration © Siqarus - Adobe Stock