Bei der Auswahl eines Embedding-Anbieters gibt es mehrere Faktoren, die du je nach deinen Anforderungen und Präferenzen berücksichtigen kannst:
Anthropic bietet kein eigenes Embedding-Modell an. Ein Embedding-Anbieter, der eine große Vielfalt an Optionen und Fähigkeiten bietet, die alle oben genannten Überlegungen abdecken, ist Voyage AI.
Voyage AI entwickelt hochmoderne Embedding-Modelle und bietet maßgeschneiderte Modelle für spezifische Branchendomänen wie Finanzen und Gesundheitswesen oder individuell fine-getunte Modelle für einzelne Kunden an.
Der Rest dieses Leitfadens bezieht sich auf Voyage AI, aber du solltest verschiedene Embedding-Anbieter evaluieren, um die beste Lösung für deinen spezifischen Anwendungsfall zu finden.
Voyage empfiehlt die Verwendung der folgenden Text-Embedding-Modelle:
Voyage 4 (neueste Generation)
| Modell | Kontextlänge | Embedding-Dimension | Beschreibung |
|---|---|---|---|
voyage-4-large | 32.000 | 1024 (Standard), 256, 512, 2048 | Die beste allgemeine und mehrsprachige Retrieval-Qualität. Siehe Blogbeitrag für Details. |
voyage-4 | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für allgemeine und mehrsprachige Retrieval-Qualität. Ausgewogenes Verhältnis zwischen Qualität und Effizienz. Siehe Blogbeitrag für Details. |
voyage-4-lite | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für Latenz und Kosten. Siehe Blogbeitrag für Details. |
voyage-4-nano | 32.000 | 1024 (Standard), 256, 512, 2048 | Open-Weight-Modell (Apache-2.0-Lizenz), verfügbar auf Hugging Face. Siehe Blogbeitrag für Details. |
Vorherige Generation
| Modell | Kontextlänge | Embedding-Dimension | Beschreibung |
|---|---|---|---|
voyage-3-large | 32.000 | 1024 (Standard), 256, 512, 2048 | Die beste allgemeine und mehrsprachige Retrieval-Qualität. Siehe Blogbeitrag für Details. |
voyage-3.5 | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für allgemeine und mehrsprachige Retrieval-Qualität. Siehe Blogbeitrag für Details. |
voyage-3.5-lite | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für Latenz und Kosten. Siehe Blogbeitrag für Details. |
voyage-code-3 | 32.000 | 1024 (Standard), 256, 512, 2048 | Optimiert für Code-Retrieval. Siehe Blogbeitrag für Details. |
voyage-finance-2 | 32.000 | 1024 | Optimiert für Finanz-Retrieval und RAG. Siehe Blogbeitrag für Details. |
voyage-law-2 | 16.000 | 1024 | Optimiert für juristisches und Long-Context-Retrieval und RAG. Außerdem verbesserte Leistung über alle Domänen hinweg. Siehe Blogbeitrag für Details. |
Zusätzlich werden die folgenden multimodalen Embedding-Modelle empfohlen:
| Modell | Kontextlänge | Embedding-Dimension | Beschreibung |
|---|---|---|---|
voyage-multimodal-3.5 | 32.000 | 1024 (Standard), 256, 512, 2048 | Leistungsstarkes multimodales Embedding-Modell, das verschachtelten Text, Bilder und Videos vektorisieren kann. Enthält Video-Unterstützung als erstes produktionsreifes Video-Embedding-Modell. Siehe Blogbeitrag für Details. |
voyage-multimodal-3 | 32.000 | 1024 | Leistungsstarkes multimodales Embedding-Modell, das verschachtelten Text und inhaltsreiche Bilder wie Screenshots von PDFs, Folien, Tabellen, Abbildungen und mehr vektorisieren kann. Siehe Blogbeitrag für Details. |
Brauchst du Hilfe bei der Entscheidung, welches Text-Embedding-Modell du verwenden sollst? Schau dir die FAQ an.
Um auf Voyage-Embeddings zuzugreifen:
export VOYAGE_API_KEY="<your secret key>"Du kannst die Embeddings entweder über das offizielle voyageai-Python-Paket oder über HTTP-Anfragen erhalten, wie unten beschrieben.
Das voyageai-Paket kann mit dem folgenden Befehl installiert werden:
pip install -U voyageaiAnschließend kannst du ein Client-Objekt erstellen und damit beginnen, deine Texte einzubetten:
import voyageai
vo = voyageai.Client()
# Dies verwendet automatisch die Umgebungsvariable VOYAGE_API_KEY.
# Alternativ kannst du vo = voyageai.Client(api_key="<your secret key>") verwenden
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddings ist eine Liste von zwei Embedding-Vektoren, die jeweils 1024 Gleitkommazahlen enthalten. Nach dem Ausführen des obigen Codes werden die beiden Embeddings auf dem Bildschirm ausgegeben:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding for "Sample text 2"Beim Erstellen der Embeddings kannst du der embed()-Funktion einige weitere Argumente übergeben.
Weitere Informationen zum Voyage-Python-Paket findest du in der Voyage-Dokumentation.
Du kannst Embeddings auch über die Voyage-HTTP-API anfordern. Zum Beispiel kannst du 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-4"
}'Die Antwort, die du erhältst, 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-4",
"usage": {
"total_tokens": 10
}
}Weitere Informationen zur Voyage-HTTP-API findest du in der Voyage-Dokumentation.
Voyage-Embeddings sind auf dem AWS Marketplace verfügbar. Anweisungen für den Zugriff auf Voyage über AWS findest du in der Voyage-AWS-Marketplace-Dokumentation.
Das folgende kurze Beispiel zeigt, wie du Embeddings verwendest.
Angenommen, du hast einen kleinen Korpus von sechs Dokumenten, aus denen du abrufen möchtest
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.",
]Verwende zunächst Voyage, um jedes Dokument in einen Embedding-Vektor umzuwandeln
import voyageai
vo = voyageai.Client()
# Bette die Dokumente ein
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddingsDie Embeddings ermöglichen dir semantische Suche / Retrieval im Vektorraum. Gegeben eine Beispielanfrage,
query = "When is Apple's conference call scheduled?"Wandle sie als Nächstes in ein Embedding um und führe eine Nearest-Neighbor-Suche durch, um das relevanteste Dokument basierend auf der Distanz im Embedding-Raum zu finden.
import numpy as np
# Bette die Anfrage ein
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]
# Berechne die Ähnlichkeit
# Voyage-Embeddings sind auf Länge 1 normalisiert, daher sind Skalarprodukt
# und Kosinus-Ähnlichkeit identisch.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Beachte, dass input_type="document" und input_type="query" jeweils zum Einbetten des Dokuments und der Anfrage verwendet werden. Weitere Spezifikationen findest du unter Voyage-Python-Bibliothek.
Die Ausgabe wäre das 5. Dokument, das tatsächlich am relevantesten für die Anfrage 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 du nach einer detaillierten Sammlung von Cookbooks suchst, die zeigen, wie man RAG mit Embeddings einschließlich Vektordatenbanken umsetzt, schau dir das RAG-Cookbook an.
Besuche die Preisseite von Voyage für die aktuellsten Preisdetails.
Was this page helpful?