Il modello di base PaLM 2 per Chat (chat-bison
) è un modello linguistico di grandi dimensioni (LLM) ottimo per la comprensione della lingua, la generazione del linguaggio e le conversazioni. Questo modello di chat è ottimizzato per condurre conversazioni naturali a più passaggi ed è ideale per le attività di testo relative al codice che richiedono interazioni continue.
Per le attività di testo che possono essere completate con una risposta dell'API (senza bisogno di una conversazione continua), utilizza il modello di testo.
Per esplorare questo modello nella console, consulta la scheda del modello PaLM 2 per Chat in Model Garden.
Vai a Model Garden
Casi d'uso
Assistenza clienti: chiedi al modello di rispondere in qualità di agenti dell'assistenza clienti che parlano solo del prodotto della tua azienda.
Assistenza tecnica: chiedi al modello di interagire con i clienti come agente di call center, utilizzando parametri specifici su come rispondere e cosa non dire.
Personaggi e personaggi: chiedi al modello di rispondere nello stile di una persona specifica ("...nello stile di Shakespeare")
Companion per il sito web: crea un assistente conversazionale per lo shopping, i viaggi e altri casi d'uso
Per ulteriori informazioni, vedi Progettare prompt di chat.
Richiesta HTTP
POST http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/chat-bison:predict
Per saperne di più, vedi il metodo predict
.
Versioni modello
Per utilizzare la versione più recente del modello, specifica il nome del modello senza numero di versione, ad esempio chat-bison
.
Per utilizzare una versione del modello stabile, specifica il numero di versione del modello, ad esempio chat-bison@002
. Ogni versione stabile è disponibile per sei mesi dopo la data di rilascio della versione stabile successiva.
La seguente tabella contiene le versioni del modello stabile disponibili:
modello chat-bisonte | Data di uscita | Data di interruzione |
---|---|---|
chat-bison@002 | 6 dicembre 2023 | 9 ottobre 2024 |
chat-bison@001 | 10 luglio 2023 | 6 luglio 2024 |
Per saperne di più, consulta Versioni e ciclo di vita dei modelli.
Corpo della richiesta
{
"instances": [
{
"context": string,
"examples": [
{
"input": { "content": string },
"output": { "content": string }
}
],
"messages": [
{
"author": string,
"content": string,
}
],
}
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"topP": number,
"topK": integer,
"groundingConfig": string,
"stopSequences": [ string ],
"candidateCount": integer
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"seed": integer
}
}
Per le chiamate API Chat, context
, examples
e messages
si combinano per formare
il prompt. La seguente tabella mostra i parametri che devi configurare per l'API Vertex AI PaLM per il testo:
Parametro | Descrizione | Valori accettati |
---|---|---|
(facoltativo) |
Il contesto determina il modo in cui risponde il modello durante la conversazione. Ad esempio, puoi utilizzare il contesto per specificare le parole che il modello può o non può utilizzare, gli argomenti su cui deve concentrarsi o che deve evitare oppure il formato o lo stile della risposta. | Testo |
(facoltativo) |
Esempi per il modello per imparare a rispondere alla conversazione. | [{ "input": {"content": "provide content"}, "output": {"content": "provide content"} }] |
(obbligatorio) |
Cronologia delle conversazioni fornita al modello in un modulo strutturato di autore alternativo. I messaggi vengono visualizzati in ordine cronologico: dal meno recente, dal più recente all'ultimo. Quando la cronologia dei messaggi fa sì che l'input superi la lunghezza massima, i messaggi meno recenti vengono rimossi finché l'intero prompt non rientra nel limite consentito. | [{ "author": "user", "content": "user message" }] |
|
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. |
|
|
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-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. |
|
|
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. |
|
|
Specifica un elenco di stringhe che indica al modello di interrompere la generazione di testo se una delle stringhe viene rilevata nella risposta. Se una stringa compare più volte nella risposta, la risposta viene troncata nel punto in cui è stata rilevata per la prima volta.
Le stringhe sono sensibili alle maiuscole.
Ad esempio, se seguente è la risposta restituita quando stopSequences non è specificato:
public
static string reverse(string myString)
La risposta restituita con stopSequences impostato su ["Str",
"reverse"] è:
public static string
|
|
|
Il grounding ti consente di fare riferimento a dati specifici quando utilizzi modelli linguistici. Quando esegui il calcolo di base di un modello, il modello può fare riferimento a dati interni, riservati e altrimenti specifici del tuo repository e includere i dati nella risposta. Sono supportati solo i datastore di Vertex AI Search. |
Il percorso deve avere il seguente formato: |
|
Il numero di varianti della risposta da restituire. |
|
|
Restituisce i primi logprobs token candidati con più probabilità con le rispettive probabilità di log a ogni passaggio di generazione. Vengono sempre restituiti i token scelti e le relative probabilità di log in ogni passaggio. Il token scelto potrebbe trovarsi o meno tra i primi logprobs candidati con maggiore probabilità.
|
|
|
I valori positivi penalizzano i token che appaiono ripetutamente nel testo generato, diminuendo la probabilità
di ripetizione di contenuti. I valori accettati sono -2.0 -2.0 .
|
|
|
I valori positivi penalizzano i token già presenti nel testo generato, aumentando la probabilità di generare contenuti più diversificati. I valori accettati sono -2.0 -2.0 .
|
|
|
Il decoder genera un rumore casuale con un generatore di numeri pseudo-casuali, il rumore di temperatura * viene aggiunto
ai logit prima del campionamento. Il generatore di numeri pseudo-casuali (prng) prende un seme come input, genera lo stesso output con lo stesso seed.
Se il seed non è impostato, il seed utilizzato nel decoder non sarà deterministico, quindi il rumore casuale generato non sarà deterministico. Se il seed è impostato, il rumore casuale generato sarà deterministico. |
|
Richiesta di esempio
REST
Per testare una chat 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.
Metodo HTTP e URL:
POST http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/chat-bison:predict
Corpo JSON della richiesta:
{ "instances": [{ "context": "CONTEXT", "examples": [ { "input": {"content": "EXAMPLE_INPUT"}, "output": {"content": "EXAMPLE_OUTPUT"} }], "messages": [ { "author": "AUTHOR", "content": "CONTENT", }], }], "parameters": { "temperature": TEMPERATURE, "maxOutputTokens": MAX_OUTPUT_TOKENS, "topP": TOP_P, "topK": TOP_K } }
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/chat-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/chat-bison:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON simile alla risposta di esempio.
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.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Corpo della risposta
{
"predictions": [
{
"candidates": [
{
"author": string,
"content": string
}
],
"citationMetadata": {
"citations": [
{
"startIndex": integer,
"endIndex": integer,
"url": string,
"title": string,
"license": string,
"publicationDate": string
}
]
},
"logprobs": {
"tokenLogProbs": [ float ],
"tokens": [ string ],
"topLogProbs": [ { map<string, float> } ]
},
"safetyAttributes": {
"categories": [ string ],
"blocked": false,
"scores": [ float ],
"errors": [ int ]
}
}
],
"metadata": {
"tokenMetadata": {
"input_token_count": {
"total_tokens": integer,
"total_billable_characters": integer
},
"output_token_count": {
"total_tokens": integer,
"total_billable_characters": integer
}
}
}
}
Elemento risposta | Descrizione |
---|---|
content |
Contenuto testuale del messaggio di chat. |
candidates |
Il risultato della chat generato a partire da un determinato messaggio. |
categories |
I nomi visualizzati delle categorie di attributi di sicurezza associate ai contenuti generati. L'ordine corrisponde ai punteggi. |
author |
Tag autore del turno. |
scores |
I punteggi di confidenza di ogni categoria. Un valore più alto indica un'affidabilità maggiore. |
blocked |
Un flag che indica se l'input o l'output del modello è stato bloccato. |
startIndex |
Indice nell'output della previsione in cui inizia la citazione (inclusa). Deve essere >= 0 e < end_index. |
endIndex |
Indice nell'output della previsione in cui termina la citazione (esclusivo). Deve essere > start_index e < len(output). |
url |
URL associato alla citazione. Se presente, l'URL rimanda alla pagina web della fonte della citazione. Gli URL possibili includono siti web di notizie, repository GitHub e così via. |
title |
Titolo associato alla citazione. Se presente, si riferisce al titolo della fonte della citazione. I titoli possibili includono titoli di notizie, titoli di libri e così via. |
license |
Licenza associata a questa citazione. Se presente, si riferisce alla licenza della fonte della citazione. Le licenze possibili includono le licenze codici, ad esempio mit License. |
publicationDate |
Data di pubblicazione associata a questa citazione. Se presente, si riferisce alla data in cui è stata pubblicata la fonte della citazione. I formati possibili sono AAAA, AAAA-MM, AAAA-MM-GG. |
safetyAttributes |
Una raccolta di categorie e i relativi punteggi di confidenza associati. Mappatura 1-1 a candidates . |
input_token_count |
Numero di token di input. Questo è il numero totale di token per tutti i messaggi, gli esempi e il contesto. |
output_token_count |
Numero di token di output. Questo è il numero totale di token in content tra tutti i candidati nella risposta. |
tokens |
I token campionati. |
tokenLogProbs |
Le probabilità di log dei token campionati. |
topLogProb |
I token candidati più probabili e le relative probabilità di log in ogni passaggio. |
logprobs |
Risultati del parametro "logprobs". Mappatura 1-1 ai "candidati". |
Esempio di risposta
{
"predictions": [
{
"citationMetadata": {
"citations": []
},
"safetyAttributes": {
"scores": [
0.1
],
"categories": [
"Finance"
],
"blocked": false
},
"candidates": [
{
"author": "AUTHOR",
"content": "RESPONSE"
}
]
}
]
}
Risposta in streaming dai modelli di IA generativa
I parametri sono gli stessi per le richieste in modalità flusso e non in modalità flusso alle API.
Per visualizzare le richieste di codice e le risposte di esempio utilizzando l'API REST, consulta Esempi di utilizzo dell'API REST per i flussi di dati.
Per visualizzare richieste di codice e risposte di esempio utilizzando l'SDK Vertex AI per Python, consulta Esempi di utilizzo dell'SDK Vertex AI per Python per i flussi di dati.