Freigeben über


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. Zusammenfassen von Text oder 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.

Vergrößern der Textmenge, die Sie in eine Eingabeaufforderung einfügen können

Verwenden Sie Einbettungen, um die Kontextmenge zu vergrößern, die 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 für eine Eingabe sind, und dann die Ähnlichkeit der einzelnen Teile mit dem gesamten unformatierten Text zu bewerten. Anschließend können Sie einen Teil auswählen, der die semantische Bedeutung des unformatierten Texts am besten bewahrt, und ihn in Ihrer Eingabeaufforderung verwenden, ohne den Tokengrenzwert zu erreichen.

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 diesen Text dann zu klassifizieren, zusammenzufassen oder zu übersetzen. Sie können Einbettungen beispielsweise verwenden, um Modelle bei der Klassifizierung von Texten als positiv oder negativ, Spam oder nicht Spam, Nachrichten oder Meinungen zu unterstützen.

Generieren und Transkribieren von Audiodaten

Verwenden Sie Audioeinbettungen, um Audiodateien oder -eingaben in Ihrer App zu verarbeiten.

Beispielsweise unterstützt der Speech-Dienst eine Reihe von Audioeinbettungen, einschließlich Spracherkennung und Sprachsynthese. Sie können Audiodaten 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.

Generieren oder Dokumentieren von Code

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.

Auswählen eines Einbettungsmodells

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 eine ähnliche Bedeutung wie die ursprünglichen Rohdaten aufweisen. Es stehen viele Einbettungsmodelle für Sie zur Verfügung. Das Modell text-embedding-ada-002 von OpenAI ist eines der gängigen Modelle, die derzeit verwendet werden. Weitere Beispiele finden Sie in der Liste der in Azure OpenAI verfügbaren Einbettungsmodelle.

Speichern und Verarbeiten von Einbettungen in einer 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 für die Speicherung und Verarbeitung von Vektoren konzipiert und eignen sich daher hervorragend für Einbettungen. Verschiedene Vektordatenbanken bieten unterschiedliche Verarbeitungsfunktionen, daher sollten Sie eine Vektordatenbank basierend auf Ihren Rohdaten und Ihren Zielen auswählen. Informationen zu Ihren Optionen finden Sie unter Verfügbare Vektordatenbanklösungen.

Verwenden von Einbettungen in Ihrer LLM-Lösung

Beim Erstellen von LLM-basierten Anwendungen können Sie den semantischen Kernel verwenden, um Einbettungsmodelle und Vektorspeicher zu integrieren, sodass Sie schnell Textdaten 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.