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 esegue 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 si applica a tutti i modelli venduti direttamente da Azure, ad eccezione di richieste e completamenti elaborati dai modelli audio come Whisper. Per altre informazioni, vedere Modelli audio in Azure OpenAI.
Oltre al sistema di filtro del contenuto, Azure OpenAI esegue il monitoraggio per rilevare il contenuto e 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.
Annotazioni
Non vengono archiviati prompt o completamenti ai fini del filtro del contenuto. Non usiamo prompt o completamenti per addestrare, riaddestrare o migliorare il sistema di filtraggio dei contenuti senza il consenso degli utenti. Per altre informazioni, vedere Dati, privacy e sicurezza.
Tipi di filtro dei contenuti
Il sistema di filtro del contenuto integrato in Azure OpenAI contiene:
- Modelli di classificazione multiclasse neurale volti a rilevare e filtrare il contenuto dannoso. I modelli riguardano quattro categorie (odio, violenza, violenza e autolesionismo) su quattro livelli di gravità (sicuri, bassi, medi e alti). Il contenuto rilevato a livello di gravità "sicuro" è etichettato nelle annotazioni, ma non è soggetto a filtri e non è configurabile.
- Altri modelli di classificazione facoltativi volti a rilevare il rischio di jailbreak e il contenuto noto per il testo e il codice. Questi modelli sono classificatori binari che contrassegnano se il comportamento dell'utente o del modello è qualificato come attacco jailbreak o corrisponde al testo o al codice sorgente 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. Ciò include, ma non è limitato a:
|
| 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. |
| Informazioni personali | Le informazioni personali si riferiscono a qualsiasi informazione che può essere usata per identificare un determinato individuo. Il rilevamento delle informazioni personali implica l'analisi del contenuto di testo nei completamenti LLM e il filtro di tutte le informazioni personali restituite. |
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 filtrata e livello di gravità restituiscono un errore HTTP 400.
- Le chiamate di completamento non in streaming non restituiscono alcun contenuto quando il contenuto viene 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_reasonviene aggiornato. - Per le chiamate di completamento del flusso, i segmenti vengono restituiti all'utente man mano che vengono 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 è possibile visualizzare il filtro del contenuto:
| Codice di risposta HTTP | Comportamento della risposta |
|---|---|
| 200 | Quando tutte le generazioni passano i filtri come configurati, la risposta non include i dettagli di moderazione del contenuto. L'oggetto finish_reason per ogni generazione è stop o length. |
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 hanno 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: si invia un prompt di input inappropriato all'API di completamento (sia per lo streaming che per il 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 è 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 filtro del contenuto è inattivo o non è in grado di completare l'operazione in tempo, la richiesta viene comunque completata senza filtro 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_reasonper 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à.
- Altre informazioni sui modelli sottostanti che alimentano Azure OpenAI.
- 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.