2 points par GN⁺ 2025-05-13 | 1 commentaires | Partager sur WhatsApp
  • Les embeddings offrent récemment un potentiel de progrès révolutionnaire dans le domaine de la rédaction technique
  • Ils ont la particularité de renvoyer un tableau numérique de dimension fixe, quelle que soit la taille du texte d’entrée
  • Ce tableau numérique permet une comparaison mathématique entre des textes arbitraires
  • Les embeddings calculent la distance entre les significations des textes dans un espace multidimensionnel, ce qui permet des usages variés comme les recommandations par similarité, l’analyse sémantique, etc.
  • À l’avenir, les sites de documentation technique pourraient publier leurs données d’embedding, ce qui devrait élargir les nouveaux outils et les cas d’usage communautaires

Vue d’ensemble de la technologie d’embedding fondée sur le machine learning

  • Dans les technologies de machine learning, contrairement aux modèles de génération de texte, les embeddings ont le potentiel d’avoir un impact révolutionnaire sur la rédaction technique
  • Ces dernières années, l’usage des embeddings est devenu bien plus accessible
  • Grâce aux embeddings, les rédacteurs techniques peuvent effectuer des comparaisons et analyses sémantiques entre différents textes

Se forger une intuition des embeddings

  • Un embedding prend en entrée un texte (mot, phrase, ensemble de documents, etc.) et renvoie un tableau numérique de taille fixe
  • Quelle que soit la longueur du texte d’entrée, il produit toujours des données de même taille
  • Cela rend possible une comparaison mathématique même entre des textes arbitraires de longueurs différentes

Comment générer des embeddings

  • Il est possible de générer des embeddings en quelques lignes de code via les principaux fournisseurs de services
  • Selon le modèle utilisé, la taille du tableau d’embedding varie : dans le cas de Gemini, 768 valeurs sont renvoyées, et dans le cas de Voyage AI, 1024
  • Comme la signification des embeddings diffère totalement selon le fournisseur ou le modèle, ils ne sont pas interopérables

Coût et impact environnemental

  • La génération d’embeddings en elle-même n’est pas très coûteuse
  • On estime que le processus consomme moins de ressources de calcul qu’un modèle de génération de texte, mais davantage d’informations seront nécessaires à l’avenir pour évaluer son impact environnemental

Critères de choix d’un modèle d’embedding

  • Le modèle le plus adapté dépend notamment de sa capacité à prendre en charge de grands volumes de données en entrée
  • En 2024, le voyage-3 de Voyage AI offre la limite d’entrée la plus élevée
  • Il est important de choisir un modèle adapté à l’objectif et aux besoins

La notion d’espace multidimensionnel

  • Chaque valeur du tableau numérique d’embedding correspond à une coordonnée dans un espace multidimensionnel, où les caractéristiques du texte sont représentées par une position sémantique
  • Par exemple, une opération comme king - man + womanqueen montre qu’il est possible de représenter des relations sémantiques
  • Les caractéristiques de chaque dimension de l’espace d’embedding sont, pour la plupart, obscures et abstraites
  • Ce processus permet à la machine d’apprendre le sens et d’inférer la signification des textes

Comparaison et stockage des embeddings

  • Les embeddings générés sont stockés pour chaque texte (par exemple, chaque page) dans une base de données ou un système équivalent
  • En calculant la distance mathématique entre deux embeddings (au moyen de l’algèbre linéaire), il est possible d’évaluer leur similarité sémantique
  • Avec des bibliothèques comme NumPy ou scikit-learn, il est peu nécessaire d’implémenter soi-même des formules complexes

Exemples d’application des embeddings

  • Sur les sites de documentation technique, les embeddings sont utilisés efficacement pour les fonctions de recommandation de pages associées
  • Après avoir généré un embedding pour chaque page, on peut recommander des documents liés sémantiquement en regroupant les pages ayant une forte similarité numérique
  • Il suffit de régénérer l’embedding à chaque modification du contenu d’une page, ce qui offre une excellente efficacité
  • Les résultats obtenus sur la documentation [Sphinx] ont montré des performances positives

Communauté et potentiel des données ouvertes

  • À l’avenir, les sites de documentation pourraient fournir des données d’embedding via une API REST ou des well-known URIs
  • Cela permettrait à la communauté de développer divers outils et services applicatifs

Conclusion

  • Il est fascinant de pouvoir relier la notion d’espace à plusieurs centaines de dimensions au travail quotidien
  • L’adoption des embeddings laisse entrevoir un potentiel de progrès majeur pour la maintenance documentaire et l’extension des fonctionnalités

1 commentaires

 
GN⁺ 2025-05-13
Avis Hacker News
  • Bonjour, je voulais remercier l’auteur de cet article
    Je signale qu’une discussion similaire avait déjà eu lieu il y a 6 mois
    Dire que « les embeddings sont sous-estimés » visait à souligner qu’ils sont un outil plus utile aux rédacteurs techniques qu’aux praticiens du machine learning
    Je suis conscient qu’il manque dans cet article des détails précis sur la manière d’utiliser les embeddings en rédaction technique
    Je prépare des projets et des billets de blog sur l’utilisation des embeddings
    Les embeddings sont importants parce qu’ils peuvent aider à résoudre trois problèmes difficiles en rédaction technique

    • Pour permettre d’expérimenter publiquement le problème de la difficulté à trouver facilement l’information voulue par l’utilisateur, j’ai appliqué une couche UX de « semantic scrolling »
      Plutôt qu’une recherche, on peut parcourir des clusters sous forme d’une arborescence <details>/<summary>
      [1] est le point de départ, et [2] est la collection complète (livres, films, musique, animation, etc.)
      Je partage aussi les liens

    • Il vaudrait mieux structurer le contenu pour qu’il parle davantage aux rédacteurs techniques qu’aux experts du machine learning
      Par exemple, il serait bien d’expliquer plus en détail la partie sur « découvrir les connexions entre textes à une échelle auparavant impossible »
      Placer des exemples d’application plus tôt dans le texte serait plus efficace pour les lecteurs

    • Comme exemple d’application directe des embeddings à la rédaction technique, je recommande un article académique connexe
      Lien fourni

    • Après lecture, je me demande quelle était la qualité des résultats
      Sans aller jusqu’aux evals si appréciées côté machine learning, j’aimerais savoir si, globalement, les résultats semblaient raisonnables

    • J’ai lu l’article mais je n’y ai pas trouvé d’explication de ce qu’est un « embedding »
      Le troisième paragraphe parle de ses usages, mais il manque au début une définition de l’embedding lui-même

    • Pour un débutant, cela semble trop élémentaire
      Après lecture, je n’en ai retiré ni information nouvelle ni véritable insight
      Si l’article avait au moins montré un aperçu d’un exemple central d’usage des embeddings, j’aurais davantage attendu la suite
      Merci pour le partage

  • Un autre avantage des embeddings et de la recherche par embeddings est qu’on peut les mettre en œuvre côté client avec une charge limitée
    Les modèles ONNX peuvent être chargés et exécutés avec transformer.js
    On peut aussi créer un index comme hnsw et l’héberger statiquement
    J’ai moi-même réalisé une démo open source
    Il suffit de représenter l’index sous forme de fichier Parquet interrogeable et de le requêter avec duckdb
    Avec Github Pages, c’est faisable gratuitement ou presque

    • Le fait qu’on puisse faire des embeddings côté client en JS est une découverte pour moi
      J’ai hâte de voir les nouvelles applications que cela pourrait ouvrir pour les sites de documentation
      J’ai commencé à m’intéresser à Parquet et Polars grâce à un article que j’avais lu auparavant

    • J’avais justement des questions sur ce type d’implémentation
      J’hésitais à adopter la recherche par embeddings à cause des inquiétudes sur la latence
      Si l’on garde le modèle en local pour le rendu, je me demande quelle est la qualité par rapport à OpenAI/Google
      Le gratuit et l’instantanéité sont des avantages

    • Ce serait bien d’expliquer en détail ce qui se passe dans la démo
      J’ai du mal à comprendre le résultat

  • J’aimerais que la partie disant que « les embeddings renvoient toujours un tableau de nombres de même taille quelle que soit la taille du texte d’entrée, ce qui permet de comparer mathématiquement des textes arbitraires entre eux » soit expliquée plus clairement
    Une fonction de hash produit elle aussi un résultat de taille fixe quelle que soit la taille de l’entrée, mais la comparaison mathématique de ce résultat et celle d’un embedding sont totalement différentes dans leur sens
    Il faut insister sur le fait que la qualité d’un embedding dépend de son processus d’entraînement
    Il n’existe pas d’« embedding universel » permettant des comparaisons pertinentes pour des textes arbitraires

    • Merci pour ce retour ; je lis actuellement des articles sur Gecko, NV-Embed, Gemini Embedding et d’autres travaux connexes, et je vais donc améliorer l’article avec davantage de précision
      Je partage aussi les liens
  • Les embeddings compressent et représentent une entrée volumineuse un peu comme un hash, mais contrairement à un hash, ils portent un sens intrinsèque
    Du coup, je me demande s’il existe des recherches sur un « cracking » consistant à générer en sens inverse un texte de signification proche à partir d’un embedding
    On pourrait peut-être aussi inclure, dans l’évaluation du token suivant d’une sortie de LLM, la similarité avec l’embedding ou l’évolution de sa direction
    Comme l’auteur mentionne des opérations entre vecteurs d’embedding, j’imagine si une « algèbre du sens » pourrait aussi s’appliquer à des textes de grande taille comme des paragraphes entiers ou des livres
    Je me demande aussi s’il serait possible de vectoriser un concept central comme « l’affinité » et de l’ajouter à un texte existant

    • « Générer en sens inverse un texte de sens proche à partir d’un embedding » s’appelle embedding inversion, ou Universal Zero-shot Embedding Inversion
      Il existe des articles sur le sujet, et les usages d’embeddings CLIP avec la diffusion en image sont également liés

    • En gros, les embeddings jouent un rôle comparable à celui des fuzzy hashes

    • Je ne suis pas spécialiste du domaine, mais des recherches sur l’inference-time intervention semblent aussi liées
      Lien vers l’article joint

  • Dire que « les embeddings permettent des avancées de tout premier plan en rédaction technique » n’est pas assez concret et ne m’aide pas en tant que lecteur
    En lisant ou en écrivant de la documentation technique, je n’ai généralement jamais souhaité un widget de « pages similaires »

    • La thèse figure dans le deuxième paragraphe
      Les embeddings permettent aux rédacteurs techniques de trouver des liens entre textes d’une manière auparavant impossible à découvrir
      Je reconnais que le billet ne montre pas concrètement cette thèse par des exemples
      Je pense que les embeddings peuvent résoudre plusieurs difficultés de la rédaction technique, et je présenterai des exemples directs plus tard

    • Au-delà des documents liés, une excellente recherche dans la documentation technique est très utile
      Les embeddings sont particulièrement utiles pour le « fuzzy matching » et permettent de retrouver la fonctionnalité réellement cherchée même si l’utilisateur ne se souvient pas des termes exacts
      Une approche hybride combinant recherche par mots-clés et recherche par similarité vectorielle est efficace
      J’aimerais trouver davantage d’exemples d’usage concrets

  • L’analogie avec une carte en 2D est un bon point de départ pour comprendre, mais les embeddings fonctionnent dans des centaines, voire des milliers de dimensions
    Le sens de chaque dimension n’est pas clair non plus, et l’exemple king - man + woman = queen n’est pas dû à l’existence d’une « dimension du genre », mais à celle d’une « direction » particulière
    En n dimensions, il existe de manière exponentielle une très grande variété de directions presque orthogonales
    C’est la raison pour laquelle on peut faire tenir des milliards de concepts dans un espace à 1000 dimensions

    • Dans les vrais articles arXiv, si l’on injecte 1000 mots masculins dans un embedding, on n’obtient pas précisément 950 mots féminins
      Une vingtaine se regroupent de façon visible, mais comme il y a beaucoup de dimensions, dès qu’on projette, n’importe quoi peut avoir l’air de « coller »
      Quand N augmente, les résultats deviennent facilement ambigus
      Les embeddings fondés sur les transformers prennent en compte le contexte et sont donc bien supérieurs aux anciens word vectors
      Même en recherche plein texte, les embeddings sensibles au contexte résolvent efficacement des problèmes de recherche d’information tentés depuis 50 ans, notamment sur le traitement des synonymes

    • Merci pour cette critique détaillée ; je reconnais qu’expliquer cela comme si une dimension unique correspondait univoquement à un concept était une erreur conceptuelle
      Je vais retravailler l’article pour mieux préciser le concept, ainsi que le fonctionnement de la similarité cosinus
      J’ai le sentiment que ces commentaires améliorent la qualité de ma réflexion

    • Il faut souligner que l’expression correcte n’est pas « dimensions presque orthogonales », mais « directions presque orthogonales »

    • Je m’interroge, avec le Johnson-Lindenstrauss lemma, sur la conservation des dimensions et la précision de préservation des distances dans les embeddings
      Pour préserver les distances avec une erreur de 10 %, il faudrait environ 18 000 dimensions
      Un lien Wikipédia est également indiqué

    • Plus précisément encore, il ne s’agit pas de « dimensions presque orthogonales », mais de « directions presque orthogonales »

    • Si chaque dimension correspondait à un concept significatif, par exemple une dimension du genre, il serait alors facile de voir que la différence entre king et queen ne se situe que sur une seule dimension
      Si chaque concept avait sa propre dimension, on pourrait suivre intuitivement les concepts selon leurs différences

    • Je présente un bon article sur le concept de vecteurs presque orthogonaux
      Lien partagé

    • Je me demande s’il s’agit du principe selon lequel on peut encoder 2^n directions en traitant chaque dimension comme un bit, ou si je me trompe

    • Si le genre est représenté sur deux dimensions, est-ce qu’on ne risque pas de ne plus pouvoir distinguer « le genre est différent » de « chaque dimension a une composante différente » ?

    • Même si la visualisation est impossible, on peut quand même calculer la distance euclidienne
      On peut réduire les dimensions avec des outils comme UMAP

    • À propos de l’exemple king-man+woman=queen, l’addition vectorielle ne fonctionne pas toujours comme on le souhaite
      Le sens peut être limité à la seule direction et à la seule magnitude d’un vecteur, et comme le réseau apprend des comportements non linéaires, le sens peut varier selon le point de départ
      Il y a donc des limites à généraliser à partir de simples opérations vectorielles sans preuve expérimentale

  • Les embeddings constituent un nouveau bond vers l’universalité, comme l’alphabet ou les nombres
    Lien partagé

  • Question à un expert
    Si les embeddings capturent le contenu, autrement dit le sens lui-même, sous forme de vecteur, je me demande s’il existe un vecteur séparé uniquement pour le « style »
    Si les embeddings pouvaient aussi s’utiliser facilement dans la recherche qui analyse le style d’écriture, ce serait un grand progrès

    • S’il existe un dataset avec des styles similaires, on peut entraîner et créer un embedding dédié uniquement au style
  • Je suis entièrement d’accord sur l’intérêt des embeddings
    En développant quelque chose appelé Recallify, j’ai pu retrouver rapidement même des informations rares lues en ligne
    Même avec seulement 1024 dimensions, cela relie efficacement des contenus non pas par mots-clés mais par similarité sémantique
    C’est un outil révolutionnaire pour transformer des concepts vagues en insights exploitables
    Je recrute aussi des bêta-testeurs pour l’application iOS

  • Je ne sais pas si l’article présentait des cas d’usage directs pour les rédacteurs techniques
    Les embeddings sont très importants dans les LLM, la recherche sémantique, etc., mais l’explication de l’utilité directe suggérée par l’auteur fait défaut

    • Il n’y avait pas d’exemple d’application directe
      Je voulais traiter divers usages des embeddings dans un billet de suivi et un projet, mais cela a pris du retard à cause de l’arrivée récente d’un bébé de 3 mois
      Je prépare d’autres projets et articles sur le sujet, et les embeddings aident à résoudre trois problèmes importants de la rédaction technique

    • Les usages pratiques des embeddings sont la recherche sémantique, la classification et le clustering
      Il y a une grande avancée en recherche environ tous les dix ans
      On peut créer des embeddings puis les injecter dans des algorithmes de ML existants pour classifier efficacement
      Les approches Bag-of-Words donnent désormais des résultats insuffisants, et embeddings + algorithmes simples suffisent à produire de bons clusters
      Pour trouver des vecteurs proches, ce n’est pas tant de l’algèbre linéaire qu’un simple produit scalaire qui suffit

    • Utiliser les embeddings pour rechercher sémantiquement des articles scientifiques, de la littérature, etc. serait extrêmement utile
      Mais les embeddings eux-mêmes n’incluent pas d’informations de provenance, donc en recherche RAG on ne peut relier qu’à la page source
      Les problèmes de citation et de vérification restent entiers
      Des modèles de citation fondés sur des graphes comme GraphRAG sont plus prometteurs

    • J’ai créé un classificateur de flux RSS avec une recherche sémantique fondée sur les embeddings
      Une classification basée sur des catégories arbitraires est aussi possible
      Le service est actuellement arrêté depuis mon départ d’AWS