Risposte di base per i modelli PaLM 2

PaLM di terra ai tuoi dati

Per iniziare a utilizzare il grounding del modello in Generative AI su Vertex AI, devi completare alcuni prerequisiti. tra cui la creazione di un'origine dati Vertex AI Search, l'abilitazione della versione Enterprise per il datastore e il collegamento del datastore alla tua 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 da te forniti. 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 pagina Ricerca e conversazione.

    Ricerca e conversazione

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

Crea un datastore in Vertex AI Search

Per basare i tuoi modelli sui dati di origine, devi aver preparato e salvato i dati in Vertex AI Search. Per farlo, devi creare un datastore in Vertex AI Search.

Se parti 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 da alcuni minuti a diverse ore. Per il grounding sono supportati solo datastore non strutturati. Dopo aver preparato i dati per l'importazione, puoi creare un datastore di ricerca. Dopo aver creato correttamente un datastore, crea un'app di ricerca per collegarlo e attiva la versione Enterprise.

Eseguire la migrazione a terra del modello text-bison

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

Se utilizzi l'API, determini text-bison quando chiami a previsione. A questo scopo, aggiungi groundingConfig facoltativo e fai riferimento alla posizione del tuo datastore e al tuo ID datastore.

Se non conosci il tuo ID datastore:

  1. Nella console Google Cloud, vai alla pagina Vertex AI Search e fai clic su Datastore nel menu di navigazione. Vai alla pagina Datastore
  2. Fai clic sul nome del tuo datastore.
  3. Nella pagina Dati del datastore, recupera l'ID 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 per il modello da completare o continuare. Non aggiungere virgolette per il prompt qui.
  • TEMPERATURE: la temperatura viene utilizzata per il campionamento durante la generazione delle risposte, 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 creativa o meno aperta, 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 per un determinato messaggio 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 è possibile generare 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 loro probabilità equivale al valore 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 pari a 1 indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a 3 indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.

    Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. 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 a 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 seguente formato. Utilizza i valori forniti per le località e le collezioni: projects/{project_id}/locations/global/collections/default_collection/dataStores/{data_store_id}

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

Metodo HTTP e URL:

POST http://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:

arricciatura

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 \
"http://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 "http://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 in formato JSON simile alla seguente.

Console

Per fondare 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/disattiva l'opzione Attiva grounding e seleziona Personalizza.
  5. Dal menu a discesa dell'origine di grounding, seleziona Vertex AI Search.
  6. Inserisci il percorso del datastore di Vertex AI Search per 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, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, 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