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.

  • Authentifizieren Sie sich bei der API.

  • Rufen Sie Ihren API-Endpunkt ab. Alle API-Anfragen verwenden das folgende Basisformat URL:

    https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference
    

    Ersetzen 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 Request zurü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 dimensions zur 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)