Fondamento delle risposte per i modelli PaLM 2

Per iniziare a utilizzare l'ancoraggio del modello nell'IA generativa su Vertex AI, devi completare alcuni prerequisiti. Ad esempio, la creazione di un'origine dati di Vertex AI Search, l'attivazione della versione Enterprise per il tuo datastore e il collegamento del datastore alla tua app in Vertex AI Search. L'origine dati costituisce la base per il groundingtext-bison e chat-bison in Vertex AI.

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

Attiva 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.

Creare un datastore in Vertex AI Search

Per eseguire il grounding dei 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. Per iniziare, consulta Preparare i dati per l'importazione. A seconda delle dimensioni dei dati, l'importazione può richiedere da alcuni minuti a diverse ore. Per l'aggiornamento sono supportati solo gli archivi di dati non strutturati. Dopo aver preparato i dati per l'importazione, puoi creare un datastore per la ricerca. Dopo aver creato correttamente un datastore, crea un'app di ricerca da collegare e attiva la versione Enterprise.

Collegare a terra il modello text-bison

Il grounding è disponibile per i modelli text-bison e chat-bison. Gli esempi riportati di seguito utilizzano il text-bisonmodello di base.

Se utilizzi l'API, devi eseguire il grounding di text-bison quando chiami predict. Per farlo, aggiungi groundingConfig facoltativo e fai riferimento alla posizione e all'ID del tuo datastore.

Se non conosci l'ID del tuo archivio dati:

  1. Nella console Google Cloud, vai alla pagina Vertex AI Search e nel menu di navigazione fai clic su Data store. Vai alla pagina Datastore
  2. Fai clic sul nome del tuo datastore.
  3. Nella pagina Dati del tuo datastore, ottieni 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, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto.
  • PROMPT: un prompt è una richiesta in linguaggio naturale presentata a un modello linguistico per ricevere una risposta. I prompt possono contenere domande, istruzioni, informazioni contestuali, esempi e testo da completare o proseguire dal modello. (Non aggiungere virgolette 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 risposte meno aperte o creative, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Con una temperatura pari a 0 viene sempre selezionato il token con la probabilità più alta. In questo caso, le risposte per un determinato prompt 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 loro 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 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 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 (chiamato anche decodifica greedy). Un top-K pari a 3 indica invece 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 dello datastore Vertex AI Search.

    VERTEX_AI_SEARCH_DATA_STORE deve utilizzare il seguente formato. 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 dell'ID datastore è l'ID progetto 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, quindi esegui il comando seguente:

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, quindi esegui il comando seguente:

$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 basare 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 messa a terra e seleziona Personalizza.
  5. Dal menu a discesa dell'origine di messa a terra, seleziona Vertex AI Search.
  6. Inserisci il percorso del datastore di Vertex AI Search per i tuoi contenuti. Il percorso deve avere il seguente 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 and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

# TODO developer - override these parameters as needed:
parameters = {
    "temperature": 0.1,  # 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": 20,  # 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 and un-comment below lines
# data_store_id = "datastore_123456789012345"
# data_store_location = "global"
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