Freigeben über


Übersicht über inhaltsfilterung

Azure OpenAI enthält ein Inhaltsfiltersystem, das zusammen mit Kernmodellen funktioniert, einschließlich Bildgenerierungsmodellen. Dieses System funktioniert, indem sowohl die Eingabeaufforderung als auch der Abschluss über eine Reihe von Klassifizierungsmodellen ausgeführt werden, die entwickelt wurden, um die Ausgabe schädlicher Inhalte zu erkennen und zu verhindern. 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.

Wichtig

Das Inhaltsfiltersystem wird nicht auf Prompts und Vervollständigungen angewendet, die von Audiomodellen wie Whisper in Azure OpenAI in Azure KI Foundry-Modellen verarbeitet werden. Erfahren Sie mehr über die Audiomodelle in Azure OpenAI.

Zusätzlich zum Inhaltsfiltersystem führt Azure OpenAI Überwachung durch, um Inhalte und/oder Verhaltensweisen zu erkennen, die die Verwendung des Diensts auf eine Weise vorschlagen, die gegen geltende Produktbedingungen verstoßen könnte. 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

Für die Inhaltsfilterung werden keine Prompts oder Vervollständigungen gespeichert. Ohne Ihre Zustimmung werden keine Prompts oder Vervollständigungen verwendet, um das Inhaltsfiltersystem 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:

  • Neuronale mehrklassige Klassifizierungsmodelle zur Erkennung und Filterung schädlicher Inhalte. Die Modelle decken vier Kategorien („Hass“, „Sexuell“, „Gewalt“ und „Selbstverletzung“) in vier Schweregraden (sicher, niedrig, mittel und hoch) ab. 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 eines Jailbreak-Risikos sowie zur Erkennung bekannter Inhalte für Text und Code; Bei diesen Modellen handelt es sich um binäre Klassifizierer, die kennzeichnen, ob das Benutzer- oder Modellverhalten die Kriterien eines Jailbreak-Angriffs erfüllt oder ob eine Übereinstimmung mit bekanntem Text oder Quellcode vorliegt. 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.

Dies umfasst u. a.:
  • 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.
Groundedness2 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-Fertigstellungen und filtern alle zurückgegebenen PII.

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 Eingabeaufforderung als unangemessen angesehen wurde, oder finish_reason in der Antwort zeigt an, dass ein Teil der Vervollständigung 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:

  • Eingabeaufforderungen, die in einer gefilterten Kategorie und einem Schweregrad klassifiziert sind, geben einen HTTP 400-Fehler zurück.
  • Nicht streamende Abschlussaufrufe geben keine Inhalte zurück, wenn der Inhalt gefiltert wird. 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 Streamingabschlussaufrufe 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 Tabelle unten sind die verschiedenen Möglichkeiten beschrieben, wie Inhaltsfilterung dargestellt werden kann:

HTTP-Antwortcode Antwortverhalten
200 In den Fällen, in denen alle Generierungen den Filter wie konfiguriert ohne Beanstandung durchlaufen, werden der Antwort keine Details zu Inhaltsmoderation hinzugefügt. Die finish_reason für jede Generierung ist entweder „Stopp“ oder „Länge“.

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 Generationen, die gefiltert wurden, 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: Eine unangemessene Eingabeaufforderung wird an die Vervollständigungs-API gesendet (entweder für Streaming oder nicht für 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 „Länge“ oder „Stopp“.

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 bestimmten Generierungsindex enthält der letzte Teil der Generierung einen finish_reason-Wert ungleich null. 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 funktioniert oder anderweitig nicht in der Lage ist, den Vorgang rechtzeitig abzuschließen, wird Ihre Anforderung trotzdem ohne Inhaltsfilterung bearbeitet. 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.