Verwenden der API für benutzerdefinierte Kategorien (Standard) (Vorschau)
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:
- cURL für REST-API-Aufrufe
- Installation von Python 3.x
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.
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.
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
auftrue
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}
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 Inhaltssicherheit-Instanz, und weisen Sie der Identität die Rolle Mitwirkender/Besitzer von Speicherblobdaten zu:
Wichtig
Nur Speicherblobdaten-Mitwirkender oder Speicherblobdaten-Besitzer sind gültige Rollen, um fortzufahren.
Aktivieren Sie die verwaltete Identität für die Azure KI Content Safety-Instanz.
Weisen Sie der verwalteten Identität die Rolle Mitwirkender an/Besitzer von Storage-Blobdaten zu. Alle nachstehend hervorgehobenen Rollen sollten funktionieren.
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 Vorgänge für benutzerdefinierte Kategorien
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"