Konfigurace filtrů obsahu (Preview) pro modely ve službách Azure AI
Důležité
Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Systém filtrování obsahu integrovaný do služeb Azure AI se spouští společně s základními modely. Používá soubor klasifikačních modelů s více třídami k detekci čtyř kategorií škodlivého obsahu (násilí, nenávist, sexuální a sebepoškozování) na čtyřech úrovních závažnosti (bezpečné, nízké, střední a vysoké). Nabízí volitelné binární klasifikátory pro detekci rizika jailbreaku, existujícího textu a kódu ve veřejných úložištích. Další informace o kategoriích obsahu, úrovních závažnosti a chování systému filtrování obsahu najdete v následujícím článku.
Výchozí konfigurace filtrování obsahu je nastavená tak, aby filtrovat na střední prahovou hodnotu závažnosti pro všechny čtyři kategorie škodí obsahu pro výzvy i dokončení. Proto se obsah zjištěný na úrovni závažnosti střední nebo vysoké filtruje, zatímco obsah zjištěný na úrovni závažnosti nízký nebo bezpečný není filtrovaný.
Filtry obsahu je možné nakonfigurovat na úrovni prostředku a přidružit k jednomu nebo více nasazením.
Požadavky
K dokončení tohoto článku potřebujete:
Předplatné Azure. Pokud používáte modely GitHubu, můžete v procesu upgradovat prostředí a vytvořit předplatné Azure. Pokud se jedná o váš případ, přečtěte si článek Upgrade z modelů GitHubu na model Azure AI.
Prostředek služeb Azure AI Další informace najdete v tématu Vytvoření prostředku Azure AI Services.
- Projekt AI připojený k vašemu prostředku Azure AI Services. Zavoláte podle pokynů v tématu Konfigurace služby odvozování modelů Azure AI v mém projektu v Azure AI Foundry.
Vytvoření vlastního filtru obsahu
Pomocí následujícího postupu vytvořte vlastní filtr obsahu:
Přejděte na portál Azure AI Foundry.
Vyberte Bezpečnost a zabezpečení.
Vyberte kartu Filtry obsahu a pak vyberte Vytvořit filtr obsahu.
V části Základní informace zadejte název filtru obsahu.
V části Připojení vyberte připojení k prostředku azure AI Services , který je připojený k vašemu projektu.
V části Vstupní filtr nakonfigurujte filtr v závislosti na vašich požadavcích. Tato konfigurace se použije před tím, než požadavek dosáhne samotného modelu.
V části Výstupní filtr nakonfigurujte filtr v závislosti na vašich požadavcích. Tato konfigurace se použije po spuštění modelu a vygenerování obsahu.
Vyberte Další.
Volitelně můžete dané nasazení přidružit k vytvořenému filtru obsahu. Nasazení modelu, která jsou přidružená, můžete kdykoli změnit.
Po dokončení nasazení se na nasazení modelu použije nový filtr obsahu.
Účet pro filtrování obsahu v kódu
Jakmile se na nasazení modelu použije filtrování obsahu, může služba zachycovat požadavky v závislosti na vstupech a výstupech. Když se aktivuje filtr obsahu, vrátí se kód chyby 400 s popisem aktivovaného pravidla.
Nainstalujte balíček azure-ai-inference
pomocí správce balíčků, například pip:
pip install azure-ai-inference
Pak můžete balíček použít k využívání modelu. Následující příklad ukazuje, jak vytvořit klienta pro zpracování dokončení chatu:
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"]),
)
Projděte si naše ukázky a přečtěte si referenční dokumentaci k rozhraní API, abyste mohli začít.
Následující příklad ukazuje odpověď na žádost o dokončení chatu, která aktivovala bezpečnost obsahu.
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
Dodržujte osvědčené postupy.
Doporučujeme informovat vaše rozhodnutí o konfiguraci filtrování obsahu prostřednictvím iterativní identifikace (například červeného týmového testování, zátěžového testování a analýzy) a procesu měření, který řeší potenciální škody, které jsou relevantní pro konkrétní model, aplikaci a nasazení. Po implementaci zmírnění rizik, jako je filtrování obsahu, opakujte měření a otestujte efektivitu.
Doporučení a osvědčené postupy pro zodpovědnou AI pro Azure OpenAI, které jsou zakotveny v standardu Microsoft Responsible AI, najdete v přehledu zodpovědné umělé inteligence pro Azure OpenAI.
Důležité
Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Systém filtrování obsahu integrovaný do služeb Azure AI se spouští společně s základními modely. Používá soubor klasifikačních modelů s více třídami k detekci čtyř kategorií škodlivého obsahu (násilí, nenávist, sexuální a sebepoškozování) na čtyřech úrovních závažnosti (bezpečné, nízké, střední a vysoké). Nabízí volitelné binární klasifikátory pro detekci rizika jailbreaku, existujícího textu a kódu ve veřejných úložištích. Další informace o kategoriích obsahu, úrovních závažnosti a chování systému filtrování obsahu najdete v následujícím článku.
Výchozí konfigurace filtrování obsahu je nastavená tak, aby filtrovat na střední prahovou hodnotu závažnosti pro všechny čtyři kategorie škodí obsahu pro výzvy i dokončení. Proto se obsah zjištěný na úrovni závažnosti střední nebo vysoké filtruje, zatímco obsah zjištěný na úrovni závažnosti nízký nebo bezpečný není filtrovaný.
Filtry obsahu je možné nakonfigurovat na úrovni prostředku a přidružit k jednomu nebo více nasazením.
Požadavky
K dokončení tohoto článku potřebujete:
Předplatné Azure. Pokud používáte modely GitHubu, můžete v procesu upgradovat prostředí a vytvořit předplatné Azure. Pokud se jedná o váš případ, přečtěte si článek Upgrade z modelů GitHubu na model Azure AI.
Prostředek služeb Azure AI Další informace najdete v tématu Vytvoření prostředku Azure AI Services.
Přidání nasazení modelu s vlastním filtrováním obsahu
Doporučujeme vytvářet filtry obsahu pomocí portálu Azure AI Foundry nebo v kódu pomocí Bicep. Vytváření vlastních filtrů obsahu nebo jejich použití na nasazení se nepodporuje pomocí Azure CLI.
Účet pro filtrování obsahu v kódu
Jakmile se na nasazení modelu použije filtrování obsahu, může služba zachycovat požadavky v závislosti na vstupech a výstupech. Když se aktivuje filtr obsahu, vrátí se kód chyby 400 s popisem aktivovaného pravidla.
Nainstalujte balíček azure-ai-inference
pomocí správce balíčků, například pip:
pip install azure-ai-inference
Pak můžete balíček použít k využívání modelu. Následující příklad ukazuje, jak vytvořit klienta pro zpracování dokončení chatu:
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"]),
)
Projděte si naše ukázky a přečtěte si referenční dokumentaci k rozhraní API, abyste mohli začít.
Následující příklad ukazuje odpověď na žádost o dokončení chatu, která aktivovala bezpečnost obsahu.
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
Dodržujte osvědčené postupy.
Doporučujeme informovat vaše rozhodnutí o konfiguraci filtrování obsahu prostřednictvím iterativní identifikace (například červeného týmového testování, zátěžového testování a analýzy) a procesu měření, který řeší potenciální škody, které jsou relevantní pro konkrétní model, aplikaci a nasazení. Po implementaci zmírnění rizik, jako je filtrování obsahu, opakujte měření a otestujte efektivitu.
Doporučení a osvědčené postupy pro zodpovědnou AI pro Azure OpenAI, které jsou zakotveny v standardu Microsoft Responsible AI, najdete v přehledu zodpovědné umělé inteligence pro Azure OpenAI.
Důležité
Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Systém filtrování obsahu integrovaný do služeb Azure AI se spouští společně s základními modely. Používá soubor klasifikačních modelů s více třídami k detekci čtyř kategorií škodlivého obsahu (násilí, nenávist, sexuální a sebepoškozování) na čtyřech úrovních závažnosti (bezpečné, nízké, střední a vysoké). Nabízí volitelné binární klasifikátory pro detekci rizika jailbreaku, existujícího textu a kódu ve veřejných úložištích. Další informace o kategoriích obsahu, úrovních závažnosti a chování systému filtrování obsahu najdete v následujícím článku.
Výchozí konfigurace filtrování obsahu je nastavená tak, aby filtrovat na střední prahovou hodnotu závažnosti pro všechny čtyři kategorie škodí obsahu pro výzvy i dokončení. Proto se obsah zjištěný na úrovni závažnosti střední nebo vysoké filtruje, zatímco obsah zjištěný na úrovni závažnosti nízký nebo bezpečný není filtrovaný.
Filtry obsahu je možné nakonfigurovat na úrovni prostředku a přidružit k jednomu nebo více nasazením.
Požadavky
K dokončení tohoto článku potřebujete:
Předplatné Azure. Pokud používáte modely GitHubu, můžete v procesu upgradovat prostředí a vytvořit předplatné Azure. Pokud se jedná o váš případ, přečtěte si článek Upgrade z modelů GitHubu na model Azure AI.
Prostředek služeb Azure AI Další informace najdete v tématu Vytvoření prostředku Azure AI Services.
Nainstalujte rozhraní příkazového řádku Azure CLI.
Identifikujte následující informace:
ID vašeho předplatného Azure
Název prostředku azure AI Services
Skupina prostředků, ve které je nasazený prostředek Azure AI Services.
Název modelu, poskytovatel, verze a SKU, které chcete nasadit. K jeho identifikaci můžete použít portál Azure AI Foundry nebo Azure CLI. V tomto příkladu nasadíme následující model:
-
Název modelu::
Phi-3.5-vision-instruct
-
Zprostředkovatel:
Microsoft
-
Verze:
2
- Typ nasazení: Globální standard
-
Název modelu::
Přidání nasazení modelu s vlastním filtrováním obsahu
Pomocí šablony
ai-services-content-filter-template.bicep
popíšete zásady filtrování obsahu: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 } }
Použití šablony
ai-services-deployment-template.bicep
k popisu nasazení modelu: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 } }
Vytvořte hlavní definici nasazení:
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 ] }
Spusťte nasazení:
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
Účet pro filtrování obsahu v kódu
Jakmile se na nasazení modelu použije filtrování obsahu, může služba zachycovat požadavky v závislosti na vstupech a výstupech. Když se aktivuje filtr obsahu, vrátí se kód chyby 400 s popisem aktivovaného pravidla.
Nainstalujte balíček azure-ai-inference
pomocí správce balíčků, například pip:
pip install azure-ai-inference
Pak můžete balíček použít k využívání modelu. Následující příklad ukazuje, jak vytvořit klienta pro zpracování dokončení chatu:
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"]),
)
Projděte si naše ukázky a přečtěte si referenční dokumentaci k rozhraní API, abyste mohli začít.
Následující příklad ukazuje odpověď na žádost o dokončení chatu, která aktivovala bezpečnost obsahu.
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
Dodržujte osvědčené postupy.
Doporučujeme informovat vaše rozhodnutí o konfiguraci filtrování obsahu prostřednictvím iterativní identifikace (například červeného týmového testování, zátěžového testování a analýzy) a procesu měření, který řeší potenciální škody, které jsou relevantní pro konkrétní model, aplikaci a nasazení. Po implementaci zmírnění rizik, jako je filtrování obsahu, opakujte měření a otestujte efektivitu.
Doporučení a osvědčené postupy pro zodpovědnou AI pro Azure OpenAI, které jsou zakotveny v standardu Microsoft Responsible AI, najdete v přehledu zodpovědné umělé inteligence pro Azure OpenAI.
Další kroky
- Přečtěte si další informace o kategoriích filtrování obsahu a úrovních závažnosti pomocí služby Azure OpenAI.
- Přečtěte si další informace o červeném seskupování z našeho článku: Úvod do červeného seskupování velkých jazykových modelů (LLMs).