Freigeben über


Verwenden der API für benutzerdefinierte Kategorien (Standard)

Mit der API für benutzerdefinierte Kategorien (Standard) können Sie eigene Inhaltskategorien für Ihren Anwendungsfall erstellen und Azure KI Inhaltssicherheit trainieren, um sie in neuen Inhalten zu erkennen.

Wichtig

Dieses Feature ist nur in bestimmten Azure-Regionen verfügbar. Weitere Informationen finden Sie unter Regionale Verfügbarkeit.

Achtung

Die Beispieldaten in diesem Leitfaden können anstößige Inhalte enthalten. Wir raten zu umsichtigem Vorgehen.

Voraussetzungen

  • Azure-Abonnement: Kostenloses Azure-Konto
  • Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Kopieren Sie den Endpunkt und einen der Schlüsselwerte an einen temporären Speicherort für die spätere Verwendung.
  • Erstellen Sie außerdem einen Azure Blob Storage-Container, in dem Sie Ihre Trainingsanmerkungsdatei beibehalten.
  • Installation einer der folgenden Optionen:

Vorbereiten Ihrer Trainingsdaten

Zum Trainieren einer benutzerdefinierten Kategorie benötigen Sie Beispieltextdaten, die die Kategorie darstellen, die erkannt werden soll. Führen Sie die folgenden Schritte aus, um Ihre Beispieldaten vorzubereiten.

  1. Sammeln oder Schreiben von Beispieldaten:

    • Die Qualität Ihrer Beispieldaten ist wichtig für das Training eines effektiven Modells. Zielen Sie darauf ab, mindestens 50 Positivbeispiele zu sammeln, die die zu identifizierenden Inhalte genau darstellen. Diese Beispiele sollten klar und abwechslungsreich sein und direkt mit der Kategoriedefinition zusammenhängen.
    • Negativbeispiele sind nicht erforderlich, können aber die Fähigkeit des Modells, relevante Inhalte von irrelevanten Inhalten zu unterscheiden, verbessern. Um die Leistung zu verbessern, sollten Sie 50 Beispiele auswählen, die nicht mit der Definition der positiven Fälle zusammenhängen. Diese sollten abwechslungsreich sein, aber immer noch im Zusammenhang mit dem Inhalt stehen, auf den Ihr Modell stoßen wird. Wählen Sie die Negativbeispiele sorgfältig aus, um sicherzustellen, dass sie nicht versehentlich mit der positiven Kategorie überlappen.
    • Bemühen Sie sich um ein Gleichgewicht zwischen der Anzahl positiver und negativer Beispiele. Ein ungleichmäßiges Dataset kann das Modell beeinträchtigen, was dazu führt, dass eine Art der Klassifizierung gegenüber einer anderen bevorzugt wird, was wiederum zu einer höheren Rate falsch positiver oder negativer Ergebnisse führen kann.
  2. Verwenden Sie einen Text-Editor, um Ihre Daten in eine JSONL-Datei zu formatieren. Unten sehen Sie ein Beispiel für das entsprechende Format. Kategoriebeispiele sollten isPositive auf true festlegen. Negativbeispiele sind optional, können aber die Leistung verbessern:

    {"text": "This is the 1st sample.", "isPositive": true}
    {"text": "This is the 2nd sample.", "isPositive": true}
    {"text": "This is the 3rd sample (negative).", "isPositive": false}
    
  3. Laden Sie die JSONL-Datei in einen Blob-Container eines Azure Storage-Kontos hoch. Kopieren Sie die Blob-URL an einen temporären Speicherort für die spätere Verwendung.

Gewähren des Speicherzugriffs

Als Nächstes müssen Sie Ihrer Content Safety-Ressource Zugriff gewähren, um Daten aus der Azure Storage-Ressource lesen zu können. Aktivieren Sie die systemseitig zugewiesene verwaltete Identität für die Azure KI Content Safety-Instanz, und weisen Sie der Identität die Rolle Mitwirkender/Besitzer/Leser von Storage-Blobdaten zu:

  1. Aktivieren Sie die verwaltete Identität für die Azure KI Content Safety-Instanz.

    Screenshot des Azure-Portals mit Aktivierung der verwalteten Identität.

  2. Weisen Sie der verwalteten Identität die Rolle Mitwirkender an/Besitzer von Storage-Blobdaten zu. Alle nachstehend hervorgehobenen Rollen sollten funktionieren.

    Screenshot der Seite „Rollenzuweisung hinzufügen“ im Azure-Portal.

    Screenshot mit im Azure-Portal zugewiesenen Rollen.

    Screenshot der Rolle „Verwaltete Identität“.

Erstellen und Trainieren einer benutzerdefinierten Kategorie

Wichtig

Ausreichend Zeit für das Modelltraining einplanen

Die End-to-End-Ausführung des Trainings einer benutzerdefinierten Kategorie kann fünf bis zehn Stunden dauern. Planen Sie Ihre Moderationspipeline entsprechend, und planen Sie Zeit für Folgendes ein:

  • Sammeln und Vorbereiten der Beispieldaten
  • Trainingsprozess
  • Modellauswertung und Anpassungen

Ersetzen Sie in den folgenden Befehlen <your_api_key>, <your_endpoint> und andere erforderliche Parameter durch Ihre eigenen Werte. Geben Sie dann jeden Befehl in ein Terminalfenster ein, und führen Sie ihn aus.

Erstellen einer neuen Kategorieversion

curl -X PUT "<your_endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
        \"categoryName\": \"<your_category_name>\",
        \"definition\": \"<your_category_definition>\",
        \"sampleBlobUrl\": \"https://example.blob.core.windows.net/example-container/sample.jsonl\"
     }"

Starten Sie den Kategoriebuildprozess:

Nachdem Sie die Antwort erhalten haben, speichern Sie die Vorgangs-ID (genannt id) in einer temporären Datei. Sie benötigen diese ID, um den Buildstatus mithilfe der Get-Status-API abzurufen.

curl -X POST "<your_endpoint>/contentsafety/text/categories/<your_category_name>:build?api-version=2024-02-15-preview&version={version}" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Abrufen des Kategoriebuildstatus:

Um den Status abzurufen, verwenden Sie die id aus der vorherigen API-Antwort, und platzieren Sie sie im Pfad der folgenden API.

curl -X GET "<your_endpoint>/contentsafety/text/categories/operations/<id>?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Analysieren von Text mit einer benutzerdefinierten Kategorie

Führen Sie den folgenden Befehl aus, um Text mit Ihrer benutzerdefinierten Kategorie zu analysieren. Ersetzen Sie <your_category_name> durch Ihren eigenen Wert:

curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
        \"text\": \"Example text to analyze\",
        \"categoryName\": \"<your_category_name>\", 
        \"version\": 1
        }"

Andere benutzerdefinierte Kategorievorgänge

Denken Sie daran, die unten aufgeführten Platzhalter durch Ihre tatsächlichen Werte für den API-Schlüssel, Endpunkt und bestimmte Inhalte (Kategoriename, Definition usw.) zu ersetzen. Diese Beispiele helfen Ihnen, die benutzerdefinierten Kategorien in Ihrem Konto zu verwalten.

Abrufen einer benutzerdefinierten Kategorie oder einer bestimmten Version davon

Ersetzen Sie die Platzhalter durch Ihre eigenen Werte, und führen Sie den folgenden Befehl in einem Terminalfenster aus:

curl -X GET "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Kategorien nach ihren neuesten Versionen auflisten

Ersetzen Sie die Platzhalter durch Ihre eigenen Werte, und führen Sie den folgenden Befehl in einem Terminalfenster aus:

curl -X GET "<endpoint>/contentsafety/text/categories?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Löschen einer benutzerdefinierten Kategorie oder einer bestimmten Version davon

Ersetzen Sie die Platzhalter durch Ihre eigenen Werte, und führen Sie den folgenden Befehl in einem Terminalfenster aus:

curl -X DELETE "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"