MedLM è una famiglia di modelli di base perfezionati per il settore sanitario. Med-PaLM 2 è uno dei modelli basati su testo sviluppati da Google Research a supporto di MedLM ed è stato il primo sistema di AI a raggiungere il livello di esperti umani nel rispondere a domande in stile USMLE (Health Medical Licensing Examination). Lo sviluppo di questi modelli è basato sulle esigenze specifiche del cliente, come la risposta a domande mediche e la stesura di riassunti.
Scheda del modello MedLM
La scheda del modello MedLM delinea i dettagli del modello, ad esempio l'uso previsto, la panoramica dei dati e le informazioni sulla sicurezza da parte di MedLM. Fai clic sul seguente link per scaricare una versione PDF della scheda del modello MedLM:
Scarica la scheda del modello MedLM
Casi d'uso
- Risposta alle domande: fornisce una bozza di risposta a domande di carattere medico, sotto forma di testo.
- Riassunto: prepara una versione più breve di un documento (ad esempio una nota di riepilogo post-visita o una nota Cronologia ed esame fisico) che incorpori informazioni pertinenti tratte dal testo originale.
Per ulteriori informazioni sulla progettazione di prompt di testo, consulta l'articolo Progettare prompt di testo.
Richiesta HTTP
MedLM-medium (medlm-medium
):
POST http://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/medlm-medium:predict
MedLM-large (medlm-large
):
POST http://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/medlm-large:predict
Per saperne di più, consulta il metodo predict
.
Versioni modello
MedLM fornisce i seguenti modelli:
- MedLM medio (
medlm-medium
) - MedLM-large (
medlm-large
)
La seguente tabella contiene le versioni del modello stabile disponibili:
modello medlm-medium | Data di uscita |
---|---|
medlma medio | 13 dicembre 2023 |
modello medlm-large | Data di uscita |
---|---|
medlm-large | 13 dicembre 2023 |
MedLM-medium e MedLM-large hanno endpoint separati e offrono ai clienti una maggiore flessibilità per i loro casi d'uso. MedLM-medium fornisce ai clienti velocità effettiva migliori e include dati più recenti. MedLM-large è lo stesso modello della fase di anteprima. Entrambi i modelli continueranno a essere aggiornati nel corso del ciclo di vita. In questa pagina, "MedLM" si riferisce a entrambi i modelli.
Per saperne di più, consulta Versioni e ciclo di vita dei modelli.
Filtri e attributi di sicurezza MedLM
I contenuti elaborati tramite l'API MedLM vengono valutati in base a un elenco di attributi di sicurezza, tra cui "categorie dannose" e argomenti che possono essere considerati sensibili. Se vedi una risposta di riserva, come "Non sono in grado di aiutarti, poiché sono solo un modello linguistico", significa che il prompt o la risposta attivano un filtro di sicurezza.
Soglie di sicurezza
Quando utilizzi Vertex AI Studio, puoi utilizzare una soglia del filtro di sicurezza regolabile per determinare la probabilità di vedere risposte che potrebbero essere dannose. Le risposte del modello vengono bloccate in base alla probabilità che contengano molestie, incitamento all'odio, contenuti pericolosi o contenuti sessualmente espliciti. L'impostazione del filtro di sicurezza si trova
sul lato destro del campo del prompt in Vertex AI Studio. Puoi scegliere fra
tre opzioni: block most
, block some
e
block few
.
Test delle soglie di affidabilità e gravità
Puoi testare i filtri di sicurezza di Google e definire soglie di confidenza adatte alla tua attività. Utilizzando queste soglie, puoi adottare misure complete per rilevare i contenuti che violano le norme di utilizzo o i termini di servizio di Google e adottare le misure appropriate.
I punteggi di affidabilità sono solo previsioni e non devi dipendere dai punteggi per l'affidabilità o l'accuratezza. Google non è responsabile dell'interpretazione o dell'utilizzo di questi punteggi per le decisioni aziendali.
Pratiche consigliate
Per utilizzare questa tecnologia in modo sicuro e responsabile, è importante considerare altri rischi specifici per il tuo caso d'uso, gli utenti e il contesto aziendale, oltre a misure di salvaguardia tecniche integrate.
Ti consigliamo di procedere nel seguente modo:
- Valutare i rischi per la sicurezza della tua applicazione.
- Valuta la possibilità di apportare modifiche per mitigare i rischi per la sicurezza.
- Esegui test di sicurezza appropriati al tuo caso d'uso.
- Sollecitare il feedback degli utenti e monitorare i contenuti.
Per scoprire di più, consulta i consigli di Google per l'IA responsabile.
Corpo della richiesta
{
"instances": [
{
"content": string
}
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"topK": integer,
"topP": number
}
}
Utilizza i seguenti parametri per i modelli medlm-medium
e medlm-large
.
Per ulteriori informazioni, vedi Progettare prompt di testo.
Parametro | Descrizione | Valori accettati |
---|---|---|
|
Input di testo per generare la risposta del modello. I prompt possono includere preambolo, domande, suggerimenti, istruzioni o esempi. | Testo |
|
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. |
|
Richiesta di esempio
Quando si utilizza l'API MedLM, è importante incorporare l'ingegneria del prompt. Ad esempio, consigliamo di fornire istruzioni appropriate e specifiche per le attività all'inizio di ogni prompt. Per ulteriori informazioni, consulta Introduzione alla progettazione dei prompt.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto.MEDLM_MODEL
: il modello MedLM,medlm-medium
omedlm-large
.
Metodo HTTP e URL:
POST http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MEDLM_MODEL:predict
Corpo JSON della richiesta:
{ "instances": [ { "content": "Question: What causes you to get ringworm?" } ], "parameters": { "temperature": 0, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:
cat > request.json << 'EOF' { "instances": [ { "content": "Question: What causes you to get ringworm?" } ], "parameters": { "temperature": 0, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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/MEDLM_MODEL:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:
@' { "instances": [ { "content": "Question: What causes you to get ringworm?" } ], "parameters": { "temperature": 0, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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/MEDLM_MODEL:predict" | Select-Object -Expand Content
Corpo della risposta
{
"predictions": [
{
"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": boolean,
"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 |
Il risultato generato dal testo di input. |
categories |
I nomi visualizzati delle categorie di attributi di sicurezza associate ai contenuti generati. L'ordine corrisponde ai punteggi. |
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. |
errors |
Un codice di errore che identifica il motivo per cui l'input o l'output è stato bloccato. Per un elenco dei codici di errore, consulta Filtri e attributi di sicurezza. |
startIndex |
Indice nell'output della previsione in cui inizia la citazione (inclusa). Deve essere maggiore o uguale a 0 e minore di end_index . |
endIndex |
Indice nell'output della previsione in cui termina la citazione (esclusivo). Deve essere maggiore di start_index e minore di 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 "code", come le licenze MIT. |
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. |
input_token_count |
Numero di token di input. Questo è il numero totale di token per tutte le richieste, i prefissi e i suffissi. |
output_token_count |
Numero di token di output. Questo è il numero totale di token in content in tutte le previsioni. |
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": []
},
"content": "\n\nAnswer and Explanation:\nRingworm is a fungal infection of the skin that is caused by a type of fungus called dermatophyte. Dermatophytes can live on the skin, hair, and nails, and they can be spread from person to person through direct contact or through contact with contaminated objects.\n\nRingworm can cause a variety of symptoms, including:\n\n* A red, itchy rash\n* A raised, circular border\n* Blisters or scales\n* Hair loss\n\nRingworm is most commonly treated with antifungal medications, which can be applied to the skin or taken by mouth. In some cases, surgery may be necessary to remove infected hair or nails.",
"safetyAttributes": {
"scores": [
1
],
"blocked": false,
"categories": [
"Health"
]
}
}
],
"metadata": {
"tokenMetadata": {
"outputTokenCount": {
"totalTokens": 140,
"totalBillableCharacters": 508
},
"inputTokenCount": {
"totalTokens": 10,
"totalBillableCharacters": 36
}
}
}
}
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 richieste di codice e risposte di esempio utilizzando l'API REST, consulta Esempi di utilizzo dell'API REST.
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.