Risposte di base per i modelli PaLM 2

Per iniziare a utilizzare il grounding del modello nell'AI generativa su Vertex AI, devi completare alcuni prerequisiti. tra cui la creazione di un'origine dati di Vertex AI Search, abilitando la versione Enterprise per il datastore e collegando quest'ultimo all'app in Vertex AI Search. L'origine dati funge da base per il grounding text-bison e chat-bison in Vertex AI.

Vertex AI Search ti aiuta a iniziare con ricerche di alta qualità o consigli in base ai dati che fornisci. Per scoprire di più su Vertex AI Search, consulta Introduzione a Vertex AI Search.

Abilita Vertex AI Search

  1. Nella console Google Cloud, vai alla sezione Ricerca e Conversazione.

    Ricerca e Conversazione

  2. Leggi e accetta i Termini di servizio, quindi fai clic su Continua e attiva l'API.

Crea un datastore in Vertex AI Search

Per basare i modelli sui dati di origine, devi avere preparato i tuoi dati in Vertex AI Search. Per farlo, devi creare in un archivio dati in Vertex AI Search.

Se inizi da zero, devi preparare i dati per l'importazione in Vertex AI Search. Consulta Preparare i dati per l'importazione per iniziare. A seconda delle dimensioni dei dati, l'importazione può richiedere diverse minuti o diverse ore. Per il grounding sono supportati solo i datastore non strutturati. Dopo aver preparato i dati per l'importazione, puoi creare un datastore di ricerca. Dopo aver creato un datastore, crea un'app di ricerca per collegarlo e Attivare la versione Enterprise.

Esegui il grounding del modello text-bison

Il grounding è disponibile per i modelli text-bison e chat-bison. Questi seguenti esempi utilizzano il modello di base text-bison.

Se utilizzi l'API, esegui il grounding di text-bison quando chiami la previsione. Da fare Aggiungi l'oggetto facoltativo groundingConfig e fai riferimento al tuo datastore località e l'ID datastore.

Se non conosci l'ID datastore, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Vertex AI Search e Nel menu di navigazione, fai clic su Datastore. Vai alla pagina Datastore
  2. Fai clic sul nome del datastore.
  3. Ottieni l'ID datastore nella pagina Dati del datastore.

REST

Per testare un prompt di testo utilizzando l'API Vertex AI, invia una richiesta POST al endpoint del modello del publisher.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto.
  • PROMPT: Un prompt è una richiesta in linguaggio naturale inviata a un modello linguistico per ricevere una risposta. I prompt possono contenere domande, istruzioni, informazioni, esempi e testo per completare o continuare il modello. Non aggiungere virgolette intorno al prompt qui.
  • TEMPERATURE: La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando topP e topK. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno aperta o creativa, mentre temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura di 0 significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato sono per lo più deterministici, ma è ancora possibile una piccola variazione.

    Se il modello restituisce una risposta troppo generica, troppo breve, oppure fornisce una risposta di riserva di risposta, prova ad aumentare la temperatura.

  • MAX_OUTPUT_TOKENS: Numero massimo di token che possono essere generati nella risposta. Un token è di circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.

    Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe diverse.

  • TOP_P: Top-P cambia il modo in cui il modello seleziona i token per l'output. Token selezionati dal più probabile (vedi top-K) al meno probabile fino alla somma delle probabilità equivale al valore di top-P. Ad esempio, se i token A, B e C hanno una probabilità di 0,3, 0,2 e 0,1 e il valore di top-P è 0.5, il modello seleziona A o B come token successivo utilizzando la temperatura ed esclude C come candidato.

    Specifica un valore più basso per risposte meno casuali e un valore più alto per più risposte risposte casuali.

  • TOP_K: Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K di 1 significa che il successivo token selezionato è il più probabile tra tutti nel vocabolario del modello (chiamato anche decodifica greedy), mentre una top-K di 3 significa che il token successivo viene selezionato tra i tre probabili token utilizzando la temperatura.

    Per ogni passaggio di selezione dei token, vengono mostrati i token top-K con il vengono campionate. Quindi i token vengono ulteriormente filtrati in base a top-p con il token finale selezionato utilizzando il campionamento della temperatura.

    Specifica un valore più basso per risposte meno casuali e un valore più alto per più risposte risposte casuali.

  • SOURCE_TYPE Il tipo di origine dati su cui si basa il modello a. È supportato solo Vertex AI Search.
  • VERTEX_AI_SEARCH_DATA_STORE: il percorso dell'ID del datastore di Vertex AI Search.

    VERTEX_AI_SEARCH_DATA_STORE deve utilizzare il formato seguente. Utilizza i valori forniti per le località e le raccolte: projects/{project_id}/locations/global/collections/default_collection/dataStores/{data_store_id}

    Nota: l'ID progetto in questo percorso ID datastore è l'ID progetto di Vertex AI Search.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "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"
          }
      ]
    }
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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

Dovresti ricevere una risposta JSON simile alla seguente.

Console

Per eseguire il grounding di un modello da Vertex AI Studio, segui queste istruzioni.

  1. Seleziona la scheda del modello PaLM 2 per Text Bison o PaLM 2 per Chat Bison in Model Garden.

    Vai a Model Garden
  2. Nella scheda del modello, fai clic su Apri progettazione prompt. Si apre Vertex AI Studio.
  3. Nel riquadro dei parametri, seleziona Avanzate.
  4. Attiva l'opzione Abilita grounding e seleziona Personalizza.
  5. Dal menu a discesa delle origini di grounding, seleziona Vertex AI Search.
  6. Inserisci il percorso del datastore di Vertex AI Search verso i tuoi contenuti. Il percorso deve hanno questo formato: projects/{project_id}/locations/global/collections/default_collection/dataStores/{data_store_id}.
  7. Inserisci il prompt e fai clic su Invia.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.

import vertexai

from vertexai.language_models import GroundingSource, TextGenerationModel

# TODO(developer): Update values for project_id, location
vertexai.init(project=project_id, location=location)

# 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
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}")

Passaggi successivi