Einbettungen erstellen
Embeddings wandeln Text in numerische Vektoren um, die die semantische Bedeutung erfassen, sodass KI-Modelle semantisch ähnliche Inhalte vergleichen und abrufen können. Ein Tutorial, das zeigt, wie Embeddings die Antworten bei der Chat-Vervollständigung verbessern können, indem sie einem Modell relevanten Kontext aus Ihrer eigenen Wissensdatenbank bereitstellen, finden Sie unter Verbesserung der Chat-Vervollständigung mit Vektor-Embeddings und RAG. Eine vollständige Liste der verfügbaren Parameter finden Sie unter OpenAI: Einbettungen erstellen.
Vorbereitende Schritte
-
Erstellen Sie ein Pay-As-You-Go- oder Abonnement- IBM Cloud-Konto. Testkonten werden nicht unterstützt. Weitere Informationen oder Anleitungen zum Upgrade Ihres Kontos finden Sie unter Kontotypen.
-
Erstellen Sie ein Red Hat AI Inference-Projekt.
-
Stellen Sie sicher, dass Sie über die Rolle Writer oder höher für den Dienst Red Hat AI Inference verfügen. Weitere Informationen finden Sie unter Verwalten des IAM-Zugriffs.
-
Rufen Sie Ihren API-Endpunkt ab. Alle API-Anfragen verwenden das folgende Basisformat URL:
https://us-east.rhai.ibm.com/v1/projects/<project_id>/inferenceErsetzen Sie
<project_id>durch Ihre Projekt-ID. Um diese zu finden, rufen Sie Red Hat AI Inference-Projekte auf und öffnen Sie Ihr Projekt.
Um zu überprüfen, ob ein Modell Embeddings unterstützt, listen Sie die Modelle auf oder rufen Sie ein Modell anhand der ID ab und vergewissern Sie sich, dass auf gesetzt supports_embeddings ist true.
Eingabeformate und Beschränkungen
Die Embeddings-API unterstützt die folgenden Eingabeformate für den Parameter input:
- Zeichenfolge
- Eine einzelne Textzeichenfolge, die in einen Einbettungsvektor umgewandelt werden soll.
- Array von Zeichenfolgen
- Ein Array aus Textzeichenfolgen, wobei jede Zeichenfolge in einen separaten Einbettungsvektor umgewandelt wird.
- Zahlenreihe
- Ein Array von Ganzzahlen, die Token darstellen und in einen Einbettungsvektor umgewandelt werden.
- Array von Arrays mit Zahlen
- Ein Array aus Token-Arrays, wobei jedes Token-Array in einen separaten Einbettungsvektor umgewandelt wird.
Wenn Sie Eingaben für Einbettungen übermitteln, gelten die folgenden Beschränkungen und Verhaltensweisen:
- Beschränkungen für Eingabetoken
- Jedes Einbettungsmodell definiert seine maximale Token-Anzahl basierend auf der Größe seines Kontextfensters.
- Auswertung von Array-Eingaben
- Wenn Sie ein Array mit mehreren Eingaben übermitteln, gilt das Limit für Eingabetoken für jeden Text einzeln.
- Grenzen überschreiten
- Wenn auch nur eine einzige Texteingabe im Array das Token-Limit des Modells überschreitet, lehnt die API die gesamte Anfrage ab und gibt einen Fehler
HTTP 400 Bad Requestzurück.
Ausgabemaße
Das Ergebnis einer Embedding-Anfrage ist ein hochdimensionaler Vektor. Berücksichtigen Sie die folgenden Eigenschaften von Ausgabevektoren:
- Darstellungsqualität
- Eine größere Größe des Ausgabevektors kann mehr Details darstellen und eine detailliertere semantische Bedeutung erfassen. Größere Vektoren erfordern jedoch mehr Speicherplatz für die Speicherung und Suche, was den Ressourcenverbrauch erhöhen kann.
- Konfigurieren der Vektorgröße
- Die Größe des Ausgabevektors ist modellabhängig. Obwohl die Embeddings-API einen Parameter
dimensionszur Konfiguration der Größe des Ausgabevektors unterstützt, wird dieser Parameter nur verwendet, wenn das ausgewählte Modell mit der Konfiguration von Dimensionsgrößen kompatibel ist.
Einbettungen erstellen
Verwenden Sie die Embeddings-API, um eine oder mehrere Texteingaben in Vektordarstellungen umzuwandeln. Die folgenden Beispiele zeigen, wie Sie mithilfe der API über cURL oder den Client OpenAI Python Einbettungen erstellen können.
curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <bearer_token>" \
-d '{
"model": "granite-embedding-278m-multilingual",
"input": [
"Manage your projects from the IBM Cloud console.",
"Use the API to automate workflows and integrate AI into your applications.",
"IBM Cloud offers a range of AI and machine learning services for enterprise applications."
]
}'
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
response = client.embeddings.create(
model="granite-embedding-278m-multilingual",
input=[
"Manage your projects from the IBM Cloud console.",
"Use the API to automate workflows and integrate AI into your applications.",
"IBM Cloud offers a range of AI and machine learning services for enterprise applications."
]
)
print(response.data[0].embedding)