Einbetten-Modelle sind transformatorbasierte neuronale Netze, die Teile von Dokumenten (d. h. Textpassagen) in eine numerische Darstellung oder einen Vektor transformieren. Inhalte mit ähnlicher Bedeutung oder Semantik werden einer ähnlichen Darstellung im latenten Raum zugeordnet, wie in der Abbildung unten zu sehen ist.
Die Vektorisierung der Sprache ermöglicht KI-gestützte Anwendungen wie „Chatten mit Dokumenten“ oder die semantische Suche statt der herkömmlichen (lexikalischen) Stichwortsuche.
Das von Ihnen gewählte Einbettungsmodell hat einen erheblichen Einfluss auf die Abrufgenauigkeit, die Latenz und die Rechenkosten Ihres RAG-Systems. Die Wahl des Einbettungsmodells wird maßgeblich von dessen Größe beeinflusst, die von zwei Eigenschaften abhängt: der Einbettungsdimension und der Anzahl der Modellparameter.
Ein größeres Einbettungsmodell verbessert typischerweise die Abrufleistung, allerdings auf Kosten erhöhter Latenz, Speicher und rechnerischer (finanzieller) Kosten. Umgekehrt bietet ein kleineres Einbettungsmodell in der Regel eine geringere Leistung, benötigt aber weniger Speicher, benötigt weniger Power und ist zur Laufzeit schneller. Wählen Sie ein Einbettungsmodell, das die Leistungsanforderungen mit den verfügbaren Ressourcen in Einklang bringt.
Bestimmte Einbettungsmodelle sind sprachspezifisch (z.B. spanische Einbettungsmodell, die für spanische Kunden entwickelt wurden) und domänenspezifisch (z. B. ein Modell, das auf onkologische Terminologie trainiert wurde, um RAG über medizinische Dateien zu ermöglichen).
Wir empfehlen Ihnen, die Einbettungsmodelle zu verwenden, die in watsonx eingesetzt werden: die von IBM entwickelten Slate-Modelle oder die unten aufgeführten Modelle von Drittanbietern. Bitte lesen Sie diese Dokumentation, um mehr über die einzelnen Modelle zu erfahren. Weitere Informationen zu Abrechnungskursen finden Sie unter watsonx-Abrechnungstarife.
IBM Slate-Modelle
| Modellname | API model_id | Abrechnungsklasse | Maximale Anzahl an Eingabe-Tokens | Anzahl der Dimensionen | Weitere Informationen |
|---|---|---|---|---|---|
| slate-125m-english-rtrvr | ibm/slate-125m-english-rtrvr | Klasse C1 | 512 | 768 | Modellkarte |
| slate-30m-english-rtrvr | ibm/slate-30m-english-rtrvr | Klasse C1 | 512 | 384 | Modellkarte |
Das slate-125m-english-rtrvr Foundation Model wird von IBM bereitgestellt. Das slate-125m-english-rtrvr Foundation Model generiert Einbettungen für verschiedene Eingaben wie Anfragen, Passagen oder Dokumente. Das Trainingsziel ist die Maximierung der Kosinusähnlichkeit zwischen einer Anfrage und einer Passage. Dieser Prozess liefert zwei Einbettungen, eine, die die Frage repräsentiert, und eine, die den Textabschnitt repräsentiert, wodurch ein Vergleich der beiden über die Kosinusähnlichkeit ermöglicht wird.
Anwendung: Zwei- bis dreimal langsamer, aber etwas leistungsfähiger als das Modell slate-30m-english-rtrvr. Unterstützte Sprachen: Englisch
Das Basismodell slate-30m-english-rtrvr ist eine destillierte Version des Modells slate-125m-english-rtrvr, die beide von IBM bereitgestellt werden. Das slate-30m-english-rtrvr-Einbettungsmodell wird darauf trainiert, die Kosinusähnlichkeit zwischen zwei Eingaben zu maximieren, sodass die Einbettungen später anhand der Ähnlichkeit bewertet werden können.
Nutzung: Zwei- bis dreimal schneller und hat etwas geringere Leistung als das Modell slate-125m-english-rtrvr. Unterstützte Sprachen: Englisch
Mit watsonX verfügbare Einbettungsmodelle von Drittanbietern
| Modellname | API model_id | Anbieter | Abrechnungsklasse | Maximale Anzahl an Eingabe-Tokens | Anzahl der Dimensionen | Weitere Informationen |
|---|---|---|---|---|---|---|
| all-minilm-l12-v2 | sentence-transformers/all-minilm-l12-v2 | Open-Source-Community für die Verarbeitung natürlicher Sprache (NLP) und Computer Vision (CV). | Klasse C1 | 256 | 384 | Modellkarte |
| multilingual-e5-large | intfloat/multilingual-e5-large | Microsoft | Klasse C1 | 512 | 1024 | Modellkarte, Forschungsarbeit |
Das all-minilm-l12-v2-Embedding-Modell wird von der Open-Source-Community für Verarbeitung natürlicher Sprache (NLP) und Computer Vision (CV) entwickelt und von HuggingFace bereitgestellt.
Unterstützte Sprachen: Englisch
Verwendung: Für Anwendungsfälle, in denen Sie Einbettungen für Texte in einer anderen Sprache als Englisch generieren möchten.
Unterstützte natürliche Sprachen: Bis zu 100 Sprachen. Einzelheiten entnehmen Sie bitte der Modellkarte.
Weitere Informationen zu unterstützten Einbettungsmodellen finden Sie in der watsonx-Dokumentation.
Install ibm-watsonx-ai Python library
pip install -U ibm-watsonx-ai
Verwenden Sie die watsonx-Einbettungs-API und die verfügbaren Einbettungsmodelle, um Text-Einbettungen zu generieren.
from ibm_watsonx_ai.metanames import EmbedTextParamsMetaNames as EmbedParams
from ibm_watsonx_ai.foundation_models.utils.enums import EmbeddingTypes
from ibm_watsonx_ai.foundation_models import Embeddings
# Setzen Sie truncate_input_tokens auf einen Wert, der gleich oder kleiner als die maximal zulässige Anzahl an Token für das von Ihnen verwendete Einbettungsmodell ist. Wenn Sie diesen Wert nicht angeben und die Eingabe mehr Token enthält, als das Modell verarbeiten kann, wird ein Fehler erzeugt.
embed_params = {
EmbedParams.TRUNCATE_INPUT_TOKENS: 128,
EmbedParams.RETURN_OPTIONS: {
'input_text': True
}
}
embedding = Embeddings(
model_id=EmbeddingTypes.IBM_SLATE_30M_ENG,
credentials=credentials,
params=embed_params,
project_id=project_id,
space_id=None,
verify=False
)
q = [
"A foundation model is a large scale generative AI model that can be adapted to a wide range of downstream tasks.",
"Generative AI a class of AI algorithms that can produce various types of content including text, source code, imagery, audio, and synthetic data."
]
embedding_vectors = embedding.embed_documents(texts=q)
print(embedding_vectors)
Verwenden Sie watsonx Granite Model Series und Einbettungen, Chroma und LangChain, um Fragen (RAG) und LangChain zu beantworten
Aktualisiert: 15. November 2024