Freigeben über


Übersicht über inhaltsfilterung

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:
  • Ethnische Zugehörigkeit, Nationalität
  • Geschlechtsidentitätsgruppen und -ausdruck
  • Sexuelle Orientierung
  • Religion
  • Persönliche Erscheinung und Körpergröße
  • Behinderungsstatus
  • Belästigung und Mobbing
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.:
  • Vulgäre Inhalte
  • Prostitution
  • Nacktheit und Pornografie
  • Missbrauch
  • Ausbeutung von Kindern, Kindesmissbrauch, Cyber Grooming
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.:
  • Waffen
  • Mobbing und Einschüchterung
  • Terroristischer und gewalttätiger Extremismus
  • Stalking
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.:
  • Essstörungen
  • Mobbing und Einschüchterung
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_reason wird auf „content_filter“ festgelegt. In seltenen Fällen mit längeren Antworten kann ein Teilergebnis zurückgegeben werden. In diesen Fällen wird finish_reason aktualisiert.
  • 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_results vorhanden 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.