Teilen über


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:

Erstellen eines benutzerdefinierten Inhaltsfilters

Führen Sie folgende Schritte aus, um einen benutzerdefinierten Inhaltsfilter zu erstellen:

  1. Besuchen Sie das Azure KI Foundry-Portal.

  2. Wählen Sie Schutz & Sicherheit aus.

  3. Wählen Sie die Registerkarte Inhaltsfilter und dann Inhaltsfilter erstellen aus.

  4. Geben Sie unter Grundlegende Informationen einen Namen für den Inhaltsfilter ein.

  5. Wählen Sie unter Verbindung die Verbindung mit der Azure KI Services-Ressource aus, die mit Ihrem Projekt verbunden ist.

  6. Konfigurieren Sie unter Eingabefilter den Filter abhängig von Ihren Anforderungen. Diese Konfiguration wird angewendet, bevor die Anforderung das Modell selbst erreicht.

  7. Konfigurieren Sie unter Ausgabefilter den Filter abhängig von Ihren Anforderungen. Diese Konfiguration wird angewendet, nachdem das Modell ausgeführt und Inhalt generiert wurde.

  8. Wählen Sie Weiter aus.

  9. Optional können Sie eine bestimmte Bereitstellung dem erstellten Inhaltsfilter zuordnen. Sie können die zugeordneten Modellbereitstellungen jederzeit ändern.

  10. 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:

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:

  • 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

Hinzufügen einer Modellbereitstellung mit benutzerdefinierter Inhaltsfilterung

  1. 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
        }
    }
    
  2. 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
      }
    }
    
  3. 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
        ]
    }
    
  4. 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