Bodenantworten für PaLM 2-Modelle

Für die ersten Schritte mit der Modellfundierung in der generativen AI in Vertex AI müssen Sie einige Voraussetzungen erfüllen. Dazu gehören das Erstellen einer Vertex AI Search-Datenquelle, das Aktivieren der Enterprise-Version für Ihren Datenspeicher und das Verknüpfen Ihres Datenspeichers mit Ihrer Anwendung in Vertex AI Search. Die Datenquelle dient als Grundlage für das Fundieren von text-bison und chat-bison in Vertex AI.

Vertex AI Search unterstützt Sie beim Einstieg in hochwertige Suche oder Empfehlungen auf der Grundlage der von Ihnen bereitgestellten Daten. Weitere Informationen zu Vertex AI Search finden Sie unter Einführung in Vertex AI Search.

Vertex AI Search aktivieren

  1. Rufen Sie in der Google Cloud Console die Seite Suche und Unterhaltung auf.

    Search and Conversation

  2. Lesen und akzeptieren Sie die Nutzungsbedingungen und klicken Sie anschließend auf Fortfahren und API aktivieren.

Datenspeicher in Vertex AI Search erstellen

Um Ihre Modelle auf Ihren Quelldaten zu fundieren, müssen Sie die Daten vorbereitet und in Vertex AI Search gespeichert haben. Dazu müssen Sie einen Datenspeicher in Vertex AI Search erstellen.

Wenn Sie bei null beginnen, müssen Sie Ihre Daten für die Aufnahme in Vertex AI Search vorbereiten. Weitere Informationen finden Sie unter Daten für die Aufnahme vorbereiten. Je nach Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern. Nur unstrukturierte Datenspeicher werden für das Fundieren unterstützt. Nachdem Sie Ihre Daten für die Datenaufnahme vorbereitet haben, können Sie einen Suchdatenspeicher erstellen. Nachdem Sie erfolgreich einen Datenspeicher erstellt haben, erstellen Sie eine Suchanwendung, um eine Verknüpfung dazu herzustellen, und aktivieren Sie die Enterprise-Version.

Das text-bison-Modell fundieren

Fundierung ist für die Modelle text-bison und chat-bison verfügbar. In den folgenden Beispielen wird das Foundation Model text-bison verwendet.

Wenn Sie die API verwenden, fundieren Sie text-bison beim Aufrufen von Vorhersagen. Dazu fügen Sie den optionalen Parameter groundingConfig hinzu und verweisen auf den Speicherort und die ID des Datenspeichers.

Wenn Sie Ihre Datenspeicher-ID nicht kennen, gehen Sie so vor:

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Search auf und klicken Sie im Navigationsmenü auf Datenspeicher. Zur Seite „Datenspeicher“
  2. Klicken Sie auf den Namen des Datenspeichers.
  3. Rufen Sie auf der Datenseite Ihres Datenspeichers die Datenspeicher-ID ab.

REST

Senden Sie zum Testen eines Text-Prompts mit der Vertex AI API eine POST-Anfrage an den Endpunkt des Publisher-Modells.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • PROMPT: Ein Prompt ist eine Anfrage in natürlicher Sprache, die an ein Sprachmodell gesendet wird, um eine Antwort zu erhalten. Eingabeaufforderungen können Fragen, Anleitungen, Kontextinformationen, Beispiele und Text enthalten, die das Modell fertigstellen oder fortsetzen soll. (Hier keine Anführungszeichen um die Eingabeaufforderung hinzufügen.)
  • TEMPERATURE: Die Temperatur wird für die Probenahme während der Antwortgenerierung verwendet. Dies passiert, wenn topP und topK angewendet werden. Die Temperatur bestimmt den Grad der Zufälligkeit bei der Tokenauswahl. Niedrigere Temperaturen eignen sich gut für Prompts, die eine weniger offene oder kreative Antwort erfordern, während höhere Temperaturen zu vielfältigeren oder kreativeren Ergebnissen führen können. Eine Temperatur von 0 bedeutet, dass immer die Tokens mit der höchsten Wahrscheinlichkeit ausgewählt werden. In diesem Fall sind die Antworten auf einen bestimmten Prompt größtenteils deterministisch, aber eine gewisse Variation ist dennoch möglich.

    Wenn das Modell eine zu allgemeine oder zu kurze Antwort zurückgibt, oder wenn das Modell eine Fallback-Antwort ausgibt, versuchen Sie, die Temperatur zu erhöhen.

  • MAX_OUTPUT_TOKENS: Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa vier Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.

    Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für längere Antworten an.

  • TOP_P: Der Wert „Top-P“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Die Tokens werden von den wahrscheinlichsten (siehe „Top-K“) bis zu den unwahrscheinlichsten Werten ausgewählt, bis die Summe ihrer Wahrscheinlichkeiten dem „Top-P“-Wert entspricht. Beispiel: Wenn die Tokens A, B und C eine Wahrscheinlichkeit von 0,3, 0,2 und 0,1 haben und der „Top-P“-Wert 0.5 ist, wählt das Modell anhand der Temperatur entweder A oder B als das nächste Token und C als Kandidaten ausschließen.

    Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

  • TOP_K: Der Wert „Top-K“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Ein „Top-K“ von 1 bedeutet, dass das nächste ausgewählte Token unter den Tokens im Modell-Vokabular (auch als gierige Decodierung bezeichnet) am wahrscheinlichsten ist, während ein „Top-K“ von3 bedeutet, dass das nächste Token mithilfe der Temperatur aus den drei wahrscheinlichsten Tokens ausgewählt wird.

    Für jeden Tokenauswahlschritt werden die „Top-K“-Tokens mit den höchsten Wahrscheinlichkeiten abgetastet. Anschließend werden Tokens weiter auf der Grundlage von „Top-P“ gefiltert, wobei das endgültige Token mithilfe von Temperaturproben ausgewählt wird.

    Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

  • SOURCE_TYPE Der Datenquellentyp, auf dem das Modell fundiert wird. Es wird nur Vertex AI Search unterstützt.
  • VERTEX_AI_SEARCH_DATA_STORE: Der Pfad zur Datenspeicher-ID von Vertex AI Search.

    VERTEX_AI_SEARCH_DATA_STORE muss das folgende Format haben: Verwenden Sie die angegebenen Werte für Standorte und Sammlungen: projects/{project_id}/locations/global/collections/default_collection/dataStores/{data_store_id}

    Hinweis: Die Projekt-ID in diesem Pfad zur Datenspeicher-ID ist Ihre Vertex AI Search-Projekt-ID.

HTTP-Methode und URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict

JSON-Text der Anfrage:

{
  "instances": [
    { "prompt": "PROMPT"}
  ],
  "parameters": {
    "temperature": TEMPERATURE,
    "maxOutputTokens": MAX_OUTPUT_TOKENS,
    "topP": TOP_P,
    "topK": TOP_K,
    "groundingConfig": {
      "sources": [
          {
              "type": "VERTEX_AI_SEARCH",
              "vertexAiSearchDatastore": "VERTEX_AI_SEARCH_DATA_STORE"
          }
      ]
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Console

Folgen Sie dieser Anleitung, um ein Modell über Vertex AI Studio zu fundieren.

  1. Wählen Sie im Model Garden die Modellkarte PaLM 2 für Text Bison oder PaLM 2 für Chat Bison.

    Zum Model Garden
  2. Klicken Sie auf der Modellkarte auf Aufforderungsentwurf öffnen. Vertex AI Studio wird geöffnet.
  3. Wählen Sie im Parameterbereich die Option Erweitert aus.
  4. Schalten Sie die Option Fundierung aktivieren ein und wählen Sie Anpassen aus.
  5. Wählen Sie im Drop-down-Menü „Fundierungsquelle“ die Option Vertex AI Search aus.
  6. Geben Sie den Pfad zum Vertex AI Search-Datenspeicher für Ihre Inhalte ein. Der Pfad muss dieses Format haben: projects/{project_id}/locations/global/collections/default_collection/dataStores/{data_store_id}.
  7. Geben Sie Ihren Prompt ein und klicken Sie auf Senden.

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.

import vertexai

from vertexai.language_models import GroundingSource, TextGenerationModel

# TODO(developer): Update project_id and location
vertexai.init(project=PROJECT_ID, location="us-central1")

# TODO developer - override these parameters as needed:
parameters = {
    "temperature": 0.7,  # Temperature controls the degree of randomness in token selection.
    "max_output_tokens": 256,  # Token limit determines the maximum amount of text output.
    "top_p": 0.8,  # Tokens are selected from most probable to least until the sum of their probabilities equals the top_p value.
    "top_k": 40,  # A top_k of 1 means the selected token is the most probable among all tokens.
}

model = TextGenerationModel.from_pretrained("text-bison@002")

# TODO(developer): Update values for data_store_location, data_store_id
# data_store_id = ""
# data_store_location = ""
if data_store_id and data_store_location:
    # Use Vertex AI Search data store
    grounding_source = GroundingSource.VertexAISearch(
        data_store_id=data_store_id, location=data_store_location
    )
else:
    # Use Google Search for grounding (Private Preview)
    grounding_source = GroundingSource.WebSearch()

response = model.predict(
    "What are the price, available colors, and storage size options of a Pixel Tablet?",
    grounding_source=grounding_source,
    **parameters,
)
print(f"Response from Model: {response.text}")
print(f"Grounding Metadata: {response.grounding_metadata}")

Nächste Schritte