I modelli di IA generativa di Google, come Gemini 1.5 Flash e Gemini 1.5 Pro, sono progettati per dare la priorità alla sicurezza. Tuttavia, possono comunque generare risposte dannose, soprattutto se vengono richieste esplicitamente. Per migliorare ulteriormente la sicurezza e ridurre al minimo l'uso improprio, puoi: configurare filtri di sicurezza per bloccare risposte potenzialmente dannose.
Questa pagina descrive ciascuno dei tipi di filtro di sicurezza e illustra i concetti di sicurezza principali. Per i filtri configurabili, mostra come configurare le soglie di blocco di ogni categoria di danno per controllare la frequenza con cui prompt e risposte vengono bloccati.
I filtri di sicurezza fungono da barriera, impedendo l'output dannoso, ma non influiscono direttamente sul comportamento del modello. Per scoprire di più sulla guidabilità del modello, consulta le istruzioni di sistema.
Prompt non sicuri
L'API Gemini di Vertex AI fornisce uno dei seguenti codici enum
per spiegare il motivo del rifiuto di un prompt:
Enum | Tipo di filtro | Descrizione |
---|---|---|
PROHIBITED_CONTENT | Filtro di sicurezza non configurabile | La richiesta è stata bloccata perché è stata segnalata per la presenza di contenuti vietati, in genere materiale pedopornografico. |
BLOCKED_REASON_UNSPECIFIED | N/D | Il motivo del blocco del prompt non è specificato. |
ALTRO | N/D | Questa enum si riferisce a tutti gli altri motivi per il blocco di un prompt. Tieni presente che l'API Gemini di Vertex AI non supporta tutte le lingue. Per un elenco delle lingue supportate, vedi Supporto delle lingue di Gemini. |
Per scoprire di più, consulta BlockedReason.
Di seguito è riportato un esempio di output dell'API Gemini di Vertex AI quando un prompt viene bloccato perché contiene PROHIBITED_CONTENT
:
{ "promptFeedback": { "blockReason": "PROHIBITED_CONTENT" }, "usageMetadata": { "promptTokenCount": 7, "totalTokenCount": 7 } }
Risposte non sicure
I seguenti filtri possono rilevare e bloccare risposte potenzialmente non sicure:
- Filtri di sicurezza non configurabili, che bloccano il materiale pedopornografico (materiale pedopornografico) e informazioni che consentono l'identificazione personale (PII).
- Filtri di sicurezza configurabili, che bloccano i contenuti non sicuri in base a un elenco di categorie di danni e le relative soglie di blocco configurate dall'utente. Puoi configurare le soglie di blocco per ciascuno di questi danni in base a quanto è appropriato per il tuo caso d'uso e la tua attività. Per saperne di più, consulta la sezione Filtri di sicurezza configurabili.
- Filtri di citazione, che impediscono l'uso improprio e garantiscono la citazione corretta dei dati protetti da copyright. Per scoprire di più, consulta Filtro citazioni.
Un LLM genera risposte in unità di testo chiamate token. Un modello smette di generare token perché raggiunge un punto di arresto naturale o perché uno dei filtri blocca la risposta. L'API Gemini di Vertex AI fornisce uno dei seguenti codici enum
per spiegare il motivo dell'interruzione della generazione di token:
Enum | Tipo di filtro | Descrizione |
---|---|---|
INTERROMPI | N/D | Questo enum indica che il modello ha raggiunto un punto di arresto naturale o la sequenza di arresto fornita. |
MAX_TOKENS | N/D | La generazione di token è stata interrotta perché il modello ha raggiunto il numero massimo di token specificato nella richiesta. |
SICUREZZA | Filtro di sicurezza configurabile | La generazione del token è stata interrotta perché la risposta è stata segnalata per motivi di sicurezza. |
RECITA | Filtro citazioni | La generazione del token è stata interrotta perché la risposta è stata segnalata per citazioni non autorizzate. |
informazioni personali sensibili | Filtro di sicurezza non configurabile | La generazione del token è stata interrotta perché la risposta è stata segnalata per contenuti che includono informazioni sensibili che consentono l'identificazione personale (SPII). |
PROHIBITED_CONTENT | Filtro di sicurezza non configurabile | La generazione del token è stata interrotta perché la risposta è stata segnalata perché include contenuti vietati, in genere materiale pedopornografico. |
FINISH_REASON_UNSPECIFIED | N/D | Il motivo del completamento non è specificato. |
ALTRO | N/D | Questo enum si riferisce a tutti gli altri motivi che interrompono la generazione di token. Tieni presente che la generazione di token non è supportata per tutte le lingue. Per un elenco delle lingue supportate, consulta Supporto delle lingue di Gemini. |
Per scoprire di più, vedi FinishReason.
Se un filtro blocca la risposta, il valore Candidate.content
della risposta viene annullato
. Non fornisce alcun feedback al modello.
Filtri di sicurezza configurabili
I filtri di sicurezza valutano i contenuti sulla base di un elenco danni. Per ogni categoria di danno, i filtri di sicurezza assegnano un voto di sicurezza in base alla probabilità che i contenuti non siano sicuri e un altro voto di sicurezza in base alla gravità dei contenuti dannosi.
I filtri di sicurezza configurabili non hanno una versione indipendente dalle versioni del modello. Google non aggiornerà il filtro di sicurezza configurabile per una versione di un modello rilasciata in precedenza. Tuttavia, potrebbe aggiornare il filtro di sicurezza configurabile per una versione futura di un modello.
Categorie di danni
I filtri di sicurezza valutano i contenuti in base alle seguenti categorie di danno:
Categoria di danno | Definizione |
---|---|
Incitamento all'odio | Commenti negativi o dannosi che hanno come target l'identità e/o attributi protetti. |
Molestie | Minacce, intimidazioni, bullismo o commenti illeciti rivolti a un altro individuo. |
Sessualmente esplicito | Contiene riferimenti ad atti sessuali o ad altri contenuti osceni. |
Contenuti pericolosi | Promuovono o consentono l'accesso a beni, servizi e attività dannosi. |
Confronto tra punteggi di probabilità e punteggi di gravità
Il punteggio di sicurezza della probabilità riflette la probabilità che una risposta del modello
sia associato al rispettivo danno. Ha un
un punteggio di confidenza associato compreso tra 0.0
e 1.0
, arrotondato a una cifra decimale.
Il punteggio di affidabilità è discretizzato in quattro livelli di sicurezza e affidabilità:
NEGLIGIBLE
, LOW
, MEDIUM
e HIGH
.
Il punteggio di sicurezza di gravità riflette l'entità del potenziale danno di una risposta del modello. Ha un punteggio di gravità associato compreso tra
0.0
e 1.0
, arrotondato a una cifra decimale. Il punteggio di gravità è discretizzato
in quattro livelli: NEGLIGIBLE
, LOW
, MEDIUM
e HIGH
.
I contenuti possono avere un punteggio di probabilità basso e un punteggio di gravità alto oppure un punteggio di probabilità alto e un punteggio di gravità basso.
Come configurare i filtri di sicurezza
Puoi utilizzare l'API Gemini di Vertex AI o la console Google Cloud per configurare filtro di sicurezza.
API Gemini di Vertex AI
L'API Gemini di Vertex AI fornisce due metodi di "blocco dei danni":
- GRAVITÀ: questo metodo utilizza sia i punteggi di probabilità che quelli di gravità.
- PROBABILITÀ: questo metodo utilizza solo il punteggio di probabilità.
Il metodo predefinito è SEVERITY
. Per i modelli precedenti a gemini-1.5-flash
e
gemini-1.5-pro
, il metodo predefinito è
PROBABILITY
. Per saperne di più, consulta
HarmBlockMethod API reference.
L'API Gemini di Vertex AI fornisce le seguenti soglie di "blocco per danno":
- BLOCK_LOW_AND_ABOVE: blocca quando il punteggio di probabilità o il
punteggio di gravità è
LOW
,MEDIUM
oHIGH
. - BLOCK_MEDIUM_AND_ABOVE: blocca quando il punteggio di probabilità o il
punteggio di gravità è
MEDIUM
oHIGH
. Pergemini-1.5-flash-001
egemini-1.5-pro-001
,BLOCK_MEDIUM_AND_ABOVE
è il valore predefinito. - BLOCK_ONLY_HIGH: blocca quando il punteggio di probabilità o il punteggio di gravità
è
HIGH
. - HARM_BLOCK_THRESHOLD_UNSPECIFIED: blocca utilizzando la soglia predefinita.
- OFF: non viene eseguito alcun blocco delle risposte automatiche e non vengono restituiti metadati di sicurezza.
Per
gemini-1.5-flash-002
egemini-1.5-pro-002
,OFF
è il valore predefinito. - BLOCK_NONE: l'impostazione di sicurezza
BLOCK_NONE
rimuove il blocco della risposta automatica. In alternativa, puoi configurare le tue linee guida di sicurezza con i punteggi restituiti. Si tratta di un campo con limitazioni non disponibile per tutti gli utenti nelle versioni del modello GA.
Ad esempio, il seguente codice Python dimostra come è possibile impostare il danno
il metodo di blocco su SEVERITY
e la soglia di blocco dei danni su BLOCK_ONLY_HIGH
per la categoria di contenuti pericolosi:
generative_models.SafetySetting(
category=generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
method=generative_models.HarmBlockMethod.SEVERITY,
threshold=generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH,
),
In questo modo, verrà bloccata la maggior parte dei contenuti classificati come pericolosi. Per scoprire di più, consulta la documentazione di riferimento dell'API HarmBlockThreshold.
Per esempi end-to-end in Python, Node.js, Java, Go, C# e REST, consulta Esempi di configurazione dei filtri di sicurezza.
Console Google Cloud
La console Google Cloud consente di configurare una soglia per ogni attributo di sicurezza. Il filtro sicurezza utilizza solo i punteggi di probabilità. Non è possibile utilizzare i punteggi di gravità.
La console Google Cloud fornisce i seguenti valori di soglia:
- Off (impostazione predefinita): nessun blocco delle risposte automatiche.
- Blocca pochi: blocca quando il punteggio di probabilità è
HIGH
. - Blocca alcuni: blocca quando il punteggio di probabilità è
MEDIUM
oHIGH
. - Blocca più elementi: blocca quando il punteggio di probabilità è
LOW
,MEDIUM
oHIGH
.
Ad esempio, se imposti l'impostazione di blocco su Blocca pochi per la
categoria Contenuti pericolosi, viene bloccato tutto ciò che ha un'alta probabilità di essere un contenuto pericoloso. Qualsiasi cosa con una probabilità più bassa
consentito. La soglia predefinita è Block some
.
Per impostare le soglie, segui questi passaggi:
Nella sezione Vertex AI della console Google Cloud, vai a la pagina Vertex AI Studio.
In Crea un nuovo prompt, fai clic su uno dei pulsanti per aprire il prompt pagina di progettazione.
Fai clic su Impostazioni di sicurezza.
Viene visualizzata la finestra di dialogo Impostazioni di sicurezza.
Per ogni categoria di danno, configura il valore di soglia desiderato.
Fai clic su Salva.
Esempio di output quando una risposta viene bloccata dal filtro di sicurezza configurabile
Di seguito è riportato un esempio di output dell'API Vertex AI Gemini quando una risposta viene bloccata dal filtro di sicurezza configurabile perché contiene contenuti pericolosi:
{ "candidates": [{ "finishReason": "SAFETY", "safetyRatings": [{ "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE", "probabilityScore": 0.11027937, "severity": "HARM_SEVERITY_LOW", "severityScore": 0.28487435 }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "HIGH", "blocked": true, "probabilityScore": 0.95422274, "severity": "HARM_SEVERITY_MEDIUM", "severityScore": 0.43398145 }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.11085559, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.19027223 }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.22901751, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.09089675 }] }], "usageMetadata": { "promptTokenCount": 38, "totalTokenCount": 38 } }
Esempi di configurazione del filtro di sicurezza
I seguenti esempi dimostrano come configurare il filtro di sicurezza utilizzando l'API Gemini di Vertex AI:
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.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Vertex AI.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta API C# Vertex AI documentazione di riferimento.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Dopo aver configurato l'ambiente, puoi utilizzare REST per testare un prompt di testo. Il seguente esempio invia una richiesta al publisher endpoint del modello.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION: la regione in cui elaborare la richiesta. Le opzioni disponibili includono:
Fai clic per espandere un elenco parziale delle regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale
che vuoi utilizzare. Le opzioni sono:
gemini-1.0-pro
gemini-1.0-pro-vision
- ROLE:
Il ruolo in una conversazione associato ai contenuti. La specifica di un ruolo è obbligatoria anche in
e i casi d'uso a turno singolo.
I valori accettati sono:
USER
: specifica i contenuti inviati da te.MODEL
: specifica la risposta del modello.
- TEXT: le istruzioni di testo da includere nel prompt.
- SAFETY_CATEGORY:
La categoria di sicurezza per cui configurare una soglia. I valori accettabili sono:
Fai clic per espandere le categorie di sicurezza
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
la soglia per bloccare le risposte che potrebbero appartenere alla categoria di sicurezza specificata in base alla probabilità. I valori accettati sono:
Fai clic per espandere le soglie di blocco
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(valore predefinito)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
blocca di più, mentreBLOCK_ONLY_HIGH
blocca di meno.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Corpo JSON della richiesta:
{ "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, "safetySettings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, }
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Comando curl di esempio
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
"contents": {
"role": "user",
"parts": { "text": "Hello!" }
},
"safety_settings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "OFF"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_ONLY_HIGH"
}
]
}'
Filtro citazione
Le caratteristiche di codice generativo di Vertex AI hanno lo scopo di produrre contenuti originali. Per sua natura, Gemini limita la probabilità che i contenuti esistenti vengano replicati in dettaglio. Se una funzionalità di Gemini fa un'ampia citazione da una pagina web, Gemini cita la pagina.
A volte gli stessi contenuti sono disponibili su più pagine web. Gemini tenterà di indirizzarti a una fonte molto conosciuta. Nel caso di ai repository di codice, la citazione potrebbe anche fare riferimento a un licenza open source. Il rispetto di eventuali requisiti di licenza è una tua responsabilità.
Per ulteriori informazioni sui metadati del filtro per le citazioni, consulta la documentazione di riferimento dell'API Citation.
Filtro Integrità civica
Il filtro integrità civica rileva e blocca i prompt che menzionano o sono correlati a
elezioni politiche e candidati. Questo filtro è disattivato per impostazione predefinita. Per attivarla, imposta la soglia di blocco per CIVIC_INTEGRITY
su uno dei seguenti valori. Il valore specificato non cambia.
BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
BLOCK_ONLY_HIGH
Il seguente codice Python mostra come attivare il filtro di integrità civica:
generative_models.SafetySetting(
category=generative_models.HarmCategory.HarmCategory.CIVIC_INTEGRITY,
threshold=generative_models.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
Per ulteriori dettagli sul filtro di integrità civica, contatta il tuo team Google Cloud responsabile.
Best practice
Sebbene i filtri di sicurezza contribuiscano a impedire la visualizzazione di contenuti non sicuri, a volte potrebbero bloccare contenuti sicuri o non rilevare contenuti non sicuri. Modelli avanzati come Gemini 1.5 Flash e Gemini 1.5 Pro sono progettato per generare risposte sicure anche senza filtri. Prova un filtro diverso le impostazioni per trovare il giusto equilibrio tra sicurezza e consentire contenuti.
Passaggi successivi
- Scopri di più sull'IA responsabile.
- Scopri di più sulla governance dei dati.