Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure OpenAI include un sistema di filtro del contenuto che funziona insieme ai modelli di base, inclusi i modelli di generazione di immagini. Questo sistema funziona eseguendo sia la richiesta che il completamento tramite un set di modelli di classificazione progettati per rilevare e impedire l'output di contenuto dannoso. Il sistema di filtro del contenuto rileva e agisce su categorie specifiche di contenuto potenzialmente dannoso sia nelle richieste di input che nei completamenti di output. Le variazioni nelle configurazioni dell'API e nella progettazione dell'applicazione potrebbero influire sui completamenti e quindi sul comportamento di filtro.
Importante
Il sistema di filtro del contenuto non viene applicato ai prompt e ai completamenti elaborati dai modelli audio, ad esempio Whisper in Azure OpenAI nei modelli di Azure AI Foundry. Altre informazioni sui modelli audio in Azure OpenAI.
Oltre al sistema di filtro dei contenuti, Azure OpenAI esegue il monitoraggio per rilevare il contenuto e/o i comportamenti che suggeriscono l'uso del servizio in modo da violare le condizioni del prodotto applicabili. Per ulteriori informazioni su come comprendere e mitigare i rischi associati alla propria applicazione, consultare la nota sulla trasparenza per Azure OpenAI. Per altre informazioni sull'elaborazione dei dati per il monitoraggio di filtri e abusi sui contenuti, vedere Dati, privacy e sicurezza per Azure OpenAI.
Gli articoli di questa sezione forniscono informazioni sulle categorie di filtro dei contenuti, i livelli di gravità del filtro e la relativa configurabilità e gli scenari api da considerare nella progettazione e nell'implementazione dell'applicazione.
Nota
Nessuna richiesta o completamento viene archiviata ai fini del filtro del contenuto. Non vengono usati prompt o completamenti per eseguire il training, ripetere il training o migliorare il sistema di filtro del contenuto senza il consenso dell'utente. Per altre informazioni, vedere Dati, privacy e sicurezza.
Tipi di filtro dei contenuti
Il sistema di filtro dei contenuti integrato in Azure OpenAI contiene:
- Modelli di classificazione multiclasse neurali finalizzati all'individuazione e al filtro di contenuti dannosi; i modelli riguardano quattro categorie (odio, sesso, violenza e autolesionismo) in quattro livelli di gravità (sicuro, basso, medio e alto). Il contenuto rilevato a livello di gravità "sicuro" è etichettato nelle annotazioni, ma non è soggetto a filtri e non è configurabile.
- Altri modelli di classificazione facoltativi finalizzati a rilevare il rischi di jailbreak e contenuti noti per testo e codice; questi modelli sono classificatori binari che contrassegnano se il comportamento dell'utente o del modello è qualificato come attacco jailbreak o corrisponde a codice sorgente o testo noto. L'uso di questi modelli è facoltativo, ma può essere necessario usare il modello di codice materiale protetto può essere per la copertura dell'impegno relativo al copyright del cliente.
Categorie di filtro
La tabella seguente riepiloga le categorie di rischio supportate dal sistema di filtro dei contenuti di Azure OpenAI.
Categoria | Descrizione |
---|---|
Odio e equità | I danni correlati a odio ed equità si riferiscono a qualsiasi contenuto che attacca una persona o un gruppo di identità o usa un linguaggio discriminatorio nei loro confronti in base a determinati attributi che differenziano questi gruppi. A titolo di esempio tali attributi includono:
|
Sessuale | La categoria sesso descrive il linguaggio correlato a organi anatomici e genitali, relazioni romantiche e sessuali, atti rappresentati in termini erotici o affettuosi, compresi quelli rappresentati come violenza sessuale o stupro. Tale categoria include senza limitazione alcuna:
|
Violenza | La categoria violenza descrive linguaggio relativo ad azioni fisiche che hanno lo scopo di ferire, lesionare, danneggiare o uccidere qualcuno o qualcosa; descrive armi, pistole e simili. Questi miglioramenti includono, tra l'altro:
|
Autolesionismo | La categoria autolesionismo descrive il linguaggio correlato ad azioni fisiche finalizzate a ferire, provocare lesioni o danneggiare il proprio corpo oppure a togliersi la vita. Questi miglioramenti includono, tra l'altro:
|
Attacchi ai prompt utente | Gli attacchi attraverso i prompt utente sono progettati per indurre il modello di AI generativa a esibire comportamenti che, in base al training, deve evitare oppure infrangere le regole stabilite nel messaggio di sistema. Tali attacchi possono variare da un gioco di ruolo intricato a una velata sovversione dell'obiettivo di sicurezza. |
Attacchi indiretti | Gli attacchi indiretti, noti anche come attacchi con prompt indiretti o attacchi di prompt injection tra domini, rappresentano una potenziale vulnerabilità in cui soggetti terzi inseriscono istruzioni dannose all'interno di documenti accessibili ed elaborabili dal sistema di intelligenza artificiale generativa. Richiede la formattazione e l'incorporamento di documenti. |
Radicamento2 | Il rilevamento dell'aderenza indica se le risposte di testo dei modelli linguistici di grandi dimensioni (LLM) si basano sui materiali di origine forniti dagli utenti. Il materiale non in primo piano si riferisce a istanze in cui le VM producono informazioni non effettive o imprecise rispetto a quanto presente nei materiali di origine. Richiede la formattazione e l'incorporamento di documenti. |
Materiale protetto per il testo1 | Il testo materiale protetto descrive contenuti testuali noti (ad esempio testi di canzoni, articoli, ricette e contenuti Web selezionati) che possono essere prodotti da Large Language Model. |
Materiale protetto per il codice | Il codice materiale protetto descrive il codice sorgente corrispondente a un set di codice sorgente proveniente da repository pubblici, che possono essere prodotti da Large Language Model senza un'adeguata citazione dei repository di origine. |
1 Se sei un proprietario del materiale di testo e vuoi inviare contenuto di testo per la protezione, invia una richiesta.
2 Non disponibile in scenari non di streaming; disponibile solo per gli scenari di streaming. Le aree seguenti supportano il rilevamento della fondatezza: Stati Uniti centrali, Stati Uniti orientali, Francia centrale e Canada orientale
Dettagli dello scenario
Quando il sistema di filtraggio dei contenuti rileva contenuti dannosi, si riceverà un errore nella chiamata all'API se il prompt è stato ritenuto inappropriato, oppure finish_reason
nella risposta sarà content_filter
per indicare che parte del risultato è stata filtrata. Durante la compilazione dell'applicazione o del sistema, è opportuno tenere conto degli scenari in cui il contenuto restituito dall'API Completion è filtrato, per cui i contenuti potrebbero essere incompleti. Le misure da prendere in base a questa informazione saranno specifiche all'applicazione. Il comportamento può essere riepilogato nei seguenti punti:
- I prompt classificati a livello di categoria e gravità filtrata restituiranno un errore HTTP 400.
- Le chiamate di completamento non in streaming non restituiscono alcun contenuto quando il contenuto è filtrato. Il valore
finish_reason
è impostato su content_filter. In rari casi di risposte più lunghe, è possibile restituire un risultato parziale. In questi casi,finish_reason
viene aggiornato. - Per le chiamate di completamento in streaming, i segmenti vengono restituiti all'utente man mano che sono completati. Il servizio continua lo streaming fino a quando non raggiunge un token di arresto, una lunghezza massima o quando viene rilevato contenuto classificato nella categoria filtrata e a un livello di gravità.
Scenario: si invia una chiamata di completamento non in streaming che richiede più output; nessun contenuto è classificato a livello di categoria di filtraggio e di gravità
La tabella seguente illustra i vari modi in cui il filtraggio del contenuto può essere visualizzato:
Codice di risposta HTTP | Comportamento della risposta |
---|---|
200 | Nei casi in cui tutte le generazioni passano i filtri come configurati, nessun dettaglio di moderazione del contenuto viene aggiunto alla risposta. finish_reason per ogni generazione sarà arresto o lunghezza. |
Payload della richiesta di esempio:
{
"prompt":"Text example",
"n": 3,
"stream": false
}
Esempio di risposta JSON:
{
"id": "example-id",
"object": "text_completion",
"created": 1653666286,
"model": "davinci",
"choices": [
{
"text": "Response generated text",
"index": 0,
"finish_reason": "stop",
"logprobs": null
}
]
}
Scenario: la chiamata dell'API richiede più risposte (N>1) e almeno una delle risposte viene filtrata
Codice di risposta HTTP | Comportamento della risposta |
---|---|
200 | Le generazioni filtrate avranno un valore finish_reason di content_filter . |
Payload della richiesta di esempio:
{
"prompt":"Text example",
"n": 3,
"stream": false
}
Esempio di risposta JSON:
{
"id": "example",
"object": "text_completion",
"created": 1653666831,
"model": "ada",
"choices": [
{
"text": "returned text 1",
"index": 0,
"finish_reason": "length",
"logprobs": null
},
{
"text": "returned text 2",
"index": 1,
"finish_reason": "content_filter",
"logprobs": null
}
]
}
Scenario: viene inviata una richiesta di input inappropriata all'API dei completamenti (sia per streaming che non streaming)
Codice di risposta HTTP | Comportamento della risposta |
---|---|
400 | La chiamata API ha esito negativo quando la richiesta attiva un filtro di contenuto come configurato. Modificare il prompt e riprovare. |
Payload della richiesta di esempio:
{
"prompt":"Content that triggered the filtering model"
}
Esempio di risposta JSON:
"error": {
"message": "The response was filtered",
"type": null,
"param": "prompt",
"code": "content_filter",
"status": 400
}
Scenario: si effettua una chiamata di completamenti del flusso e nessun contenuto di output viene classificato a livello di categoria di filtraggio e gravità
Codice di risposta HTTP | Comportamento della risposta |
---|---|
200 | In questo caso, la chiamata torna alla generazione completa e finish_reason sarà 'length' o 'stop' per ogni risposta generata. |
Payload della richiesta di esempio:
{
"prompt":"Text example",
"n": 3,
"stream": true
}
Esempio di risposta JSON:
{
"id": "cmpl-example",
"object": "text_completion",
"created": 1653670914,
"model": "ada",
"choices": [
{
"text": "last part of generation",
"index": 2,
"finish_reason": "stop",
"logprobs": null
}
]
}
Scenario: fai una chiamata di completamento in streaming chiedendo più completamenti e almeno una parte del contenuto generato viene filtrata.
Codice di risposta HTTP | Comportamento della risposta |
---|---|
200 | Per un determinato indice di generazione, l'ultimo blocco della generazione includerà un valore finish_reason non null. Il valore è content_filter quando la generazione è stata filtrata. |
Payload della richiesta di esempio:
{
"prompt":"Text example",
"n": 3,
"stream": true
}
Esempio di risposta JSON:
{
"id": "cmpl-example",
"object": "text_completion",
"created": 1653670515,
"model": "ada",
"choices": [
{
"text": "Last part of generated text streamed back",
"index": 2,
"finish_reason": "content_filter",
"logprobs": null
}
]
}
Scenario: il sistema di filtraggio del contenuto non viene eseguito al completamento
Codice di risposta HTTP | Comportamento della risposta |
---|---|
200 | Se il sistema di filtraggio del contenuto è inattivo o non è in grado di completare l'operazione in tempo, la richiesta verrà comunque completata senza filtraggio del contenuto. È possibile determinare se il filtro non sia stato applicato cercando un messaggio di errore nell'oggetto content_filter_results . |
Payload della richiesta di esempio:
{
"prompt":"Text example",
"n": 1,
"stream": false
}
Esempio di risposta JSON:
{
"id": "cmpl-example",
"object": "text_completion",
"created": 1652294703,
"model": "ada",
"choices": [
{
"text": "generated text",
"index": 0,
"finish_reason": "length",
"logprobs": null,
"content_filter_results": {
"error": {
"code": "content_filter_error",
"message": "The contents are not filtered"
}
}
}
]
}
Procedure consigliate
Nell'ambito della progettazione dell'applicazione, prendere in considerazione le seguenti procedure consigliate per offrire un'esperienza positiva con l'applicazione, riducendo al minimo i potenziali danni:
- Decidere come gestire gli scenari in cui gli utenti inviano richieste contenenti contenuto classificato a livello di categoria filtrata e gravità oppure usano in modo improprio l'applicazione.
- Verificare
finish_reason
per scoprire se un completamento è filtrato. - Verificare che non sia presente alcun oggetto errore in
content_filter_results
(a indicare che i filtri contenuto non sono stati eseguiti). - Se si usa il modello di codice materiale protetto in modalità annotazione, visualizzare l'URL di citazione quando viene visualizzato il codice nell'applicazione.
Contenuti correlati
- Informazioni sulle categorie di filtro del contenuto e sui livelli di gravità.
- Ulteriori informazioni sui modelli alla base di OpenAI di Azure.
- Richiedere i filtri di contenuto modificati tramite questo modulo.
- Il filtraggio dei contenuti OpenAI della piattaforma Azure è basato su Sicurezza dei contenuti di Azure AI.
- Ulteriori informazioni sulla comprensione e la mitigazione dei rischi associati alla propria applicazione: Panoramica delle procedure di intelligenza artificiale responsabili per i modelli OpenAI di Azure.
- Altre informazioni sull'elaborazione dei dati in relazione al monitoraggio di filtri e abusi dei contenuti: dati, privacy e sicurezza per Azure OpenAI.