Risposte di base per i modelli PaLM 2

Per iniziare a utilizzare l'ancoraggio del modello nell'IA 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 costituisce la base per il groundingtext-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.

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 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 alcuni 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 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. Gli esempi riportati di seguito utilizzano il text-bisonmodello di base.

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 Data store. 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, esempi e testo per completare o continuare il modello. (Non aggiungere virgolette 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 pari a 0 significa che vengono sempre selezionati i 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, 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 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 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 a cui si basa il modello. È supportato solo Vertex AI Search.
  • VERTEX_AI_SEARCH_DATA_STORE: il percorso dell'ID dello spazio dati 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, 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. 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 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 verso 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 ulteriori informazioni, consulta 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