Bei der Auswahl eines Embeddings-Anbieters gibt es mehrere Faktoren, die Sie je nach Ihren Anforderungen und Vorlieben berücksichtigen können:
Anthropic bietet kein eigenes Embedding-Modell an. Ein Embeddings-Anbieter, der eine große Vielfalt an Optionen und Funktionen bietet, die alle oben genannten Überlegungen umfasst, ist Voyage AI.
Voyage AI erstellt hochmoderne Embedding-Modelle und bietet angepasste Modelle für spezifische Industriebereiche wie Finanzen und Gesundheitswesen oder maßgeschneiderte feinabgestimmte Modelle für einzelne Kunden.
Der Rest dieses Leitfadens ist für Voyage AI, aber wir ermutigen Sie, eine Vielzahl von Embeddings-Anbietern zu bewerten, um die beste Lösung für Ihren spezifischen Anwendungsfall zu finden.
Voyage empfiehlt die Verwendung der folgenden Text-Embedding-Modelle:
Was this page helpful?
| Modell | Kontextlänge | Embedding-Dimension | Beschreibung |
|---|
voyage-3-large | 32.000 | 1024 (Standard), 256, 512, 2048 | Die beste allgemeine und mehrsprachige Abrufqualität. Siehe Blog-Beitrag für Details. |
voyage-3.5 | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für allgemeine und mehrsprachige Abrufqualität. Siehe Blog-Beitrag für Details. |
voyage-3.5-lite | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für Latenz und Kosten. Siehe Blog-Beitrag für Details. |
voyage-code-3 | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für Code-Abruf. Siehe Blog-Beitrag für Details. |
voyage-finance-2 | 32.000 | 1024 | Optimiert für Finanz-Abruf und RAG. Siehe Blog-Beitrag für Details. |
voyage-law-2 | 16.000 | 1024 | Optimiert für rechtliche und langkontextuelle Abruf- und RAG-Aufgaben. Auch verbesserte Leistung über alle Domänen hinweg. Siehe Blog-Beitrag für Details. |
Zusätzlich werden die folgenden multimodalen Embedding-Modelle empfohlen:
| Modell | Kontextlänge | Embedding-Dimension | Beschreibung |
|---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | Reichhaltiges multimodales Embedding-Modell, das verschachtelte Text- und inhaltsreiche Bilder wie Screenshots von PDFs, Folien, Tabellen, Abbildungen und mehr vektorisieren kann. Siehe Blog-Beitrag für Details. |
Benötigen Sie Hilfe bei der Entscheidung, welches Text-Embedding-Modell Sie verwenden sollen? Schauen Sie sich die FAQ an.
Um auf Voyage-Embeddings zuzugreifen:
export VOYAGE_API_KEY="<your secret key>"Sie können die Embeddings entweder mit dem offiziellen voyageai Python-Paket oder HTTP-Anfragen abrufen, wie unten beschrieben.
Das voyageai-Paket kann mit dem folgenden Befehl installiert werden:
pip install -U voyageaiDann können Sie ein Client-Objekt erstellen und damit beginnen, es zum Einbetten Ihrer Texte zu verwenden:
import voyageai
vo = voyageai.Client()
# This will automatically use the environment variable VOYAGE_API_KEY.
# Alternatively, you can use vo = voyageai.Client(api_key="<your secret key>")
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddings wird eine Liste von zwei Embedding-Vektoren sein, von denen jeder 1024 Gleitkommazahlen enthält. Nach dem Ausführen des obigen Codes werden die beiden Embeddings auf dem Bildschirm gedruckt:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding for "Sample text 2"Beim Erstellen der Embeddings können Sie mehrere andere Argumente an die embed()-Funktion übergeben.
Weitere Informationen zum Voyage Python-Paket finden Sie in der Voyage-Dokumentation.
Sie können Embeddings auch durch Anfragen an die Voyage HTTP API abrufen. Beispielsweise können Sie eine HTTP-Anfrage über den curl-Befehl in einem Terminal senden:
curl https://api.voyageai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VOYAGE_API_KEY" \
-d '{
"input": ["Sample text 1", "Sample text 2"],
"model": "voyage-3.5"
}'Die Antwort, die Sie erhalten würden, ist ein JSON-Objekt, das die Embeddings und die Token-Nutzung enthält:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858, ...],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805, ...],
"index": 1
}
],
"model": "voyage-3.5",
"usage": {
"total_tokens": 10
}
}
Weitere Informationen zur Voyage HTTP API finden Sie in der Voyage-Dokumentation.
Voyage-Embeddings sind auf dem AWS Marketplace verfügbar. Anweisungen zum Zugriff auf Voyage auf AWS finden Sie hier.
Jetzt, da wir wissen, wie man Embeddings erhält, schauen wir uns ein kurzes Beispiel an.
Angenommen, wir haben einen kleinen Korpus von sechs Dokumenten zum Abrufen
documents = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
"20th-century innovations, from radios to smartphones, centered on electronic advancements.",
"Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
"Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
"Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature."
]
Wir werden zunächst Voyage verwenden, um jeden von ihnen in einen Embedding-Vektor umzuwandeln
import voyageai
vo = voyageai.Client()
# Embed the documents
doc_embds = vo.embed(
documents, model="voyage-3.5", input_type="document"
).embeddingsDie Embeddings ermöglichen es uns, semantische Suche/Abruf im Vektorraum durchzuführen. Gegeben eine Beispielabfrage,
query = "When is Apple's conference call scheduled?"konvertieren wir sie in ein Embedding und führen eine Nearest-Neighbor-Suche durch, um das relevanteste Dokument basierend auf der Entfernung im Embedding-Raum zu finden.
import numpy as np
# Embed the query
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# Compute the similarity
# Voyage embeddings are normalized to length 1, therefore dot-product
# and cosine similarity are the same.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Beachten Sie, dass wir input_type="document" und input_type="query" zum Einbetten des Dokuments bzw. der Abfrage verwenden. Weitere Spezifikationen finden Sie hier.
Die Ausgabe wäre das 5. Dokument, das tatsächlich am relevantesten für die Abfrage ist:
Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.Wenn Sie nach einem detaillierten Satz von Cookbooks zur Durchführung von RAG mit Embeddings suchen, einschließlich Vektordatenbanken, schauen Sie sich unser RAG-Cookbook an.
Besuchen Sie Voyages Preisseite für die aktuellsten Preisdetails.