Risposte di base per i modelli PaLM 2

Per iniziare a utilizzare il grounding del modello in Generative AI su Vertex AI, devi completare alcuni prerequisiti. Queste includono la creazione di un'origine dati Vertex AI Search, l'abilitazione della versione Enterprise per il datastore e il collegamento del datastore all'app in Vertex AI Search. L'origine dati funge da base per il grounding di text-bison e chat-bison in Vertex AI.

Vertex AI Search ti aiuta a iniziare con ricerche o suggerimenti di alta qualità basati sui dati che fornisci. Per saperne di più su Vertex AI Search, consulta Introduzione a Vertex AI Search.

Abilita Vertex AI Search

  1. Nella console Google Cloud, vai alla pagina 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 aver preparato e salvato i dati in Vertex AI Search. Per farlo, devi creare un archivio dati in Vertex AI Search.

Se inizi da zero, devi preparare i dati per l'importazione in Vertex AI Search. Per iniziare, consulta Preparare i dati per l'importazione. A seconda delle dimensioni dei dati, l'importazione può richiedere da vari minuti a 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 da collegare e attiva la versione Enterprise.

Esegui il grounding del modello text-bison

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

Se utilizzi l'API, esegui il grounding di text-bison quando chiami la previsione. Per farlo, aggiungi il valore facoltativo groundingConfig e fai riferimento alla posizione e all'ID del 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 tuo 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 all'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 contestuali, esempi e testo da completare o continuare. Non aggiungere virgolette intorno al prompt qui.
  • TEMPERATURE: La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando vengono applicati 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 le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a 0 significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte a una determinata richiesta sono per lo più deterministiche, ma è comunque possibile una piccola variazione.

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

  • MAX_OUTPUT_TOKENS: numero massimo di token che possono essere generati nella risposta. Un token equivale a 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.

  • TOP_P: Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi top-K) al meno probabile finché la somma delle probabilità non corrisponde 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 selezionerà 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 risposte più casuali.

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

    Per ogni passaggio di selezione dei token, vengono campionati i token top-K con le probabilità più alte. Quindi i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.

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

  • SOURCE_TYPE Il tipo di origine dati su cui si basa il modello. È 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 avere 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 maggiori informazioni, consulta la 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