Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure OpenAI enthält ein Inhaltsfiltersystem, das zusammen mit Kernmodellen funktioniert, einschließlich Bildgenerierungsmodellen. Dieses System führt sowohl die Eingabeaufforderung als auch den Abschluss über eine Reihe von Klassifizierungsmodellen aus, mit deren Rahmen die Ausgabe schädlicher Inhalte erkannt und verhindert werden kann. Das Inhaltsfiltersystem erkennt bestimmte Kategorien potenziell schädlicher Inhalte sowohl in Eingabeeingabeaufforderungen als auch in Ausgabeabschlüssen und ergreift entsprechende Maßnahmen. Variationen in API-Konfigurationen und Anwendungsentwurf können sich auf Vervollständigungen und somit auf das Filterverhalten auswirken.
Von Bedeutung
Das Inhaltsfiltersystem gilt für alle Modelle, die direkt von Azure verkauft werden, mit Ausnahme von Eingabeaufforderungen und Vervollständigungen, die durch Audiomodelle wie Whisper verarbeitet werden. Weitere Informationen finden Sie unter Audiomodelle in Azure OpenAI.
Zusätzlich zum Inhaltsfiltersystem führt Azure OpenAI eine Überwachung durch, um Inhalte und Verhaltensweisen zu erkennen, die darauf hindeuten, dass der Dienst auf eine Weise verwendet wird, die möglicherweise gegen geltende Produktbedingungen verstößt. Weitere Informationen zum Verstehen und Minimieren von Risiken im Zusammenhang mit Ihrer Anwendung finden Sie im Transparenzhinweis für Azure OpenAI. Weitere Informationen dazu, wie Daten für die Inhaltsfilterung und Missbrauchsüberwachung verarbeitet werden, finden Sie unter "Daten", "Datenschutz" und "Sicherheit" für Azure OpenAI.
Die Artikel in diesem Abschnitt enthalten Informationen zu den Inhaltsfilterkategorien, den Schweregraden der Filterung und deren Konfigurierbarkeit sowie API-Szenarien, die im Anwendungsentwurf und in der Implementierung berücksichtigt werden sollen.
Hinweis
Es werden keine Eingabeaufforderungen oder Fertigstellungen zum Zwecke der Inhaltsfilterung gespeichert. Wir verwenden keine Eingabeaufforderungen oder Fertigstellungen, um das Inhaltsfiltersystem ohne Zustimmung des Benutzers zu trainieren, neu zu trainieren oder zu verbessern. Weitere Informationen finden Sie unter Daten, Datenschutz und Sicherheit.
Inhaltsfiltertypen
Das in Azure OpenAI integrierte Inhaltsfiltersystem enthält:
- Neurale Multiklassen-Klassifikationsmodelle zur Erkennung und Filterung schädlicher Inhalte. Die Modelle umfassen vier Kategorien (Hass, Sexuelle, Gewalt und Selbstverletzung) über vier Schweregrade (sicher, niedrig, mittel und hoch). Inhalte, die mit dem Schweregrad „Sicher“ erkannt werden, werden in Anmerkungen gekennzeichnet, unterliegen jedoch keiner Filterung und sind nicht konfigurierbar.
- Andere optionale Klassifizierungsmodelle zur Erkennung von Jailbreak-Risiken und bekannten Inhalten für Text und Code. Bei diesen Modellen handelt es sich um binäre Klassifizierer, die angeben, ob das Benutzer- oder Modellverhalten als Jailbreak-Angriff oder als Übereinstimmung mit bekanntem Text oder Quellcode einzustufen ist. Die Verwendung dieser Modelle ist optional, aber die Verwendung des Modells für geschütztes Codematerial kann erforderlich sein, um die Verpflichtung des Kunden zum Urheberrecht abzudecken.
Filterkategorien
In der folgenden Tabelle sind die Risikokategorien zusammengefasst, die vom Inhaltsfiltersystem von Azure OpenAI unterstützt werden.
| Kategorie | BESCHREIBUNG |
|---|---|
| Hass und Fairness | Hass und fairnessbezogene Schäden beziehen sich auf Inhalte, die eine Person oder eine Identitätsgruppe angreifen oder diskriminierende Sprache in Bezug auf bestimmte Differenzierungsmerkmale dieser Gruppe gebrauchen. Dazu gehören, aber nicht beschränkt auf:
|
| Sexuell | „Sexuell“ beschreibt Sprache, die sich auf anatomische Organe und Genitalien, romantische Beziehungen und sexuelle Handlungen, erotisch oder zärtlich dargestellte Akte – einschließlich solcher Akte, die als Übergriff oder erzwungener sexueller Gewaltakt gegen den eigenen Willen dargestellt werden. Dies umfasst u. a.:
|
| Gewalt | „Gewalt“ beschreibt Sprache im Zusammenhang mit körperlichen Handlungen, die dazu dienen, jemanden oder etwas zu verletzen, zu beschädigen oder zu töten, oder die Waffen und ähnliche Dinge beschreibt. Dies umfasst u. a.:
|
| Selbstverletzung | „Selbstverletzung“ beschreibt Sprache im Zusammenhang mit physischen Handlungen mit dem Ziel, den eigenen Körper absichtlich zu verletzen, zu verwunden oder zu schädigen oder sich selbst zu töten. Dies umfasst u. a.:
|
| Benutzeraufforderungsangriffe | Benutzerpromptangriffe sind Benutzerprompts, die darauf abzielen, ein Verhalten des generativen KI-Modells zu provozieren, für dessen Vermeidung es trainiert wurde, oder gegen die in der Systemnachricht festgelegten Regeln zu verstoßen. Derartige Angriffe können von komplexem Rollenspiel bis hin zu subtiler Subversion des Sicherheitsziels reichen. |
| Indirekte Angriffe | Indirekte Angriffe, die auch als indirekte Promptangriffe oder domänenübergreifende Prompteinschleusungsangriffe bezeichnet werden, sind ein potenzielles Sicherheitsrisiko, bei dem Dritte böswillige Anweisungen innerhalb von Dokumenten platzieren, auf die das generative KI-System zugreifen und sie verarbeiten kann. Erfordert Dokumenteinbettung und -formatierung. |
| Stabilität2 | Die Groundedness-Erkennung markiert, ob die Textantworten großer Sprachmodelle (LLMs) von dem durch Benutzende bereitgestellten Quellmaterial gestützt werden. Material ohne Groundedness bezieht sich auf Fälle, in denen die LLMs Informationen erzeugen, die nicht sachlich oder ungenau im Bezug auf das Quellmaterial sind. Erfordert Dokumenteinbettung und -formatierung. |
| Geschütztes Material für Text1 | Geschützter Materialtext beschreibt bekannte Textinhalte (z. B. Liedtexte, Artikel, Rezepte und ausgewählte Webinhalte), die von großen Sprachmodellen ausgegeben werden können. |
| Geschütztes Material für Code | Geschützter Materialcode beschreibt Quellcode, der Quellcode aus öffentlichen Repositorys entspricht, die von großen Sprachmodellen ohne ordnungsgemäße Nennung von Quellrepositorys ausgegeben werden können. |
| Personenbezogene Informationen (PII) | Personenbezogene Informationen (PII) beziehen sich auf alle Informationen, die verwendet werden können, um eine bestimmte Person zu identifizieren. Die PII-Erkennung umfasst die Analyse von Textinhalten in LLM-Ergebnissen und das Filtern aller zurückgegebenen PII-Daten. |
1 Wenn Sie Textmaterial besitzen und zu schützende Textinhalte übermitteln möchten, stellen Sie einen entsprechenden Antrag.
2 Nicht in Nicht-Streamingszenarien, sondern nur für Streamingszenarien verfügbar. Die folgenden Regionen unterstützen die Groundedness-Erkennung: „USA, Mitte“, „USA, Osten“, „Frankreich, Mitte“ und „Kanada, Osten“.
Szenariodetails
Wenn das Inhaltsfiltersystem schädliche Inhalte erkennt, erhalten Sie entweder einen Fehler im API-Aufruf, wenn die Anfrage als unangemessen angesehen wurde, oder das finish_reason in der Antwort wird content_filter gesetzt, um anzuzeigen, dass ein Teil der Generierung gefiltert wurde. Wenn Sie Ihre Anwendung oder Ihr System erstellen, sollten Sie diese Szenarien berücksichtigen, in denen der von der Vervollständigungs-API zurückgegebene Inhalt gefiltert wird, was zu unvollständigen Inhalten führen kann. Wie Sie auf diese Informationen reagieren, ist anwendungsspezifisch. Das Verhalten kann in den folgenden Punkten zusammengefasst werden:
- Eingaben, die nach einer gefilterten Kategorie und Schweregradstufe klassifiziert werden, geben einen HTTP-400-Fehler zurück.
- Nicht-Streaming-Vervollständigungsaufrufe geben keine Inhalte zurück, wenn der Inhalt gefiltert wurde. Der Wert
finish_reasonwird auf „content_filter“ festgelegt. In seltenen Fällen mit längeren Antworten kann ein Teilergebnis zurückgegeben werden. In diesen Fällen wirdfinish_reasonaktualisiert. - Für Streamingvervollständigungsaufrufe werden Segmente an den Benutzer zurückgegeben, sobald sie abgeschlossen wurden. Der Dienst setzt das Streaming fort, bis ein Stopptoken oder eine Länge erreicht wird oder Inhalte erkannt werden, die in einer gefilterten Kategorie und einem Schweregrad klassifiziert sind.
Szenario: Sie senden eine Nicht-Streaming-Abschlussanforderung, in der Sie um mehrere Ausgaben bitten; kein Inhalt wird in einer gefilterten Kategorie und Schweregradstufe klassifiziert.
In der folgenden Tabelle sind die verschiedenen Möglichkeiten beschrieben, wie Inhaltsfilterung dargestellt werden kann:
| HTTP-Antwortcode | Antwortverhalten |
|---|---|
| 200 | Wenn alle Generationen die Filter wie konfiguriert übergeben, enthält die Antwort keine Details zur Inhaltsmoderation. Der finish_reason für jede Generation ist entweder stop oder length. |
Beispiel für Anforderungsnutzlast:
{
"prompt":"Text example",
"n": 3,
"stream": false
}
Beispielantwort JSON:
{
"id": "example-id",
"object": "text_completion",
"created": 1653666286,
"model": "davinci",
"choices": [
{
"text": "Response generated text",
"index": 0,
"finish_reason": "stop",
"logprobs": null
}
]
}
Szenario: Ihr API-Aufruf bittet um mehrere Antworten (N>1), und mindestens eine der Antworten wird gefiltert.
| HTTP-Antwortcode | Antwortverhalten |
|---|---|
| 200 | Die gefilterten Generationen haben einen finish_reason-Wert von content_filter. |
Beispiel für Anforderungsnutzlast:
{
"prompt":"Text example",
"n": 3,
"stream": false
}
Beispielantwort 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
}
]
}
Szenario: Sie senden eine unangemessene Eingabeaufforderung an die Abschluss-API (entweder für Streaming oder Nicht-Streaming)
| HTTP-Antwortcode | Antwortverhalten |
|---|---|
| 400 | Der API-Aufruf schlägt fehl, wenn der Prompt einen Inhaltsfilter wie konfiguriert auslöst. Ändern Sie die Eingabeaufforderung und versuchen Sie es erneut. |
Beispiel für Anforderungsnutzlast:
{
"prompt":"Content that triggered the filtering model"
}
Beispielantwort JSON:
"error": {
"message": "The response was filtered",
"type": null,
"param": "prompt",
"code": "content_filter",
"status": 400
}
Szenario: Sie führen einen Streamingabschlussaufruf durch. Keine Ausgabeinhalte sind in einer gefilterten Kategorie und einem Schweregrad klassifiziert.
| HTTP-Antwortcode | Antwortverhalten |
|---|---|
| 200 | In diesem Fall wird durch den Aufruf die gesamte Generierung zurückgestreamt, und finish_reason ist für jede generierte Antwort entweder length oder stop. |
Beispiel für Anforderungsnutzlast:
{
"prompt":"Text example",
"n": 3,
"stream": true
}
Beispielantwort JSON:
{
"id": "cmpl-example",
"object": "text_completion",
"created": 1653670914,
"model": "ada",
"choices": [
{
"text": "last part of generation",
"index": 2,
"finish_reason": "stop",
"logprobs": null
}
]
}
Szenario: Sie führen einen Streamingabschlussaufruf mit der Aufforderung nach mehreren Vervollständigungen durch, und mindestens ein Teil des Ausgabeinhalts wird gefiltert.
| HTTP-Antwortcode | Antwortverhalten |
|---|---|
| 200 | Für einen gegebenen Generierungsindex enthält der letzte Abschnitt der Generierung einen finish_reason-Wert, der ungleich null ist. Der Wert ist im Fall einer gefilterten Generierung content_filter. |
Beispiel für Anforderungsnutzlast:
{
"prompt":"Text example",
"n": 3,
"stream": true
}
Beispielantwort 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
}
]
}
Szenario: Das Inhaltsfiltersystem wird für den Abschluss nicht ausgeführt
| HTTP-Antwortcode | Antwortverhalten |
|---|---|
| 200 | Wenn das Inhaltsfiltersystem nicht ausgeführt wird oder in anderer Weise nicht in der Lage ist, den Vorgang zeitgerecht abzuschließen, wird Ihre Anforderung trotzdem ohne Filterung abgeschlossen. Sie können bestätigen, dass die Filterung nicht angewendet wurde, indem Sie im Objekt content_filter_results nach einer Fehlermeldung suchen. |
Beispiel für Anforderungsnutzlast:
{
"prompt":"Text example",
"n": 1,
"stream": false
}
Beispielantwort 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"
}
}
}
]
}
Bewährte Methoden
Berücksichtigen Sie im Rahmen Ihres Anwendungsentwurfs die folgenden bewährten Methoden, um eine positive Erfahrung mit Ihrer Anwendung zu erzielen und gleichzeitig potenzielle Schäden zu minimieren:
- Entscheiden Sie, wie Sie mit Szenarien umgehen möchten, in denen Ihre Benutzer Aufforderungen senden, die Inhalte enthalten, die nach einer gefilterten Kategorie und einem Schweregrad klassifiziert sind, oder in denen Ihre Anwendung anderweitig missbraucht wird.
- Überprüfen Sie
finish_reason, um zu sehen, ob ein Abschluss gefiltert ist. - Überprüfen Sie, ob kein Fehlerobjekt im
content_filter_resultsvorhanden ist (was angibt, dass Inhaltsfilter nicht ausgeführt wurden). - Wenn Sie das Modell für geschützten Materialcode im Anmerkungsmodus verwenden, sollten Sie die Zitat-URL anzeigen, wenn Sie den Code in Ihrer Anwendung anzeigen.
Verwandte Inhalte
- Erfahren Sie mehr über die Kategorien und Schweregrade der Inhaltsfilterung.
- Erfahren Sie mehr über die zugrunde liegenden Modelle, auf denen Azure OpenAI basiert.
- Beantragen Sie geänderte Inhaltsfilter über dieses Formular.
- Die Azure OpenAI-Inhaltsfilterung basiert auf Azure AI Content Safety.
- Erfahren Sie mehr über das Verstehen und Minimieren von Risiken im Zusammenhang mit Ihrer Anwendung: Übersicht über Methoden für verantwortungsvolle KI für Azure OpenAI-Modelle.
- Erfahren Sie mehr darüber, wie Daten im Zusammenhang mit inhaltsfilterung und Missbrauchsüberwachung verarbeitet werden: Daten, Datenschutz und Sicherheit für Azure OpenAI.