Einbettungen in .NET
Einbettungen sind die Art und Weise, wie LLMs die semantische Bedeutung erfassen. Sie sind numerische Darstellungen von nicht numerischen Daten, die ein LLM verwenden kann, um Beziehungen zwischen Konzepten zu bestimmen. Sie können Einbettungen verwenden, um einem KI-Modell zu helfen, die Bedeutung von Eingaben zu verstehen, sodass es Vergleiche und Transformationen durchführen kann, z. B. das Zusammenfassen von Text oder das Erstellen von Bildern aus Textbeschreibungen. LLMs können Einbettungen sofort verwenden, und Sie können Einbettungen in Vektordatenbanken speichern, um bei Bedarf semantische Erinnerungen für LLMs bereitzustellen.
Anwendungsfälle für Einbettungen
In diesem Abschnitt werden die wichtigsten Anwendungsfälle für Einbettungen aufgeführt.
Verwenden eigener Daten, um die Relevanz von Vervollständigungen zu verbessern
Verwenden Sie Ihre eigenen Datenbanken, um Einbettungen für Ihre Daten zu generieren, und integrieren Sie sie in ein LLM, um sie für Vervollständigungen verfügbar zu machen. Diese Verwendung von Einbettungen ist eine wichtige Komponente der Retrieval Augmented Generation.
Erhöhen Sie die Menge an Text, die Sie in eine Eingabeaufforderung einfügen können
Verwenden Sie Einbettungen, um den Kontext zu erhöhen, den Sie in eine Eingabeaufforderung einfügen können, ohne die Anzahl der erforderlichen Token zu erhöhen.
Angenommen, Sie möchten 500 Seiten Text in eine Eingabeaufforderung aufnehmen. Die Anzahl der Token für diese große Menge an unformatiertem Text überschreitet den Eingabetokengrenzwert, sodass es nicht möglich ist, direkt in eine Eingabeaufforderung einzuschließen. Sie können Einbettungen verwenden, um große Mengen dieses Texts in Teile zusammenzufassen und aufzuteilen, die klein genug sind, um in eine Eingabe passen, und dann die Ähnlichkeit jedes Stücks mit dem gesamten Rohtext zu bewerten. Anschließend können Sie ein Stück auswählen, das die semantische Bedeutung des Rohtexts am besten beibehält und in Ihrer Eingabeaufforderung verwenden, ohne das Tokenlimit zu überschreiten.
Ausführen einer Textklassifizierung, Zusammenfassung oder Übersetzung
Verwenden Sie Einbettungen, um einem Modell zu helfen, die Bedeutung und den Kontext von Text zu verstehen, und klassifizieren, zusammenfassen oder übersetzen Sie diesen Text. Sie können z. B. Einbettungen verwenden, um Modellen dabei zu helfen, Texte als positiv oder negativ, Spam oder nicht Spam oder Nachrichten oder Meinungen zu klassifizieren.
Generieren und Transkribieren von Audio
Verwenden Sie Audioeinbettungen, um Audiodateien oder Eingaben in Ihrer App zu verarbeiten.
Beispielsweise unterstützt Azure KI Speech eine Reihe von Audioeinbettungen, einschließlich Spracherkennung und Text-to-Speech. Sie können Audio in Echtzeit oder in Batches verarbeiten.
Umwandeln von Text in Bilder oder Bilder in Text
Für die semantische Bildverarbeitung sind Bildeinbettungen erforderlich, die die meisten LLMs nicht generieren können. Verwenden Sie ein Bildeinbettungsmodell wie ViT-, um Vektoreinbettungen für Bilder zu erstellen. Anschließend können Sie diese Einbettungen mit einem Bildgenerierungsmodell verwenden, um Bilder mithilfe von Text zu erstellen oder zu ändern oder umgekehrt. Sie können z. B. das DALL·E-Modell zum Generieren von Bildern wie Logos, Gesichter, Tiere und Landschaften verwenden.
Code generieren oder dokumentieren
Verwenden Sie Einbettungen, um einem Modell beim Erstellen von Code aus Text oder umgekehrt zu helfen, indem Sie verschiedene Code- oder Textausdrücke in eine gemeinsame Darstellung konvertieren. Sie können z. B. Einbettungen verwenden, um einem Modell beim Generieren oder Dokumentieren von Code in C# oder Python zu helfen.
Wählen Sie ein Einbettungsmodell aus
Sie generieren Einbettungen für Ihre Rohdaten mithilfe eines KI-Einbettungsmodells, das nicht numerische Daten in einen Vektor codieren kann (ein langes Array von Zahlen). Das Modell kann auch eine Einbettung in nicht numerische Daten decodieren, die die gleiche oder ähnliche Bedeutung wie die ursprünglichen Rohdaten aufweisen. Es gibt viele Einbettungsmodelle, die Sie verwenden können, wobei das text-embedding-ada-002
Modell von OpenAI eines der gängigen Modelle ist, die verwendet werden. Weitere Beispiele finden Sie in der Liste der in Azure OpenAIverfügbaren
Speichern und Verarbeiten von Einbettungen in eine Vektordatenbank
Nachdem Sie Einbettungen generiert haben, benötigen Sie eine Möglichkeit, sie zu speichern, damit Sie sie später mit Aufrufen eines LLM abrufen können. Vektordatenbanken sind so konzipiert, dass Vektoren gespeichert und verarbeitet werden, sodass sie ein natürliches Zuhause für Einbettungen sind. Verschiedene Vektordatenbanken bieten unterschiedliche Verarbeitungsfunktionen, daher sollten Sie eine basierend auf Ihren Rohdaten und Ihren Zielen auswählen. Informationen zu Ihren Optionen finden Sie unter Verfügbare Vektordatenbanklösungen.
Verwenden von Einbettungen in Ihre LLM-Lösung
Beim Erstellen von LLM-basierten Anwendungen können Sie den semantischen Kernel verwenden, um Einbettungsmodelle und Vektorspeicher zu integrieren, sodass Sie Textdaten schnell abrufen und Einbettungen generieren und speichern können. Auf diese Weise können Sie eine Vektordatenbanklösung verwenden, um semantische Erinnerungen zu speichern und abzurufen.