- Embeddings bieten im Bereich des technischen Schreibens das Potenzial für bedeutende innovative Fortschritte
- Sie zeichnen sich dadurch aus, dass sie ein numerisches Array mit fester Dimension zurückgeben – unabhängig von der Größe des Eingabetexts
- Dieses numerische Array ermöglicht mathematische Vergleiche zwischen beliebigen Texten
- Embeddings berechnen in einem mehrdimensionalen Raum Abstände anhand der Bedeutung von Texten und lassen sich vielseitig einsetzen, etwa für Empfehlungen auf Basis von Beziehungen, semantische Analysen und mehr
- Künftig könnten Websites für technische Dokumentation ihre Embedding-Daten veröffentlichen, wodurch sich neue Tools und Community-Anwendungsfälle weiter verbreiten dürften
Überblick über ML-basierte Embedding-Technologie
- Im Bereich der Machine-Learning-Technologie haben Embeddings im Gegensatz zu Textgenerierungsmodellen das Potenzial, das technische Schreiben grundlegend zu verändern
- In den letzten Jahren ist die Nutzung von Embeddings deutlich zugänglicher geworden
- Mit Embeddings können technische Redakteure semantische Vergleiche und Analysen zwischen verschiedenen Texten durchführen
Intuition für Embeddings entwickeln
- Gibt man Text (Wörter, Sätze, mehrere Dokumente usw.) in ein Embedding ein, erhält man ein numerisches Array fester Größe zurück
- Unabhängig von der Länge des Eingabetexts wird immer ein Array mit derselben Größe erzeugt
- Dadurch werden mathematische Vergleiche auch zwischen beliebigen Texten unterschiedlicher Länge möglich
Wie Embeddings erzeugt werden
- Über die wichtigsten Anbieter lassen sich Embeddings schon mit wenigen Zeilen Code erzeugen
- Je nach verwendetem Modell unterscheidet sich die Größe des Embedding-Arrays; bei Gemini werden 768, bei Voyage AI 1024 Zahlen zurückgegeben
- Da die Bedeutung von Embeddings je nach Anbieter oder Modell völlig unterschiedlich ist, fehlt die gegenseitige Kompatibilität
Kosten und Umweltauswirkungen
- Die Erzeugung von Embeddings selbst ist nicht besonders teuer
- Vermutlich benötigt der Erzeugungsprozess weniger Rechenressourcen als Textgenerierungsmodelle, doch für die Umweltauswirkungen sind künftig mehr Informationen nötig
Kriterien für die Wahl eines Embedding-Modells
- Welches Modell am besten geeignet ist, hängt davon ab, ob es große Eingabedatenmengen unterstützen kann
- Voyage AIs voyage-3 bietet Stand 2024 das höchste Eingabelimit
- Wichtig ist die Wahl eines Modells, das zum Einsatzzweck und den Anforderungen passt
Das Konzept des mehrdimensionalen Raums
- Jeder Wert im numerischen Embedding-Array entspricht einer Koordinate in einem mehrdimensionalen Raum; über die semantische Position in diesem Raum werden die Eigenschaften eines Textes dargestellt
- Operationen wie
king - man + woman ≈ queen zeigen, dass sich semantische Beziehungen ausdrücken lassen
- Welche Eigenschaften die einzelnen Dimensionen des Embedding-Raums haben, ist meist unklar und abstrakt
- Dadurch werden maschinelles Lernen von Bedeutung und semantische Schlussfolgerungen über Texte möglich
Embeddings vergleichen und speichern
- Erzeugte Embeddings werden für jeden Text (z. B. jede Seite) in einer Datenbank oder an anderer Stelle gespeichert
- Durch die Berechnung des mathematischen Abstands zwischen zwei Embeddings (mit linearer Algebra) lässt sich die semantische Ähnlichkeit beurteilen
- Mit Bibliotheken wie NumPy und scikit-learn ist der Aufwand für die Implementierung komplexer Formeln gering
Beispiele für Anwendungen von Embeddings
- Auf Websites mit technischer Dokumentation lassen sich Embeddings wirkungsvoll für Empfehlungsfunktionen für verwandte Seiten nutzen
- Nachdem für jede Seite ein Embedding erzeugt wurde, können Seiten mit hoher numerischer Ähnlichkeit als semantisch verwandte Dokumente empfohlen werden
- Wenn sich der Seiteninhalt ändert, muss nur das Embedding aktualisiert werden, was sehr effizient ist
- Bei der tatsächlichen Anwendung auf [Sphinx]-Dokumentation wurde eine positive Leistung bestätigt
Community und Potenzial offener Daten
- Künftig könnten Dokumentations-Websites Embedding-Daten über REST-APIs oder well-known URIs bereitstellen
- Dadurch könnte die Community verschiedene Anwendungs-Tools und Services entwickeln
Schlusswort
- Es ist faszinierend, das Konzept von Räumen mit Hunderten von Dimensionen mit der täglichen Arbeit in Verbindung zu bringen
- Durch den Einsatz von Embeddings ist bei Wartung von Dokumentation und Funktionserweiterungen ein bahnbrechender Fortschritt zu erwarten
1 Kommentare
Hacker-News-Kommentare
Hallo, ich bin der Autor dieses Artikels und wollte mich bedanken.
Es gab schon vor 6 Monaten eine ähnliche Diskussion.
Mit der Aussage, dass „Embeddings unterschätzt werden“, wollte ich betonen, dass sie eher für technische Autoren ein nützliches Werkzeug sind als für Leute, die in Machine Learning arbeiten.
Mir ist bewusst, dass in diesem Artikel Details dazu fehlen, wie Embeddings konkret beim technischen Schreiben eingesetzt werden.
Ich bereite gerade ein Projekt und einen Blogpost über den Einsatz von Embeddings vor.
Embeddings sind wichtig, weil sie helfen können, drei schwer lösbare Probleme im technischen Schreiben anzugehen.
Um das Problem erfahrbar zu machen, dass Nutzer die gewünschten Informationen nicht leicht finden, habe ich als UX-Schicht öffentlich „semantic scrolling“ ausprobiert.
Es ist weniger eine Suche als vielmehr ein Spaziergang durch Cluster in einer <details>/<summary>-Baumstruktur.
[1] ist der Einstiegspunkt und [2] ist die gesamte Sammlung (Bücher, Filme, Musik, Anime usw.).
Ich teile auch die Links.
Ich denke, es wäre gut, den Inhalt so zu strukturieren, dass der Post technische Autoren stärker anspricht als Machine-Learning-Experten.
Zum Beispiel wäre es hilfreich, den Teil „Verbindungen zwischen Texten in einem zuvor unmöglichen Maßstab entdecken“ genauer zu erklären.
Wenn Anwendungsbeispiele weiter vorne stünden, würde die Botschaft Leser effektiver erreichen.
Als direktes Anwendungsbeispiel von Embeddings im technischen Schreiben empfehle ich eine einschlägige Arbeit.
Link beigefügt.
Nachdem ich das gelesen habe, würde mich interessieren, wie gut die Qualität der Ergebnisse war.
Es muss gar nicht bis zu den im ML-Bereich beliebten evals gehen, aber grob gesagt würde ich gern wissen, ob sich die Resultate vernünftig anfühlen.
Ich habe den Artikel gelesen, aber keine Erklärung dafür gefunden, was ein „Embedding“ überhaupt ist.
Im dritten Absatz wird zwar beschrieben, wie es genutzt wird, aber vorne fehlt eine eigentliche Definition von Embeddings.
Für Einsteiger wirkt der Artikel zu grundlegend.
Nach dem Lesen habe ich keine neuen Informationen oder Einsichten gewonnen.
Wenn wenigstens ein Vorgeschmack auf ein zentrales Praxisbeispiel für Embeddings enthalten gewesen wäre, hätte ich mich eher auf den nächsten Artikel gefreut.
Danke fürs Teilen.
Ein weiterer Vorteil von Embeddings und Embedding-Suche ist, dass man sie mit geringem Aufwand clientseitig umsetzen kann.
ONNX-Modelle lassen sich mit transformer.js laden und ausführen.
Man kann auch einen Index wie hnsw erstellen und statisch hosten.
Ich habe selbst eine Open-Source-Demo gebaut.
Der Index wird dabei als queryable Parquet-Datei dargestellt und mit duckdb abgefragt.
Mit Github Pages geht das kostenlos oder fast kostenlos.
Dass man clientseitig in JS Embeddings erzeugen kann, ist für mich eine neue Entdeckung.
Ich freue mich darauf, dass sich dadurch neue Anwendungen für Dokumentationsseiten eröffnen könnten.
Auf Parquet und Polars bin ich durch einen Artikel aufmerksam geworden, den ich früher gelesen hatte.
Dazu hatte ich schon länger eine Frage.
Ich habe gezögert, Embedding-basierte Suche einzuführen, weil ich mir Sorgen um die Latenz gemacht habe.
Wenn man das Modell lokal hält und rendert, frage ich mich, wie die Qualität im Vergleich zu OpenAI/Google ist.
Kostenlos und unmittelbar verfügbar zu sein, ist natürlich ein Vorteil.
Es wäre gut, wenn genauer erklärt würde, was in der Demo eigentlich passiert.
Ich verstehe das Ergebnis nicht richtig.
Die Aussage „Embeddings liefern unabhängig von der Größe des Eingabetexts immer ein gleich großes Zahlenarray zurück, sodass beliebige Texte mathematisch miteinander verglichen werden können“ hätte klarer erklärt werden sollen.
Auch Hash-Funktionen liefern unabhängig von der Eingabegröße gleich große Ausgaben, aber dieser mathematische Vergleich ist etwas völlig anderes als der Vergleich von Embeddings.
Es sollte betont werden, dass die Qualität von Embeddings vom Training abhängt.
Ein „allgemeines Embedding“, das für beliebige Texte sinnvolle Vergleiche ermöglicht, gibt es nicht.
Die Links habe ich ebenfalls geteilt.
Embeddings komprimieren große Eingaben ähnlich wie Hashes zu einer Darstellung, aber anders als Hashes tragen Embeddings inhärente Bedeutung.
Deshalb frage ich mich, ob es Forschung zum „Cracken“ gibt, also dazu, aus einem Embedding wieder Text mit ähnlicher Bedeutung zu erzeugen.
Man könnte sich auch vorstellen, bei der Bewertung des nächsten Tokens in der LLM-Ausgabe Ähnlichkeit oder Richtungsänderungen relativ zu Embeddings einzubeziehen.
Wie vom Autor erwähnte Operationen zwischen Embedding-Vektoren lässt mich das fragen, ob sich so etwas wie „Bedeutungsalgebra“ auch auf große Texte wie ganze Absätze oder Bücher anwenden ließe.
Ich frage mich auch, ob man einen Kernbegriff wie „Affinität“ vektorisieren und bestehenden Texten hinzufügen könnte.
„Aus Embeddings wieder Text mit ähnlicher Bedeutung erzeugen“ wird Embedding Inversion oder Universal Zero-shot Embedding Inversion genannt.
Dazu gibt es einschlägige Arbeiten, und bei Bildern ist auch Diffusion auf Basis von CLIP-Embeddings verwandt.
Grob gesagt erfüllen Embeddings eine ähnliche Rolle wie Fuzzy Hashes.
Ich bin kein Experte auf diesem Gebiet, aber Forschung zu inference-time intervention könnte ebenfalls relevant sein.
Ein Paper-Link ist beigefügt.
Die Aussage „Mit Embeddings kann man im technischen Schreiben Fortschritte auf Spitzenniveau erzielen“ ist nicht konkret genug und hilft mir als Leser nicht weiter.
Wenn ich technische Dokumentation lese oder schreibe, habe ich mir normalerweise kein Widget mit „ähnlichen Seiten“ gewünscht.
Die These steht im zweiten Absatz.
Embeddings helfen technischen Autoren dabei, Verbindungen zwischen Texten zu finden, die zuvor nicht auffindbar waren.
Ich räume ein, dass der Post diese These nicht wirklich anhand von Beispielen zeigt.
Ich denke, dass Embeddings mehrere schwierige Probleme des technischen Schreibens lösen können, und werde direktere Beispiele später behandeln.
Unabhängig von verwandten Dokumenten ist hervorragende Suche für technische Dokumentation sehr nützlich.
Embeddings sind besonders für „fuzzy matching“ hilfreich und finden praktisch die gesuchte Funktion, auch wenn Nutzer sich nicht exakt an die Wörter erinnern.
Ein hybrider Ansatz aus Keyword-Suche und Vektorähnlichkeitssuche ist effizient.
Ich würde gern noch mehr konkrete Anwendungsbeispiele sehen.
Die Metapher einer zweidimensionalen Karte ist ein guter Einstieg zum Verständnis, aber Embeddings arbeiten in Hunderten bis Tausenden Dimensionen.
Es ist auch nicht klar, welche Bedeutung jede einzelne Dimension hat, und das Beispiel „king - man + woman = queen“ liegt nicht daran, dass es eine „Gender-Dimension“ gibt, sondern daran, dass eine „bestimmte Richtung“ existiert.
Im n-dimensionalen Raum gibt es exponentiell viele nahezu orthogonale Richtungen.
Deshalb kann man in einem 1000-dimensionalen Raum Milliarden von Konzepten unterbringen.
In echten arXiv-Arbeiten passiert es nicht, dass man 1000 männliche Wörter in Embeddings eingibt und dann 950 weibliche Wörter exakt wiederfindet.
Vielleicht gruppieren sich etwa 20 sichtbar, aber wegen der hohen Dimensionalität kann bei einer Projektion fast alles „richtig“ aussehen.
Wenn N groß wird, werden die Ergebnisse schnell mehrdeutig.
Transformer-basierte Embeddings berücksichtigen Kontext und sind daher weit besser als frühere Wortvektoren.
Auch bei der Volltextsuche lösen kontextbewusste Embeddings Probleme wie Synonymbehandlung sehr effektiv, mit denen sich das Information-Retrieval-Feld seit 50 Jahren beschäftigt.
Danke für die detaillierte Kritik. Ich räume ein, dass es ein konzeptioneller Fehler war, es so zu beschreiben, als würde eine einzelne Dimension eins zu eins einem Konzept entsprechen.
Ich werde den Post überarbeiten und die Konzepte zusammen mit der Funktionsweise der Kosinusähnlichkeit besser ausarbeiten.
Dank der Kommentare habe ich das Gefühl, dass die Qualität meines Denkens gestiegen ist.
Es sollte eher „nahezu orthogonale Richtungen“ heißen als „nahezu orthogonale Dimensionen“.
Ich frage mich im Zusammenhang mit dem Johnson-Lindenstrauss-Lemma, wie es um Dimensionsbeibehaltung und Genauigkeit der Distanzwahrung bei Embeddings steht.
Um Distanzen mit 10 % Fehler zu erhalten, braucht man ungefähr 18.000 Dimensionen.
Auch ein Wiki-Link ist beigefügt.
Genauer gesagt geht es nicht um „nahezu orthogonale Dimensionen“, sondern um „nahezu orthogonale Richtungen“.
Wenn einzelne Dimensionen bedeutungsvollen Konzepten entsprächen, zum Beispiel einer Gender-Dimension, könnte man leicht erkennen, dass sich „king“ und „queen“ nur in einer einzigen Dimension unterscheiden.
Wenn verschiedene Konzepte jeweils eigene Dimensionen hätten, könnte man diese Unterschiede intuitiv entlang dieser Konzepte verfolgen.
Hier ist ein guter Artikel über das Konzept nahezu orthogonaler Vektoren.
Link geteilt.
Ich frage mich, ob das Prinzip darin besteht, jede Dimension wie ein Bit zu behandeln und damit 2^n Richtungen zu kodieren, oder ob ich das missverstehe.
Wenn Geschlecht durch zwei Dimensionen dargestellt würde, könnte man dann nicht „anderes Geschlecht“ und „jede Dimension hat andere Komponenten“ nicht mehr voneinander unterscheiden?
Auch wenn man es nicht visualisieren kann, kann man die euklidische Distanz trotzdem berechnen.
Mit Werkzeugen wie UMAP kann man die Dimensionalität reduzieren.
Zum Beispiel king-man+woman=queen: Vektoraddition verhält sich womöglich nicht immer so, wie man es sich wünscht.
Bedeutung kann nicht allein durch Richtung und Länge eines einzelnen Vektors begrenzt sein, und weil ein Netzwerk nichtlineares Verhalten lernt, kann sich die Bedeutung je nach Ausgangspunkt ändern.
Ohne experimentelle Evidenz gibt es Grenzen dafür, von einfachen Vektoroperationen aus zu verallgemeinern.
Embeddings sind ein neuer Sprung hin zu Universalität, ähnlich wie Alphabet oder Zahlen.
Link geteilt.
Eine Frage an Experten:
Wenn Embeddings den Inhalt, also die Bedeutung selbst, als Vektor enthalten, gibt es dann einen separaten Vektor nur für „Stil“?
Wenn sich Embeddings auch für stilistische Analyse leicht nutzen ließen, wäre das ein großer Fortschritt für Forschung zur Schreibweise.
Ich stimme dem Nutzen von Embeddings voll zu.
Während ich etwas namens Recallify entwickelt habe, konnte ich seltene Informationen, die ich online gelesen hatte, schnell wiederfinden.
Schon mit 1024 Dimensionen lassen sich Inhalte effektiv über Bedeutungsähnlichkeit statt über Keywords verknüpfen.
Es ist ein revolutionäres Werkzeug, um vage Konzepte in umsetzbare Einsichten zu verwandeln.
Ich suche auch Beta-Tester für eine iOS-App.
Ich weiß nicht, ob im Artikel ein direktes Einsatzszenario für technische Autoren genannt wurde.
Embeddings sind für LLMs, semantische Suche usw. sehr wichtig, aber eine Erklärung des direkten Nutzens, den der Autor andeutet, fehlt.
Ein direktes Anwendungsbeispiel wurde nicht genannt.
Ich wollte in einem Folgeartikel und Projekt verschiedene Einsatzmöglichkeiten von Embeddings behandeln, aber das hat sich wegen eines drei Monate alten Babys zuletzt verzögert.
Ich bereite weitere Projekte und Texte dazu vor, und Embeddings helfen bei drei wichtigen schwierigen Problemen im technischen Schreiben.
Praktische Anwendungen von Embeddings sind semantische Suche, Klassifikation und Clustering.
Im Suchbereich gibt es ungefähr alle zehn Jahre einen großen Fortschritt.
Wenn man Embeddings erzeugt und sie in bestehende ML-Algorithmen einspeist, lassen sich Dinge effektiv klassifizieren.
Der Bag-of-Words-Ansatz liefert inzwischen schwache Ergebnisse, während man mit Embeddings plus einfachen Algorithmen gute Cluster erhält.
Auch beim Finden naher Vektoren braucht man oft eher ein Skalarprodukt als „Linearalgebra“ im großen Stil.
Es wäre sehr nützlich, mit Embeddings Papers, Literatur usw. semantisch zu durchsuchen.
Allerdings enthalten Embeddings selbst keine Quelleninformationen, sodass man bei RAG-Suche nur zur Ursprungsseite verlinken kann.
Fragen von Zitierung und Verifikation bleiben weiterhin offen.
GraphRAG und andere graphbasierte Zitationsmodelle sind hier weiter fortgeschritten.
Ich habe mit Embedding-basierter semantischer Suche einen RSS-Feed-Klassifikator gebaut.
Auch Klassifikation auf Basis beliebiger Kategorien ist möglich.
Der Dienst ist derzeit eingestellt, weil ich AWS verlassen habe.