7 Punkte von GN⁺ 2024-11-02 | 3 Kommentare | Auf WhatsApp teilen
  • Maschinelles Lernen (ML) hat das Potenzial, den Stand der Technik beim Verfassen technischer Dokumentation voranzubringen
  • Nicht Textgenerierungsmodelle wie Claude, Gemini, LLaMa oder GPT, sondern Embeddings könnten die ML-Technologie sein, die den größten Einfluss auf das Schreiben technischer Dokumentation hat
  • Embeddings sind nicht ganz neu, aber in den letzten Jahren deutlich breiter zugänglich geworden
  • Embeddings geben technischen Redakteuren die Möglichkeit, Verbindungen zwischen Texten in einem zuvor unmöglichen Maßstab zu entdecken

Eine Intuition für Embeddings aufbauen

Eingabe und Ausgabe

  • Was man eingibt, um ein Embedding zu erzeugen, ist Text
  • Man muss nicht jedes Mal die gleiche Menge an Text bereitstellen
    • Manchmal ist die Eingabe ein einzelner Absatz, manchmal mehrere Abschnitte, ein ganzes Dokument oder sogar mehrere Dokumente
  • Die Ausgabe ist ein Zahlenarray
    • Gibt man ein einzelnes Wort ein, ist die Ausgabe ein Zahlenarray wie [-0.02387, -0.0353, 0.0456]
    • Gibt man einen ganzen Dokumentensatz ein, hat die Ausgabe eine Form wie [0.0451, -0.0154, 0.0020]
  • Unabhängig von der Größe der Eingabe erhält man immer die gleiche Anzahl an Zahlen
    • Dadurch erhält man eine Möglichkeit, beliebige zwei Texte mathematisch miteinander zu vergleichen
  • In echten Embeddings enthält das Array nicht 3, sondern Hunderte oder Tausende von Zahlen

Wie Embeddings erzeugt werden

  • Große Serviceanbieter machen die Erzeugung von Embeddings einfach
  • Das Modell text-embedding-004 von Gemini liefert ein Array mit 768 Zahlen zurück, das Modell voyage-3 von Voyage AI ein Array mit 1024 Zahlen
  • Embeddings verschiedener Anbieter sind nicht kompatibel miteinander

Ist das teuer?

Nein.

Ist das schlecht für die Umwelt?

  • Die Erzeugung von Embeddings ist rechnerisch weniger intensiv als Textgenerierung
  • Embedding-Modelle scheinen jedoch auf ähnliche Weise wie Textgenerierungsmodelle trainiert zu werden, was Energieverbrauch bedeutet
  • Wenn ich mehr weiß, werde ich diesen Abschnitt aktualisieren

Welches Modell ist am besten?

  • Idealerweise sollte ein Embedding-Modell sehr große Mengen an Eingabetext verarbeiten können, damit es Embeddings für vollständige Seiten erzeugen kann
  • Stand Oktober 2024 scheint voyage-3 in Bezug auf die Eingabegröße am besten zu sein
  • Eingabebeschränkungen basieren auf Tokens, und jeder Dienst berechnet Tokens anders, daher sollte man exakten Zahlen nicht zu viel Gewicht beimessen

Ein sehr seltsamer mehrdimensionaler Raum

  • Was bedeuten die Embedding-Zahlen?
  • Man kann an Koordinaten auf einer Karte denken
    • Ein Embedding ist ähnlich wie ein Punkt auf einer Landkarte
    • Jede Zahl im Embedding-Array ist eine Dimension, ähnlich wie X- und Y-Koordinate
    • Wenn ein Embedding-Modell ein Array mit 1000 Zahlen zurückgibt, sagt es aus, an welchem Punkt sich der Text relativ zu allen anderen Texten in einem semantischen Raum mit 1000 Dimensionen befindet
    • Wenn man die Distanz zwischen zwei Embeddings vergleicht, versucht man in Wirklichkeit zu ermitteln, wie semantisch nah oder fern zwei Texte voneinander sind
  • Das Konzept, Objekte in einem solchen mehrdimensionalen Raum zu platzieren, in dem verwandte Elemente nahe beieinander clustern, nennt man latent space
  • Das berühmte Beispiel aus dem Word2vec-Paper:
    • embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
    • Embeddings können semantische Beziehungen auf eine Weise darstellen, die für Menschen intuitiv wirkt
  • Embeddings arbeiten in Hunderten oder Tausenden von Dimensionen, daher ist es für ein dreidimensionales Lebewesen unmöglich zu visualisieren, wie „Distanz“ in 1000 Dimensionen aussieht
  • Es ist nicht bekannt, wofür jede einzelne Dimension steht

Embeddings vergleichen

  • Nachdem Embeddings erzeugt wurden, braucht man eine Art „Datenbank“, um nachzuverfolgen, welcher Text mit welchem Embedding verknüpft ist
  • Dabei spielt viel lineare Algebra eine Rolle, und Mathematik- und ML-Bibliotheken wie NumPy und scikit-learn können die Schwerstarbeit übernehmen

Anwendungen

  • Direkt untersuchen, wie Embeddings den Stand der Technik beim Schreiben technischer Dokumentation voranbringen können

Mögen Tausende von Embeddings aufblühen

  • Als Betreiber einer Dokumentationsseite stellt sich die Frage, ob man Embeddings für Inhalte frei über eine REST API oder well-known URI für alle bereitstellen sollte, die sie nutzen möchten
  • Es ist nicht absehbar, welche spannenden Dinge die Community mit dieser zusätzlichen Art von Dokumentationsdaten bauen könnte

Schlusswort

  • Hätte man mich vor drei Jahren gefragt, was ein 768-dimensionaler Raum ist, hätte ich gesagt, das sei nur ein abstraktes Konzept, das Physiker und Mathematiker aus Gründen brauchen, die ich nicht verstehe
  • Embeddings geben einen Grund, tiefer über diese Idee nachzudenken und sie tatsächlich auf die eigene Arbeit anzuwenden
  • Verbesserungen der Skalierung bei der Pflege von Dokumentation könnten weiterhin möglich sein — vielleicht braucht es einfach nur noch mehr Dimensionen!

Anhang

Implementierung

  • Erstellung einer Sphinx-Erweiterung zur Erzeugung von Embeddings für jedes Dokument
  • Nach Abschluss des Builds werden die Embedding-Daten in embeddings.json gespeichert
  • Der letzte Schritt besteht darin, für jedes Dokument die nächsten Nachbarn zu finden

Ergebnisse

  • So lassen sich die Daten interpretieren:
    • Target ist die Seite, die man gerade betrachtet
    • Neighbor ist die Seite, die empfohlen würde
  • In der Ergebnistabelle ist zu sehen, dass verwandte Seiten einander gegenseitig empfohlen werden

Meinung von GN⁺

  • Embedding-Technologie scheint im Bereich technischer Dokumentation sehr hilfreich dabei zu sein, Zusammenhänge zwischen Inhalten zu erkennen und Verbindungen zwischen Dokumenten zu finden. Besonders nützlich dürfte sie bei großen Dokumentationsprojekten sein, in denen enorme Mengen an Dokumenten verarbeitet werden müssen
  • Allerdings verbrauchen Embedding-Modelle nach wie vor viel Energie, und es gibt auch ethische Bedenken, sodass vor der Einführung eine sorgfältige Prüfung nötig erscheint. Neben ausreichenden Rechenressourcen sollten Anstrengungen unternommen werden, die Umweltauswirkungen der Embedding-Erzeugung zu minimieren
  • Embeddings über eine API auf Dokumentationsseiten bereitzustellen, könnte ein guter Weg sein, die kreative Nutzung durch die Entwickler-Community zu fördern. Allerdings sollten Maßnahmen zu Datensicherheit und Datenschutz vorab sichergestellt werden
  • Startups oder Initiativen im Bereich technischer Dokumentation könnten Embedding-Technologie aktiv einführen. Sie könnten damit differenzierende Funktionen gegenüber bestehenden Dokumentenmanagement-Lösungen bieten und bei Suche, Empfehlungen und Ähnlichem eine stärker menschenfreundliche Erfahrung ermöglichen
  • Forschung zur Nutzung von Embeddings für Dokumentenzusammenfassungen, Übersetzungen und Themenklassifikation ist ebenfalls vielversprechend. Die Kombination moderner Natural-Language-Processing-Techniken mit Embeddings könnte das Erstellen und Verwalten technischer Dokumentation revolutionieren

3 Kommentare

 
yangeok 2024-11-08

Technikautor, haha

 
cosine20 2024-11-04

Wenn man sich die in der natürlichen Sprachverarbeitung eingesetzten Text-Embeddings und ihren Trainingsprozess ansieht, hat man wirklich den Eindruck, dass sie dem Prozess sehr ähnlich sind, mit dem Menschen Sprache erwerben und verwenden, obwohl sie kaum Grammatik kennen.
Ich denke, wie im Artikel gesagt, dass darin sehr viel Potenzial steckt.

 
GN⁺ 2024-11-02
Hacker-News-Meinungen
  • Interessant ist, dass Embeddings in der modernen KI der einzige Faktor sind, der Menschen mehr Macht verleiht. Das ist wie Steve Jobs’ "Fahrrad für unseren Geist" und bedeutet eine Verstärkung der Intelligenz. Der größte Fortschritt bei der Nutzbarkeit von Computern war die Einführung schneller und universeller lokaler Suche. Ich nutze häufig die Firefox-Funktion "Auf Seite suchen" und verwende täglich Suche und grep. Embeddings könnten die größte Schwäche der Suche beheben, indem sie tatsächlich nützliche Fuzzy Search ermöglichen.

  • Als Betreiber einer Dokumentationsseite frage ich mich, ob man Embeddings frei über eine REST API oder bekannte URIs bereitstellen sollte. Es müsste klar angegeben werden, welches Embedding-Modell verwendet wurde, und es stellt sich die Frage, ob es ein für technische Dokumentation geeignetes Embedding-Modell gibt.

  • Es gibt zwar Umweltbedenken, aber ich halte die verbreitete Ansicht, man könne das Klimaproblem lösen, indem man die Nutzung von KI reduziert, für falsch. Wenn man zum Beispiel Google Maps verbieten würde, nähmen Menschen falsche Routen und verbrauchten mehr Treibstoff. Bei der Erstellung von Dokumentation mit Embeddings ist es ähnlich: Der Einsatz von Rechenressourcen ist effizienter.

  • Es wird eine interessante Erfahrung geteilt, wie Embeddings in einer Web-App genutzt werden. Dabei wird über Dokumentation erklärt, wie man Embeddings in der Produktion einsetzt.

  • Embeddings scheinen alles in einer Eingabezeichenkette abzubilden und dadurch ziellos zu sein. Es gibt die Frage, wie man Embeddings für bestimmte Anwendungen dimensional reduzieren kann. Zum Beispiel besteht Neugier darauf, wie man beim Aufbau eines Systems zum Auffinden von technischen Supportgesprächen ein Embedding ableiten kann, das nur den Inhalt des Gesprächs repräsentiert.

  • Vektor-Embeddings sind eine einzigartige Zusammenfassung eines Dokuments, ähnlich einem Hash-Code. Es wäre gut, wenn es einen universellen Standard für die Erzeugung von Embeddings gäbe, aber da sie je nach KI-Modell unterschiedlich sind, können sie nicht die gleiche "Beständigkeit" wie Hash-Codes haben. Es scheint viele Möglichkeiten zu geben, Algorithmen wie Kosinus-Ähnlichkeit in Datenbanken und Anwendungen zur Informationsverarbeitung zu nutzen.

  • Ich denke, Embeddings werden unterschätzt. Der Bereich Informationssuche/-entdeckung verwendet noch immer keywordbasierte Entdeckung und übernimmt keine modernen Werkzeuge wie semantische Entdeckung. Ich spare Zeit, indem ich Sätze in Vektor-Embeddings umwandle, k-means-Clustering anwende und sie anschließend mit ChatGPT zusammenfassen lasse.

  • Es wird vorgeschlagen, dass technische Redakteure den Nutzen von Embeddings unterschätzen. Praktiker im Machine Learning unterschätzen Embeddings nicht.

  • Es gibt eine Frage dazu, ob das OpenAI-Embedding-Modell 8191/8192 Token unterstützt. Einen Sieger allein anhand der Tokengröße auszurufen ist irreführend; wichtigere Faktoren sind etwa Cross-Language-Unterstützung und Präzision.

  • Ich halte Embeddings für überschätzt; sie sind nicht die Universallösung, die viele erwartet haben. Sie ersetzen einfache Methoden wie BM25 nicht vollständig und bieten nur ein begrenztes semantisches Verständnis. Die hohen Erwartungen führen zu der Annahme, Embeddings würden genau das Gewünschte finden, doch wenn man die Ergebnisse nicht sorgfältig prüft, übersieht man Unstimmigkeiten leicht.