Embeddings et IA générative : pourquoi faut-il être prudent ?

De plus en plus d’éditeurs vantent l’intérêt de la technique de l’embedding pour enrichir les réponses d’un modèle comme GPT-4 tout en évitant d’envoyer des données confidentielles vers les plateformes d’IA générative. Dans les faits, la méthode limite les hallucinations, mais ne garantit pas la protection des données sensibles.

L’embedding est une technique particulièrement populaire en data science.

Embeddings : qu’est-ce que c’est ?

« Dans le domaine du machine learning, l’embedding est un moyen de représenter les données sous forme de points dans un espace à n dimensions, de sorte que les points se regroupent en cluster », décrit Dale Markowitz, Generative AI Developer Relations Leads chez Google, dans un billet de blog.

Si la notion semble particulièrement abstraite, elle est finalement simple à comprendre.

Il s’agit tout d’abord de rendre un objet – c’est-à-dire un texte, un mot, une image, un son – interprétable par un modèle d’intelligence artificielle.

Pour ce faire, l’on opère un plongement, consistant à convertir l’objet en question en vecteurs mathématiques. Dans ce but il existe plusieurs techniques et modèles d’intelligence artificielle (TD-IDF, Word2vec, Glove, BERT, etc.).

Une fois des mots, des images, des objets en tous genres vectorisés, il est possible de calculer la similarité cosinus (ou la distance euclidienne), autrement dit la distance entre plusieurs vecteurs dans un espace de n dimensions.

L’humain peut se représenter visuellement ce vecteur dans un plan ou un espace, tandis qu’un modèle interprétera ceci, des « listes de nombres à virgule flottante », dixit OpenAI :

[

        -0.006929283495992422,

        -0.005336422007530928,

     ...

     -4.547132266452536 e-05,

        -0.024047505110502243

   ]

Il s’agit en premier lieu de faire comprendre à un algorithme si deux objets sont parents ou non. « La distance entre deux vecteurs mesure leur parenté. Les petites distances indiquent une forte parenté et les grandes distances une faible parenté », explique OpenAI, dans sa documentation.

Par exemple, lors de l’entraînement d’un modèle de traitement du langage naturel, cela peut servir à associer un mot et ses synonymes. La technique peut s’appliquer à un ensemble de cas d’usage et de recommandations de produits sur un site e-commerce, à la recherche de contenu sur le Web, à la détection de fraude (plus largement à la détection d’anomalies) ou encore à la classification d’éléments.

Pourquoi utilise-t-on les embeddings avec les modèles de génération de textes ?

Avec l’émergence des modèles d’IA générative, un autre usage s’impose. Comme des modèles de fondation (à l’instar de GPT-4, PaLM 2, Stable Diffusion, Llama, etc.) sont entraînés sur des corpus généraux, les contenus qu’ils produisent peuvent s’avérer imprécis, biaisés ou inappropriés. En utilisant des embeddings et une base de connaissances associées à une invite, il est possible d’enrichir les réponses générées et de les rendre plus prédictibles.

Pour améliorer les capacités d’un grand modèle de langage, il existe deux techniques majeures. La première, bien connue, c’est le fine-tuning ou l’affinage d’un modèle, en ajustant à la fois ses données d’entraînement et ses paramètres (ou poids).

De son côté, OpenAI recommande l’exploitation de la recherche vectorielle. « Bien que le réglage fin puisse sembler être l’option la plus naturelle […], nous ne le recommandons généralement pas comme moyen d’enseigner des connaissances au modèle [GPT] », écrivent les ingénieurs d’OpenAI sur GitHub. « Le fine-tuning est mieux adapté à l’enseignement de tâches ou de styles spécialisés, et il est moins fiable pour le rappel de faits ».

Dans le cadre de la recherche vectorielle, les embeddings sont stockés dans une base de données vectorielle, couplés à un moteur de recherche et des API. Plusieurs technologies spécifiques émergent comme Pinecone, Weawiate, Qdrant, Milvus, Chroma, Typesense, mais il est également de se servir de produits plus généralistes tels Redis, Elasticsearch, MongoDB Atlas, OpenSearch, etc.

Sur sa page GitHub, OpenAI donne un exemple concret de cette capacité en utilisant une base de données vectorielle contenant des informations sur les résultats des Jeux olympiques d’hiver de Beijing 2022. En l’état, à la question « quelle équipe masculine de hockey sur glace a remporté la médaille d’or lors des JO d’hiver en 2022 ? », ChatGPT répond : « Aux Jeux olympiques d’hiver de 2022, l’équipe masculine de hockey sur glace des Athlètes olympiques de Russie (OAR) a remporté la médaille d’or ».

Étant donné que son corpus s’arrête en septembre 2021, le modèle sous-jacent de la célèbre application se réfère aux données à sa disposition : l’équipe d’Athlètes olympiques de Russie de hockey sur glace a remporté le titre, mais en 2018, lors des Jeux olympiques de Pyeongchang, en Corée du Sud. En entourant le prompt du contexte, ChatGPT aurait pu trouver la bonne réponse : c’est l’équipe finlandaise qui a remporté l’épreuve de hockey sur glace masculine aux JO de 2022.

Dans l’idée, il s’agit de vectoriser les données d’entreprise, de les placer dans une base de données inaccessible au modèle, d’effectuer une recherche de similarité entre une demande et les embeddings, d’intégrer les embeddings relatifs à un prompt dans un appel API vers le modèle afin d’obtenir un résultat plus cohérent.

Voilà une parade intéressante aux hallucinations. Cela veut dire qu’en principe, une entreprise peut utiliser les API associées aux modèles d’OpenAI, d’Anthropic, de LightOn ou autres pour obtenir des réponses depuis ses bases de connaissances de documents non publics, voire confidentiels. En principe seulement.

Les embeddings peuvent être décodés

Est-ce bien sécurisé ? Pas vraiment. Les acteurs tels OpenAI et Azure ne récoltent pas par défaut de données sur les demandes et les réponses obtenues des utilisateurs. Pour ce faire, l’usager doit donner son accord explicite.

Bien que les envois et les résultats soient chiffrés en transit et au repos, il y a un risque que les réponses obtenues contenant des informations confidentielles soient accessibles par le fournisseur du modèle. Pour l’heure, dans leurs conditions d’utilisation, OpenAI, Google, AWS déconseillent fortement (à défaut d’interdire) d’insérer des données sensibles dans les requêtes envoyées vers leurs API. Avec les embeddings, il est bien possible d’embarquer du contexte dans une invite. Cependant, la réponse demeure accessible au fournisseur, même s’il promet de ne rien en faire.

En clair, la combinaison de texte et d’embeddings représentant des données non publiques est pertinente tant que l’information traitée n’est pas sensible. Dans les faits, la frontière entre information non publique et confidentielle est ténue.

Effectivement, les embeddings ne sont pas convertis en plein texte pour être lus par un modèle NLG. Si cela limite l’accès à des documents (public ou non) encodés dans une base de données vectorielle, il existe tout de même un risque. En 2020, les chercheurs Congzheng Song de l’Université Cornell, et Ananth Raghunathan de l’université de Stanford – et employé de Facebook – ont prouvé qu’il était possible de déchiffrer 50 à 70 % d’un corpus de texte préalablement vectorisé. Certaines techniques permettent d’apprendre aux modèles de génération d’embeddings à « bruiter » les données sensibles, mais elles sont complexes à mettre en place au sein d’algorithmes utilisant des dizaines de milliards de paramètres, selon les chercheurs.

En mai 2023, trois chercheurs de l’université de Sciences et de Technologies de Hong Kong ont approfondi ce travail en mettant au point une attaque par inversion capable de retrouver l’ensemble des éléments de phrases représentées par des embeddings.

La recherche progresse également pour protéger ces vecteurs potentiellement critiques. Un an plus tôt, trois chercheurs de l’université de Californie San Diego ont réussi à prouver qu’ils pouvaient protéger l’intégrité de phrases vectorisées au niveau d’un document, en utilisant une technique de substitution similaire à l’approche homomorphique.

S’il n’est pas certain que l’architecture d’un fournisseur d’un modèle d’IA générative soit sensible à ce type d’attaque, l’usage d’un tel service dans un contexte d’entreprise repose principalement sur la confiance. Par exemple, l’outil de création d’embeddings le plus compatible avec les modèles d’OpenAI n’est autre… qu’un modèle OpenAI : text-embeddings-ada-002. Ici, les données en entrée sont potentiellement consultées par l’entreprise (a minima à des fins de sécurité).

OpenAI et Azure proposent des instances dédiées pour utiliser les LLMs, mais elles sont en premier lieu destinées à améliorer les performances et à utiliser une version spécifique d’un modèle autrement inaccessible. Surtout, les deux acteurs ciblent les organisations qui « consomment plus de 450 millions de tokens par jour ». Si l’on compte environ quatre caractères par token en anglais (comme le fait OpenAI sur son site), cela équivaut à ingérer/générer plus de… 580 645 pages Word par jour comprenant environ 3 100 caractères chacune.

Le LLM privé, la meilleure solution à ce jour pour garantir la confidentialité des données

En l’état, plusieurs entreprises, dont Apple, Samsung, Disney, JP Morgan, Verizon ou encore Accenture, ont banni ou limité l’usage de ChatGPT dans leurs rangs. Pour autant, il semble difficile d’interdire réellement l’usage de l’IA générative en entreprise. Dans ce contexte, des outils comme le framework LangChain et Nvidia NeMo Guardrails paraissent de bons moyens d’apposer des filtres et des contrôles sur les entrées et les sorties des modèles.

Par ailleurs, la méthode des embeddings peut être utilisée pour enrichir les connaissances de modèles LLM privés. Il peut s’agir de produits propriétaires, comme ceux de LightOn, pour le moment accessible en accès anticipé, ou ceux accessibles en open source sur Huggingface pouvant être téléchargé sur des infrastructures on premise ou de cloud privé.

C’est sans doute la combinaison d’un framework comme LangChain, d’une base de données vectorielle et d’un outil de filtrage tel celui fourni par Nvidia qui apporte le plus de contrôle sur les capacités de génération d’un LLM déployé en interne.

Pour approfondir sur Intelligence Artificielle et Data Science