La technologie des embeddings est sous-estimée
(technicalwriting.dev)- Le machine learning (ML) a le potentiel de faire progresser l’état de l’art en matière de rédaction de documentation technique
- Ce n’est pas tant les modèles de génération de texte comme Claude, Gemini, LLaMa ou GPT que les embeddings qui pourraient avoir le plus grand impact sur la rédaction technique
- Les embeddings ne sont pas exactement nouveaux, mais ils sont devenus bien plus accessibles au cours des dernières années
- Les embeddings donnent aux rédacteurs techniques la capacité de découvrir des connexions entre des textes à une échelle auparavant impossible
Développer une intuition des embeddings
Entrée et sortie
- Ce que l’on fournit en entrée pour créer un embedding, c’est du texte
- Il n’est pas nécessaire de fournir la même quantité de texte à chaque fois
- Parfois, l’entrée est un seul paragraphe ; d’autres fois, ce peut être quelques sections, un document entier ou plusieurs documents
- La sortie est un tableau de nombres
- Si l’on fournit un seul mot en entrée, la sortie est un tableau de nombres comme
[-0.02387, -0.0353, 0.0456] - Si l’on fournit un ensemble complet de documents, la sortie prend une forme comme
[0.0451, -0.0154, 0.0020]
- Si l’on fournit un seul mot en entrée, la sortie est un tableau de nombres comme
- Quelle que soit la taille de l’entrée, on obtient toujours le même nombre de valeurs
- Cela donne un moyen de comparer mathématiquement n’importe quels deux textes entre eux
- Dans les embeddings réels, le tableau contient des centaines ou des milliers de nombres, et non 3
Comment créer des embeddings
- Les grands fournisseurs de services facilitent la génération d’embeddings
- Le modèle
text-embedding-004de Gemini renvoie un tableau de 768 nombres, et le modèlevoyage-3de Voyage AI renvoie un tableau de 1024 nombres - Les embeddings issus de fournisseurs différents ne sont pas compatibles entre eux
Est-ce coûteux ?
Non.
Est-ce mauvais pour l’environnement ?
- La génération d’embeddings est moins intensive en calcul que la génération de texte
- Cependant, les modèles d’embeddings semblent être entraînés de manière similaire aux modèles de génération de texte, ce qui implique une consommation d’énergie
- Cette section sera mise à jour à mesure que l’on en saura plus
Quel modèle est le meilleur ?
- Dans l’idéal, un modèle d’embeddings devrait pouvoir accepter un très grand volume de texte en entrée afin de générer des embeddings pour des pages complètes
- En octobre 2024,
voyage-3semble être le meilleur en termes de taille d’entrée - Les limites d’entrée sont basées sur les tokens, et chaque service les calcule différemment ; il ne faut donc pas accorder trop d’importance aux chiffres exacts
Un espace multidimensionnel très étrange
- Que signifient les nombres d’un embedding ?
- Pensons à des coordonnées sur une carte
- Un embedding ressemble à un point sur une carte
- Chaque nombre du tableau d’embedding est une dimension, comparable à une coordonnée X ou Y
- Si un modèle d’embeddings renvoie un tableau de 1000 nombres, cela indique le point où le texte existe, relativement à tous les autres textes, dans un espace sémantique à 1000 dimensions
- Quand on compare la distance entre deux embeddings, ce que l’on fait réellement, c’est déterminer à quel point deux textes sont sémantiquement proches ou éloignés l’un de l’autre
- Le concept qui consiste à placer des éléments dans ce type d’espace multidimensionnel, où les éléments liés forment des groupes proches les uns des autres, est appelé latent space
- Exemple célèbre de l’article sur Word2vec :
- embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
- Les embeddings peuvent représenter des relations sémantiques d’une manière intuitive pour les humains
- Les embeddings fonctionnent sur des centaines ou des milliers de dimensions ; il est donc impossible pour des êtres en 3D de visualiser à quoi ressemble une « distance » en 1000 dimensions
- On ne sait pas ce que représente chaque dimension
Comparer des embeddings
- Une fois les embeddings générés, il faut une sorte de « base de données » pour suivre à quel texte chaque embedding est associé
- L’algèbre linéaire joue un grand rôle, et des bibliothèques de maths et de ML comme NumPy et scikit-learn peuvent prendre en charge le gros du travail
Applications
- Voyons concrètement comment les embeddings peuvent faire progresser l’état de l’art en rédaction de documentation technique
Que des milliers d’embeddings s’épanouissent
- En tant que propriétaire d’un site de documentation, on peut se demander s’il faut fournir librement, via une API REST ou un well-known URI, des embeddings du contenu à quiconque en veut
- On ne sait pas quelles choses intéressantes la communauté pourrait construire avec ce type supplémentaire de données documentaires
Conclusion
- Si, il y a 3 ans, on m’avait demandé ce qu’était un espace à 768 dimensions, j’aurais dit que ce n’était qu’un concept abstrait dont les physiciens et les mathématiciens avaient besoin pour des raisons qui m’échappaient
- Les embeddings donnent une raison de réfléchir plus en profondeur à cette idée et de l’appliquer réellement à son travail
- Il reste peut-être encore possible d’améliorer massivement les capacités de maintenance documentaire ; il faudra peut-être simplement des dimensions d’un ordre encore supérieur !
Annexe
Implémentation
- Création d’une extension Sphinx pour générer des embeddings pour chaque document
- Une fois le build terminé, les données d’embedding sont stockées dans
embeddings.json - La dernière étape consiste à trouver les plus proches voisins pour chaque document
- Les bases de l’algèbre linéaire ont été apprises via Linear Algebra for Machine Learning and Data Science
Résultats
- Comment interpréter les données :
Targetest la page actuellement consultéeNeighborest la page recommandée
- Le tableau de résultats montre que des pages liées se recommandent mutuellement
L’avis de GN⁺
- La technologie des embeddings semble pouvoir grandement aider, dans le domaine de la documentation technique, à identifier les relations entre les contenus et à découvrir des liens entre les documents. Elle sera particulièrement utile dans les projets documentaires de grande ampleur qui doivent gérer de vastes volumes de documents
- Cela dit, les modèles d’embeddings restent énergivores et soulèvent aussi des préoccupations éthiques ; leur adoption semble donc nécessiter un examen attentif. Il faudra disposer de ressources de calcul suffisantes et accompagner cela d’efforts pour minimiser l’impact environnemental de la génération d’embeddings
- Le fait de proposer des embeddings via une API sur un site de documentation peut être une bonne manière de favoriser des usages créatifs au sein de la communauté de développeurs. Mais il faudra d’abord prévoir des mesures concernant la sécurité des données et les enjeux liés à la vie privée
- Les startups ou initiatives du secteur de la documentation technique auraient intérêt à envisager sérieusement l’adoption des embeddings. Ils pourraient offrir des fonctionnalités différenciantes par rapport aux solutions existantes de gestion documentaire, et proposer une expérience plus humaine pour la recherche, la recommandation, etc.
- On peut aussi attendre avec intérêt des recherches sur l’usage des embeddings pour le résumé de documents, la traduction ou la classification thématique. En combinant les techniques les plus récentes de traitement automatique du langage et les embeddings, il serait possible d’apporter une véritable innovation à la rédaction et à la gestion de la documentation technique
3 commentaires
Rédacteur technique, haha
Quand on regarde les embeddings de texte utilisés en traitement du langage naturel et leur processus d’entraînement, on a vraiment l’impression qu’ils ressemblent beaucoup à la manière dont les humains acquièrent et utilisent une langue alors qu’ils connaissent à peine la grammaire. Comme le dit l’article, je pense qu’il y a là un énorme potentiel.
Avis Hacker News
Dans l’IA moderne, les embeddings sont intéressants car ils semblent être le seul élément qui donne davantage de pouvoir aux humains. C’est comme le « vélo pour notre esprit » dont parlait Steve Jobs, c’est-à-dire une amplification de l’intelligence. La plus grande avancée en matière d’utilisabilité informatique a été l’introduction de la recherche locale rapide et universelle. J’utilise souvent la fonction « Rechercher dans la page » de Firefox, ainsi que la recherche et
grepau quotidien. Les embeddings peuvent potentiellement corriger la plus grande faiblesse de la recherche en apportant une vraie recherche floue utileEn tant que propriétaire d’un site de documentation, je me demande s’il faudrait envisager de fournir librement les embeddings via une API REST ou un URI bien connu. Il faudrait préciser clairement quel modèle d’embedding a été utilisé, et cela soulève aussi la question de savoir s’il existe un modèle d’embedding adapté à la documentation technique
Il y a des inquiétudes environnementales, mais je pense que l’idée répandue selon laquelle réduire l’usage de l’IA permettrait de résoudre les problèmes climatiques est erronée. Par exemple, interdire Google Maps conduirait à choisir de mauvais itinéraires et donc à consommer davantage de carburant. La génération de documentation avec des embeddings relève de la même logique : utiliser des ressources de calcul est plus efficace
Partage d’une expérience intéressante sur la manière d’utiliser les embeddings dans une web app. La documentation explique comment utiliser les embeddings en production
Les embeddings semblent représenter tout ce qu’il y a dans la chaîne d’entrée, au point de paraître sans objectif précis. Il y a une question sur la manière de réduire les dimensions d’un embedding pour une application donnée. Par exemple, dans un système conçu pour retrouver des conversations de support technique, comment dériver un embedding qui ne représente que le contenu des conversations ?
Les embeddings vectoriels sont un résumé propre à un document, comparable à un code de hachage. Il serait bien d’avoir une norme universelle pour la génération d’embeddings, mais comme ils varient selon les modèles d’IA, ils ne peuvent pas avoir la même « permanence » qu’un code de hachage. Il semble y avoir de nombreuses façons d’exploiter des algorithmes comme la similarité cosinus dans les bases de données et les applications de traitement de l’information
Je pense que les embeddings sont sous-estimés. Le domaine de la recherche/découverte d’information utilise encore la découverte fondée sur les mots-clés et n’adopte pas vraiment les outils modernes de découverte sémantique. Je gagne du temps en transformant des phrases en embeddings vectoriels, puis en appliquant un clustering k-means avant de résumer le tout avec ChatGPT
Il est suggéré que les rédacteurs techniques sous-estiment l’utilité des embeddings. Les praticiens du machine learning, eux, ne les sous-estiment pas
Il y a une question sur le fait de savoir si le modèle d’embedding d’OpenAI prend en charge 8191/8192 tokens. Déclarer un vainqueur sur la seule taille de contexte en tokens est trompeur, car d’autres facteurs comme le support multilingue et la précision sont plus importants
Je pense que les embeddings sont surestimés et qu’ils ne constituent pas la solution universelle que beaucoup espéraient. Ils ne remplacent pas totalement des méthodes simples comme BM25 et n’offrent qu’une compréhension sémantique limitée. Des attentes trop élevées font croire que les embeddings retrouveront exactement ce que l’on cherche, mais sans examen attentif des résultats, il est difficile de repérer les décalages