Konfigurieren von Inhaltsfiltern (Vorschau) für Modelle in Azure KI Services
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Das in Azure KI Services integrierte Inhaltsfiltersystem wird neben den Kernmodellen ausgeführt. Es verwendet einen Satz von Klassifizierungsmodellen mit mehreren Klassen, um vier Kategorien schädlicher Inhalte (Gewalt, Hass, Sexuelles und Selbstverletzung) mit jeweils vier Schweregraden (sicher, niedrig, mittel und hoch) zu erkennen. Es bietet optionale binäre Klassifizierer zum Erkennen von Jailbreak-Risiken, vorhandenem Text und Code in öffentlichen Repositorys. Weitere Informationen zu den Inhaltskategorien, Schweregraden und dem Verhalten des Inhaltsfiltersystems finden Sie in diesem Artikel.
Die Standardkonfiguration für die Inhaltsfilterung ist so festgelegt, dass für alle vier Kategorien von schädlichen Inhalten sowohl für Prompts als auch für Vervollständigungen der mittlere Schweregrad gefiltert wird. Daher werden Inhalte, die mit dem Schweregrad „Mittel“ oder „Hoch“ erkannt werden, gefiltert werden, während Inhalte, die mit dem Schweregrad „Niedrig“ oder „Sicher“ erkannt werden, nicht gefiltert werden.
Inhaltsfilter können auf Ressourcenebene konfiguriert und einer oder mehreren Bereitstellungen zugeordnet werden.
Voraussetzungen
Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:
Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Umgebung upgraden und während des Prozesses ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall den Artikel Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Eine Azure KI Services-Ressource. Weitere Informationen finden Sie unter Erstellen einer Azure KI Services-Ressource.
- Ein KI-Projekt, das mit Ihrer Azure KI Services-Ressource verbunden ist. Sie können die unter Konfigurieren des Azure KI-Modellinferenzdiensts in meinem Projekt in Azure AI Foundry beschriebenen Schritte ausführen.
Erstellen eines benutzerdefinierten Inhaltsfilters
Führen Sie folgende Schritte aus, um einen benutzerdefinierten Inhaltsfilter zu erstellen:
Besuchen Sie das Azure KI Foundry-Portal.
Wählen Sie Schutz & Sicherheit aus.
Wählen Sie die Registerkarte Inhaltsfilter und dann Inhaltsfilter erstellen aus.
Geben Sie unter Grundlegende Informationen einen Namen für den Inhaltsfilter ein.
Wählen Sie unter Verbindung die Verbindung mit der Azure KI Services-Ressource aus, die mit Ihrem Projekt verbunden ist.
Konfigurieren Sie unter Eingabefilter den Filter abhängig von Ihren Anforderungen. Diese Konfiguration wird angewendet, bevor die Anforderung das Modell selbst erreicht.
Konfigurieren Sie unter Ausgabefilter den Filter abhängig von Ihren Anforderungen. Diese Konfiguration wird angewendet, nachdem das Modell ausgeführt und Inhalt generiert wurde.
Wählen Sie Weiter aus.
Optional können Sie eine bestimmte Bereitstellung dem erstellten Inhaltsfilter zuordnen. Sie können die zugeordneten Modellbereitstellungen jederzeit ändern.
Nach Abschluss der Bereitstellung wird der neue Inhaltsfilter auf die Modellbereitstellung angewendet.
Berücksichtigen der Inhaltsfilterung in Ihrem Code
Nachdem die Inhaltsfilterung auf die Modellbereitstellung angewendet wurde, können Anforderungen je nach Eingaben und Ausgaben vom Dienst abgefangen werden. Wenn ein Inhaltsfilter ausgelöst wird, wird der Fehlercode „400“ mit der Beschreibung der ausgelösten Regel zurückgegeben.
Installieren Sie das Paket azure-ai-inference
mit Ihrem Paket-Manager, z. B. pip:
pip install azure-ai-inference>=1.0.0b5
Warnung
Azure KI Services-Ressource erfordert die Version azure-ai-inference>=1.0.0b5
für Python.
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
model = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Erkunden Sie unsere Beispiele,und lesen Sie die API-Referenzdokumentation für die ersten Schritte.
Das folgende Beispiel zeigt die Antwort auf eine Chatabschlussanfrage, welche die Sicherheit von Inhalten ausgelöst hat.
from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError
try:
response = model.complete(
messages=[
SystemMessage(content="You are an AI assistant that helps people find information."),
UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
]
)
print(response.choices[0].message.content)
except HttpResponseError as ex:
if ex.status_code == 400:
response = json.loads(ex.response._content.decode('utf-8'))
if isinstance(response, dict) and "error" in response:
print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
else:
raise ex
else:
raise ex
Bewährte Methoden befolgen
Wir empfehlen, Ihre Entscheidungen zur Konfiguration der Inhaltsfilterung durch einen iterativen Identifizierungs- (z. B. Red-Team-Tests, Stresstests und Analysen) und Messprozess zu unterstützen, um für ein bestimmtes Modell, eine bestimmte Anwendung und ein bestimmtes Einsatzszenario relevante potenzielle Schäden zu ermitteln. Wiederholen Sie nach der Implementierung von Risikominderungen wie Inhaltsfilterung die Messung, um ihre Effektivität zu testen.
Empfehlungen und bewährte Methoden für Verantwortungsvolle KI für Azure OpenAI, die auf dem Microsoft Responsible AI Standard basiert, finden Sie in der Übersicht über verantwortungsvolle KI für Azure OpenAI.
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Das in Azure KI Services integrierte Inhaltsfiltersystem wird neben den Kernmodellen ausgeführt. Es verwendet einen Satz von Klassifizierungsmodellen mit mehreren Klassen, um vier Kategorien schädlicher Inhalte (Gewalt, Hass, Sexuelles und Selbstverletzung) mit jeweils vier Schweregraden (sicher, niedrig, mittel und hoch) zu erkennen. Es bietet optionale binäre Klassifizierer zum Erkennen von Jailbreak-Risiken, vorhandenem Text und Code in öffentlichen Repositorys. Weitere Informationen zu den Inhaltskategorien, Schweregraden und dem Verhalten des Inhaltsfiltersystems finden Sie in diesem Artikel.
Die Standardkonfiguration für die Inhaltsfilterung ist so festgelegt, dass für alle vier Kategorien von schädlichen Inhalten sowohl für Prompts als auch für Vervollständigungen der mittlere Schweregrad gefiltert wird. Daher werden Inhalte, die mit dem Schweregrad „Mittel“ oder „Hoch“ erkannt werden, gefiltert werden, während Inhalte, die mit dem Schweregrad „Niedrig“ oder „Sicher“ erkannt werden, nicht gefiltert werden.
Inhaltsfilter können auf Ressourcenebene konfiguriert und einer oder mehreren Bereitstellungen zugeordnet werden.
Voraussetzungen
Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:
Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Umgebung upgraden und während des Prozesses ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall den Artikel Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Eine Azure KI Services-Ressource. Weitere Informationen finden Sie unter Erstellen einer Azure KI Services-Ressource.
Hinzufügen einer Modellbereitstellung mit benutzerdefinierter Inhaltsfilterung
Es wird empfohlen, Inhaltsfilter über das Azure AI Foundry-Portal oder im Code mithilfe von Bicep zu erstellen. Das Erstellen von benutzerdefinierten Inhaltsfiltern oder das Anwenden dieser Filter auf Bereitstellungen über die Azure CLI wird nicht unterstützt.
Berücksichtigen der Inhaltsfilterung in Ihrem Code
Nachdem die Inhaltsfilterung auf die Modellbereitstellung angewendet wurde, können Anforderungen je nach Eingaben und Ausgaben vom Dienst abgefangen werden. Wenn ein Inhaltsfilter ausgelöst wird, wird der Fehlercode „400“ mit der Beschreibung der ausgelösten Regel zurückgegeben.
Installieren Sie das Paket azure-ai-inference
mit Ihrem Paket-Manager, z. B. pip:
pip install azure-ai-inference>=1.0.0b5
Warnung
Azure KI Services-Ressource erfordert die Version azure-ai-inference>=1.0.0b5
für Python.
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
model = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Erkunden Sie unsere Beispiele,und lesen Sie die API-Referenzdokumentation für die ersten Schritte.
Das folgende Beispiel zeigt die Antwort auf eine Chatabschlussanfrage, welche die Sicherheit von Inhalten ausgelöst hat.
from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError
try:
response = model.complete(
messages=[
SystemMessage(content="You are an AI assistant that helps people find information."),
UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
]
)
print(response.choices[0].message.content)
except HttpResponseError as ex:
if ex.status_code == 400:
response = json.loads(ex.response._content.decode('utf-8'))
if isinstance(response, dict) and "error" in response:
print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
else:
raise ex
else:
raise ex
Bewährte Methoden befolgen
Wir empfehlen, Ihre Entscheidungen zur Konfiguration der Inhaltsfilterung durch einen iterativen Identifizierungs- (z. B. Red-Team-Tests, Stresstests und Analysen) und Messprozess zu unterstützen, um für ein bestimmtes Modell, eine bestimmte Anwendung und ein bestimmtes Einsatzszenario relevante potenzielle Schäden zu ermitteln. Wiederholen Sie nach der Implementierung von Risikominderungen wie Inhaltsfilterung die Messung, um ihre Effektivität zu testen.
Empfehlungen und bewährte Methoden für Verantwortungsvolle KI für Azure OpenAI, die auf dem Microsoft Responsible AI Standard basiert, finden Sie in der Übersicht über verantwortungsvolle KI für Azure OpenAI.
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Das in Azure KI Services integrierte Inhaltsfiltersystem wird neben den Kernmodellen ausgeführt. Es verwendet einen Satz von Klassifizierungsmodellen mit mehreren Klassen, um vier Kategorien schädlicher Inhalte (Gewalt, Hass, Sexuelles und Selbstverletzung) mit jeweils vier Schweregraden (sicher, niedrig, mittel und hoch) zu erkennen. Es bietet optionale binäre Klassifizierer zum Erkennen von Jailbreak-Risiken, vorhandenem Text und Code in öffentlichen Repositorys. Weitere Informationen zu den Inhaltskategorien, Schweregraden und dem Verhalten des Inhaltsfiltersystems finden Sie in diesem Artikel.
Die Standardkonfiguration für die Inhaltsfilterung ist so festgelegt, dass für alle vier Kategorien von schädlichen Inhalten sowohl für Prompts als auch für Vervollständigungen der mittlere Schweregrad gefiltert wird. Daher werden Inhalte, die mit dem Schweregrad „Mittel“ oder „Hoch“ erkannt werden, gefiltert werden, während Inhalte, die mit dem Schweregrad „Niedrig“ oder „Sicher“ erkannt werden, nicht gefiltert werden.
Inhaltsfilter können auf Ressourcenebene konfiguriert und einer oder mehreren Bereitstellungen zugeordnet werden.
Voraussetzungen
Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:
Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Umgebung upgraden und während des Prozesses ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall den Artikel Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Eine Azure KI Services-Ressource. Weitere Informationen finden Sie unter Erstellen einer Azure KI Services-Ressource.
Installieren Sie die Azure CLI.
Ermitteln Sie die folgenden Informationen:
die Azure-Abonnement-ID
Name Ihrer Azure KI Services-Ressource
Ressourcengruppe, in der die Azure KI Services-Ressource bereitgestellt wurde
Modellname, Anbieter, Version und SKU, die Sie bereitstellen möchten. Diese Informationen können Sie mithilfe des Azure AI Foundry-Portals oder der Azure CLI ermitteln. In diesem Beispiel stellen Sie das folgende Modell bereit:
-
Modellname::
Phi-3.5-vision-instruct
-
Anbieter:
Microsoft
-
Version:
2
- Bereitstellungstyp: Globaler Standard
-
Modellname::
Hinzufügen einer Modellbereitstellung mit benutzerdefinierter Inhaltsfilterung
Verwenden Sie die Vorlage
ai-services-content-filter-template.bicep
, um die Inhaltsfilterrichtlinie zu beschreiben:ai-services-content-filter-template.bicep
@description('Name of the Azure AI Services account where the policy will be created') param accountName string @description('Name of the policy to be created') param policyName string @allowed(['Asynchronous_filter', 'Blocking', 'Default', 'Deferred']) param mode string = 'Default' @description('Base policy to be used for the new policy') param basePolicyName string = 'Microsoft.DefaultV2' param contentFilters array = [ { name: 'Violence' severityThreshold: 'Medium' blocking: true enabled: true source: 'Prompt' } { name: 'Hate' severityThreshold: 'Medium' blocking: true enabled: true source: 'Prompt' } { name: 'Sexual' severityThreshold: 'Medium' blocking: true enabled: true source: 'Prompt' } { name: 'Selfharm' severityThreshold: 'Medium' blocking: true enabled: true source: 'Prompt' } { name: 'Jailbreak' blocking: true enabled: true source: 'Prompt' } { name: 'Indirect Attack' blocking: true enabled: true source: 'Prompt' } { name: 'Profanity' blocking: true enabled: true source: 'Prompt' } { name: 'Violence' severityThreshold: 'Medium' blocking: true enabled: true source: 'Completion' } { name: 'Hate' severityThreshold: 'Medium' blocking: true enabled: true source: 'Completion' } { name: 'Sexual' severityThreshold: 'Medium' blocking: true enabled: true source: 'Completion' } { name: 'Selfharm' severityThreshold: 'Medium' blocking: true enabled: true source: 'Completion' } { name: 'Protected Material Text' blocking: true enabled: true source: 'Completion' } { name: 'Protected Material Code' blocking: false enabled: true source: 'Completion' } { name: 'Profanity' blocking: true enabled: true source: 'Completion' } ] resource raiPolicy 'Microsoft.CognitiveServices/accounts/raiPolicies@2024-06-01-preview' = { name: '${accountName}/${policyName}' properties: { mode: mode basePolicyName: basePolicyName contentFilters: contentFilters } }
Verwenden Sie die Vorlage
ai-services-deployment-template.bicep
, um Modellbereitstellungen zu beschreiben:ai-services-deployment-template.bicep
@description('Name of the Azure AI services account') param accountName string @description('Name of the model to deploy') param modelName string @description('Version of the model to deploy') param modelVersion string @allowed([ 'AI21 Labs' 'Cohere' 'Core42' 'DeepSeek' 'Meta' 'Microsoft' 'Mistral AI' 'OpenAI' ]) @description('Model provider') param modelPublisherFormat string @allowed([ 'GlobalStandard' 'Standard' 'GlobalProvisioned' 'Provisioned' ]) @description('Model deployment SKU name') param skuName string = 'GlobalStandard' @description('Content filter policy name') param contentFilterPolicyName string = 'Microsoft.DefaultV2' @description('Model deployment capacity') param capacity int = 1 resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2024-04-01-preview' = { name: '${accountName}/${modelName}' sku: { name: skuName capacity: capacity } properties: { model: { format: modelPublisherFormat name: modelName version: modelVersion } raiPolicyName: contentFilterPolicyName == null ? 'Microsoft.Nill' : contentFilterPolicyName } }
Erstellen Sie die Hauptbereitstellungsdefinition:
main.bicep
param accountName string param modelName string param modelVersion string param modelPublisherFormat string param contentFilterPolicyName string module raiPolicy 'ai-services-content-filter-template.bicep' = { name: 'raiPolicy' scope: resourceGroup(resourceGroupName) params: { accountName: accountName policyName: contentFilterPolicyName } } module modelDeployment 'ai-services-deployment-template.bicep' = { name: 'modelDeployment' scope: resourceGroup(resourceGroupName) params: { accountName: accountName modelName: modelName modelVersion: modelVersion modelPublisherFormat: modelPublisherFormat contentFilterPolicyName: contentFilterPolicyName } dependsOn: [ raiPolicy ] }
Führen Sie die Bereitstellung aus:
RESOURCE_GROUP="<resource-group-name>" ACCOUNT_NAME="<azure-ai-model-inference-name>" MODEL_NAME="Phi-3.5-vision-instruct" PROVIDER="Microsoft" VERSION=2 RAI_POLICY_NAME="custom-policy" az deployment group create \ --resource-group $RESOURCE_GROUP \ --template-file main.bicep \ --parameters accountName=$ACCOUNT_NAME raiPolicyName=$RAI_POLICY_NAME modelName=$MODEL_NAME modelVersion=$VERSION modelPublisherFormat=$PROVIDER
Berücksichtigen der Inhaltsfilterung in Ihrem Code
Nachdem die Inhaltsfilterung auf die Modellbereitstellung angewendet wurde, können Anforderungen je nach Eingaben und Ausgaben vom Dienst abgefangen werden. Wenn ein Inhaltsfilter ausgelöst wird, wird der Fehlercode „400“ mit der Beschreibung der ausgelösten Regel zurückgegeben.
Installieren Sie das Paket azure-ai-inference
mit Ihrem Paket-Manager, z. B. pip:
pip install azure-ai-inference>=1.0.0b5
Warnung
Azure KI Services-Ressource erfordert die Version azure-ai-inference>=1.0.0b5
für Python.
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
model = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Erkunden Sie unsere Beispiele,und lesen Sie die API-Referenzdokumentation für die ersten Schritte.
Das folgende Beispiel zeigt die Antwort auf eine Chatabschlussanfrage, welche die Sicherheit von Inhalten ausgelöst hat.
from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError
try:
response = model.complete(
messages=[
SystemMessage(content="You are an AI assistant that helps people find information."),
UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
]
)
print(response.choices[0].message.content)
except HttpResponseError as ex:
if ex.status_code == 400:
response = json.loads(ex.response._content.decode('utf-8'))
if isinstance(response, dict) and "error" in response:
print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
else:
raise ex
else:
raise ex
Bewährte Methoden befolgen
Wir empfehlen, Ihre Entscheidungen zur Konfiguration der Inhaltsfilterung durch einen iterativen Identifizierungs- (z. B. Red-Team-Tests, Stresstests und Analysen) und Messprozess zu unterstützen, um für ein bestimmtes Modell, eine bestimmte Anwendung und ein bestimmtes Einsatzszenario relevante potenzielle Schäden zu ermitteln. Wiederholen Sie nach der Implementierung von Risikominderungen wie Inhaltsfilterung die Messung, um ihre Effektivität zu testen.
Empfehlungen und bewährte Methoden für Verantwortungsvolle KI für Azure OpenAI, die auf dem Microsoft Responsible AI Standard basiert, finden Sie in der Übersicht über verantwortungsvolle KI für Azure OpenAI.
Nächste Schritte
- Erfahren Sie mehr über Inhaltsfilterkategorien und Schweregrade mit dem Azure OpenAI Service.
- Erfahren Sie mehr über Rote Teams in unserem Artikel: Einführung in das Red Teaming großer Sprachmodelle (LLMs).