Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure OpenAI inclut un système de filtrage de contenu qui fonctionne avec les modèles principaux, y compris les modèles de génération d’images. Ce système fonctionne en exécutant à la fois l'invite et la complétion via un ensemble de modèles de classification conçus pour détecter et empêcher la sortie de contenu dangereux. Le système de filtrage du contenu détecte les catégories spécifiques de contenu potentiellement nuisible dans les invites d’entrée et les achèvements de sortie et prend des mesures correspondantes. Les écarts au niveau des configurations d’API et de la conception de l’application pourraient affecter les achèvements et, par conséquent, le comportement de filtrage.
Important
Le système de filtrage de contenu n’est pas appliqué aux invites et aux complétions traitées par les modèles audio tels que Whisper dans Azure OpenAI dans les modèles d’Azure AI Foundry. En savoir plus sur les modèles audio dans Azure OpenAI.
En plus du système de filtrage de contenu, Azure OpenAI effectue une surveillance pour détecter le contenu et/ou les comportements qui suggèrent l’utilisation du service d’une manière susceptible de violer les conditions du produit applicables. Pour plus d’informations sur la compréhension et l’atténuation des risques associés à votre application, consultez la note de transparence pour Azure OpenAI. Pour plus d’informations sur le traitement des données pour le filtrage de contenu et la surveillance des abus, consultez Données, confidentialité et sécurité pour Azure OpenAI.
Les articles de cette section fournissent des informations sur les catégories de filtrage de contenu, les niveaux de gravité de filtrage et leur configurabilité et les scénarios d’API à prendre en compte dans la conception et l’implémentation de l’application.
Remarque
Aucune requête ni aucune complétion ne sont stockées à des fins de filtrage de contenu. Aucune requête ni aucune complétion ne sont utilisées pour entraîner, réentraîner ou améliorer le système de filtrage de contenu sans votre consentement. Pour plus d’informations, consultez Données, confidentialité et sécurité.
Types de filtre de contenu
Le système de filtrage de contenu intégré dans Azure OpenAI contient :
- Des modèles de classification multiclasse neuronaux destinés à détecter et à filtrer le contenu nuisible. Les modèles couvrent quatre catégories (haine, sexualité, violence et automutilation) selon quatre niveaux de gravité (sans risque, faible, moyen et élevé). Le contenu détecté au niveau de gravité « sûr » est étiqueté dans les annotations mais n'est pas soumis au filtrage et n'est pas configurable.
- Autres modèles de classification facultatifs visant à détecter le risque de jailbreak et le contenu connu pour le texte et le code ; ces modèles sont des classifieurs binaires qui indiquent si le comportement de l’utilisateur ou du modèle est qualifié d’attaque de jailbreak ou de correspondance avec du texte ou du code source connu. L’utilisation de ces modèles est facultative, mais l’utilisation d’un modèle de code de matériel protégé peut être nécessaire pour la couverture de l’engagement du droit d’auteur du client.
Catégories de filtres
Le tableau suivant récapitule les catégories de risques prises en charge par le système de filtrage de contenu d’Azure OpenAI.
Catégorie | Descriptif |
---|---|
Haine et équité | Les préjudices liés à la haine et à l’équité font référence à tout contenu qui attaque ou tient des propos discriminatoires à l’égard d'une personne ou d'un groupe identitaire sur la base de certains attributs distinctifs de ces groupes. Cela inclut, mais n’est pas limité aux éléments suivants :
|
Sexuel | Le terme « sexuel » désigne les propos relatifs aux organes anatomiques et les parties génitales, aux relations amoureuses, aux actes sexuels, aux actes décrits en termes érotiques ou affectueux, y compris les actes présentés comme une agression ou un acte sexuel violent forcé contre la volonté d’une personne. Il s’agit entre autres des documents suivants :
|
Violence | Le terme « violence » désigne les propos relatifs aux actes physiques visant à endommager quelque chose, à blesser quelqu’un ou à le tuer ; utilisé pour décrire des armes (à feu) et des objets associés. Cela comprend, entre autres :
|
Auto-préjudice | L’automutilation décrit le langage lié aux actions physiques destinées à blesser ou nuire le corps d’une personne ou à se tuer. Cela comprend, entre autres :
|
Attaques par invitation utilisateur | Les attaques d’invite utilisateur sont des invites utilisateur conçues pour inciter le modèle d’IA générative à adopter des comportements qu’il a été entraîné à éviter ou l’inciter à enfreindre les règles définies dans le message système. De telles attaques peuvent aller d’un jeu de rôle complexe à une subversion subtile de l’objectif de sécurité. |
Attaques indirectes | Les attaques indirectes, également appelées attaques par prompt indirectes ou attaques par injection de prompt inter-domaines, constituent une vulnérabilité potentielle dans laquelle des tiers placent des instructions malveillantes à l’intérieur de documents auxquels le système d’IA générative peut accéder et traiter. Nécessite l’incorporation et la mise en forme de documents. |
Détection de fondement2 | La détection du fondement détecte si les réponses textuelles de modèles de langage volumineux (LLMs) sont fondées dans les documents sources fournis par les utilisateurs. Le matériel non fondé fait référence aux instances où les LLM produisent des informations non factuelles ou inexactes par rapport aux documents sources. Nécessite l’incorporation et la mise en forme de documents. |
Matériel protégé pour le texte1 | Le texte matériel protégé décrit le contenu texte connu (par exemple, les paroles de chanson, les articles, les recettes et le contenu web sélectionné) qui peut être généré par de grands modèles de langage. |
Matériel protégé pour le code | Le code matériel protégé décrit le code source qui correspond à un ensemble de codes sources provenant de référentiels publics, qui peuvent être produits par de grands modèles de langage sans que les référentiels de sources soient correctement cités. |
Informations d’identification personnelle (PII) | Les informations d’identification personnelle (PII) font référence à toutes les informations qui peuvent être utilisées pour identifier un individu particulier. La détection des informations personnelles implique d'analyser le contenu du texte dans les complétions LLM et de filtrer toute information personnelle qui a été retournée. |
1 Si vous êtes propriétaire de matériel texte et que vous souhaitez envoyer du contenu texte à des fins de protection, soumettez une demande.
2 Non disponible dans les scénarios de non-diffusion en continu ; disponible uniquement pour les scénarios de diffusion en continu. Les régions suivantes prennent en charge la détection de l'ancrage : États-Unis Centre, États-Unis Est, France Centre et Canada Est
Détails du scénario
Lorsque le système de filtrage de contenu détecte un contenu nuisible, vous recevez soit une erreur lors de l'appel d'API si le prompt a été jugé inapproprié, soit le finish_reason
dans la réponse sera content_filter
pour indiquer que une partie de la génération a été filtrée. Lors de la génération de votre application ou de votre système, vous devez tenir compte de ces scénarios où le contenu retourné par l’API d’achèvement est filtré, ce qui peut entraîner un contenu incomplet. La façon dont vous agissez sur ces informations sera spécifique à l’application. Le comportement peut être résumé dans les points suivants :
- Les invites classées dans une catégorie filtrée à un niveau de gravité donné retournent une erreur HTTP 400.
- Les appels de saisie semi-automatique sans diffusion en continu ne retournent aucun contenu lorsque le contenu est filtré. La valeur
finish_reason
est définie sur content_filter. Dans de rares cas avec des réponses longues, un résultat partiel peut être retourné. Dans ces cas, la valeurfinish_reason
est mise à jour. - Pour les appels de saisie semi-automatique de diffusion en continu, les segments sont renvoyés à l’utilisateur à mesure qu’ils sont terminés. Le service continue la diffusion en continu jusqu’à ce qu’il atteigne un jeton d’arrêt ou une certaine longueur, ou encore jusqu’à ce que du contenu classé dans une catégorie filtrée et à un niveau de gravité donné soit détecté.
Scénario : vous envoyez un appel de saisie sans diffusion en continu demandant plusieurs sorties ; aucun contenu n’est classé dans une catégorie filtrée à un niveau de gravité donné
Le tableau ci-dessous présente les différentes façons dont le filtrage de contenu peut apparaître :
Code de réponse HTTP | Comportement de la réponse |
---|---|
200 | Dans les cas où toutes les générations transmettent les filtres tels qu’ils sont configurés, aucun détail de modération de contenu n’est ajouté à la réponse. La valeur finish_reason de chaque génération est soit stop, soit length. |
Exemple de charge utile de requête :
{
"prompt":"Text example",
"n": 3,
"stream": false
}
Exemple JSON de réponse :
{
"id": "example-id",
"object": "text_completion",
"created": 1653666286,
"model": "davinci",
"choices": [
{
"text": "Response generated text",
"index": 0,
"finish_reason": "stop",
"logprobs": null
}
]
}
Scénario : votre appel d’API demande plusieurs réponses (N>1) et au moins une des réponses est filtrée
Code de réponse HTTP | Comportement de la réponse |
---|---|
200 | Les générations qui ont été filtrées ont la valeur finish_reason pour content_filter . |
Exemple de charge utile de requête :
{
"prompt":"Text example",
"n": 3,
"stream": false
}
Exemple JSON de réponse :
{
"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
}
]
}
Scénario : une invite d'entrée inappropriée est envoyée à l'API de complétion (soit pour le streaming, soit pour le non-streaming)
Code de réponse HTTP | Comportement de la réponse |
---|---|
400 | L’appel d’API échoue quand l’invite déclenche un filtre de contenu tel que configuré. Modifiez le message et réessayez. |
Exemple de charge utile de requête :
{
"prompt":"Content that triggered the filtering model"
}
Exemple JSON de réponse :
"error": {
"message": "The response was filtered",
"type": null,
"param": "prompt",
"code": "content_filter",
"status": 400
}
Scénario : vous effectuez un appel de saisie en diffusion continue ; aucun contenu de sortie n’est classé dans une catégorie filtrée à un niveau de gravité donné
Code de réponse HTTP | Comportement de la réponse |
---|---|
200 | Dans ce cas, l’appel retourne la génération complète et la valeur de finish_reason sera « longueur » ou « stop » pour chaque réponse générée. |
Exemple de charge utile de requête :
{
"prompt":"Text example",
"n": 3,
"stream": true
}
Exemple JSON de réponse :
{
"id": "cmpl-example",
"object": "text_completion",
"created": 1653670914,
"model": "ada",
"choices": [
{
"text": "last part of generation",
"index": 2,
"finish_reason": "stop",
"logprobs": null
}
]
}
Scénario : vous effectuez un appel de saisie de diffusion en continu demandant plusieurs saisies et au moins une partie du contenu de sortie est filtrée
Code de réponse HTTP | Comportement de la réponse |
---|---|
200 | Pour un index de génération donné, le dernier segment de la génération inclut une valeur non null finish_reason . La valeur est content_filter lorsque la génération a été filtrée. |
Exemple de charge utile de requête :
{
"prompt":"Text example",
"n": 3,
"stream": true
}
Exemple JSON de réponse :
{
"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
}
]
}
Scénario : Le système de filtrage du contenu ne s’exécute pas lors de l’achèvement
Code de réponse HTTP | Comportement de la réponse |
---|---|
200 | Si le système de filtrage du contenu est en panne ou si vous ne parvenez pas à terminer l’opération à temps, votre requête est toujours terminée sans filtrage du contenu. Vous pouvez déterminer que le filtrage n’a pas été appliqué en recherchant un message d’erreur dans l’objet content_filter_results . |
Exemple de charge utile de requête :
{
"prompt":"Text example",
"n": 1,
"stream": false
}
Exemple JSON de réponse :
{
"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"
}
}
}
]
}
Meilleures pratiques
Dans le cadre de la conception de votre application, tenez compte des meilleures pratiques suivantes pour offrir une expérience positive liée à votre application tout en minimisant les dommages potentiels :
- Déterminez la façon dont vous souhaitez gérer les scénarios dans lesquels vos utilisateurs envoient des invites contenant du contenu classé dans une catégorie filtrée à un niveau de gravité donné ou qui utilisent votre application de manière incorrecte.
- Vérifiez la valeur
finish_reason
pour déterminer si un achèvement est filtré. - Vérifiez qu’il n’y a pas d’objet d’erreur dans
content_filter_results
(indiquant que les filtres de contenu n’ont pas été exécutés). - Si vous utilisez le modèle de code matériel protégé en mode annotation, affichez l’URL de citation lorsque vous affichez le code dans votre application.
Contenu connexe
- Découvrez les catégories de filtrage de contenu et les niveaux de gravité.
- Découvrez-en plus sur les modèles sous-jacents d’Azure OpenAI.
- Appliquez des filtres de contenu modifiés par le biais de ce formulaire.
- Le filtrage de contenu Azure OpenAI est optimisé par Azure AI Content Safety.
- En savoir plus sur la compréhension et l’atténuation des risques associés à votre application : Vue d’ensemble des pratiques d’IA responsable pour les modèles Azure OpenAI.
- Découvrez comment les données sont traitées en lien avec le filtrage de contenu et la surveillance des abus : données, confidentialité et sécurité pour Azure OpenAI.