Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
I den här artikeln får du lära dig hur du kör utvärderingar i molnet (förhandsversion) i förhandsdistributionstestning på en testdatauppsättning. Azure AI Evaluation SDK stöder körning av utvärderingar lokalt på datorn och i molnet. Du kan till exempel köra lokala utvärderingar på små testdata för att utvärdera dina generativa AI-programprototyper. Gå sedan vidare till testning före distribution och kör utvärderingar på en stor datauppsättning.
När du utvärderar dina program i molnet kan du inte hantera din lokala beräkningsinfrastruktur. Du kan också integrera utvärderingar som tester i dina pipelines för kontinuerlig integrering och kontinuerlig leverans. Efter distributionen kan du kontinuerligt övervaka dina program för övervakning efter distributionen.
När du använder Azure AI Projects SDK loggar den utvärderingsresultat i ditt Azure AI-projekt för bättre observerbarhet. Den här funktionen stöder alla Microsoft-utvalda inbyggda utvärderare och dina egna anpassade utvärderare. Dina utvärderare kan finnas i utvärderingsbiblioteket och ha samma rollbaserade åtkomstkontroll för projektomfattning.
Förutsättningar
- Azure AI Foundry-projekt i samma regioner som är stöd för risk- och säkerhetsutvärderingar (förhandsversion). Om du inte har ett projekt skapar du ett. Se Skapa ett projekt för Azure AI Foundry.
- Azure OpenAI-distribution med GPT-modell som stöder
chat completion. Till exempelgpt-4. - Kontrollera att du är inloggad i din Azure-prenumeration genom att köra
az login.
Om det här är första gången du kör utvärderingar och loggar det till ditt Azure AI Foundry-projekt kan du behöva utföra några ytterligare steg:
- Skapa och anslut ditt lagringskonto till ditt Azure AI Foundry-projekt på resursnivå. Det finns två sätt du kan göra detta på. Du kan använda en Bicep-mall som etablerar och ansluter ett lagringskonto till ditt Foundry-projekt med nyckelautentisering. Du kan också skapa och etablera åtkomst manuellt till ditt lagringskonto i Azure-portalen.
- Kontrollera att det anslutna lagringskontot har åtkomst till alla projekt.
- Om du har anslutit ditt lagringskonto med Microsoft Entra-ID ska du ge den hanterade identiteten Storage Blob Data Owner behörighet till både ditt konto och Foundry-projektresursen i Azure-portalen.
Anmärkning
Konfigurationer av virtuella nätverk stöds för närvarande inte för molnbaserade utvärderingar. Aktivera åtkomst till offentligt nätverk för din Azure OpenAI-resurs.
Kom igång
Installera Azure AI Foundry SDK-projektklienten som kör utvärderingarna i molnet:
uv install azure-ai-projects azure-identityAnmärkning
Mer information finns i REFERENSdokumentation för REST API.
Ange dina miljövariabler för dina Azure AI Foundry-resurser:
import os # Required environment variables: endpoint = os.environ["PROJECT_ENDPOINT"] # https://<account>.services.ai.azure.com/api/projects/<project> model_endpoint = os.environ["MODEL_ENDPOINT"] # https://<account>.services.ai.azure.com model_api_key = os.environ["MODEL_API_KEY"] model_deployment_name = os.environ["MODEL_DEPLOYMENT_NAME"] # E.g. gpt-4o-mini # Optional: Reuse an existing dataset. dataset_name = os.environ.get("DATASET_NAME", "dataset-test") dataset_version = os.environ.get("DATASET_VERSION", "1.0")Definiera en klient som kör dina utvärderingar i molnet:
import os from azure.identity import DefaultAzureCredential from azure.ai.projects import AIProjectClient # Create the project client (Foundry project and credentials): project_client = AIProjectClient( endpoint=endpoint, credential=DefaultAzureCredential(), )
Ladda upp utvärderingsdata
# Upload a local JSONL file. Skip this step if you already have a dataset registered.
data_id = project_client.datasets.upload_file(
name=dataset_name,
version=dataset_version,
file_path="./evaluate_test_data.jsonl",
).id
Om du vill veta mer om indataformat för utvärdering av generativa AI-program:
Mer information om indataformat för utvärdering av agenter finns i Utvärdera Azure AI-agenter och Utvärdera andra agenter.
Ange utvärderare
from azure.ai.projects.models import (
EvaluatorConfiguration,
EvaluatorIds,
)
# Built-in evaluator configurations:
evaluators = {
"relevance": EvaluatorConfiguration(
id=EvaluatorIds.RELEVANCE.value,
init_params={"deployment_name": model_deployment_name},
data_mapping={
"query": "${data.query}",
"response": "${data.response}",
},
),
"violence": EvaluatorConfiguration(
id=EvaluatorIds.VIOLENCE.value,
init_params={"azure_ai_project": endpoint},
),
"bleu_score": EvaluatorConfiguration(
id=EvaluatorIds.BLEU_SCORE.value,
),
}
Skicka en utvärdering i molnet
Skicka slutligen fjärrutvärderingskörningen:
from azure.ai.projects.models import (
Evaluation,
InputDataset
)
# Create an evaluation with the dataset and evaluators specified.
evaluation = Evaluation(
display_name="Cloud evaluation",
description="Evaluation of dataset",
data=InputDataset(id=data_id),
evaluators=evaluators,
)
# Run the evaluation.
evaluation_response = project_client.evaluations.create(
evaluation,
headers={
"model-endpoint": model_endpoint,
"api-key": model_api_key,
},
)
print("Created evaluation:", evaluation_response.name)
print("Status:", evaluation_response.status)
Ange anpassade utvärderare
Anmärkning
Azure AI Foundry-projekt stöds inte för den här funktionen. Använd ett Azure AI Foundry-hubbprojekt i stället.
Kodbaserade anpassade utvärderare
Registrera dina anpassade utvärderare i ditt Azure AI Hub-projekt och hämta utvärderar-ID:n:
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Model
from promptflow.client import PFClient
# Define ml_client to register the custom evaluator.
ml_client = MLClient(
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
resource_group_name=os.environ["AZURE_RESOURCE_GROUP"],
workspace_name=os.environ["AZURE_PROJECT_NAME"],
credential=DefaultAzureCredential()
)
# Load the evaluator from the module.
from answer_len.answer_length import AnswerLengthEvaluator
# Convert it to an evaluation flow, and save it locally.
pf_client = PFClient()
local_path = "answer_len_local"
pf_client.flows.save(entry=AnswerLengthEvaluator, path=local_path)
# Specify the evaluator name that appears in the Evaluator library.
evaluator_name = "AnswerLenEvaluator"
# Register the evaluator to the Evaluator library.
custom_evaluator = Model(
path=local_path,
name=evaluator_name,
description="Evaluator calculating answer length.",
)
registered_evaluator = ml_client.evaluators.create_or_update(custom_evaluator)
print("Registered evaluator id:", registered_evaluator.id)
# Registered evaluators have versioning. You can always reference any version available.
versioned_evaluator = ml_client.evaluators.get(evaluator_name, version=1)
print("Versioned evaluator id:", registered_evaluator.id)
När du har registrerat din anpassade utvärderare kan du visa den i utvärderingsbiblioteket. I ditt Azure AI Foundry-projekt väljer du Utvärdering och sedan Utvärderarbibliotek.
Prompt-baserade anpassade utvärderare
Följ det här exemplet om du vill registrera en anpassad FriendlinessEvaluator skapad enligt beskrivningen i Prompt-baserade utvärderare:
# Import your prompt-based custom evaluator.
from friendliness.friend import FriendlinessEvaluator
# Define your deployment.
model_config = dict(
azure_endpoint=os.environ.get("AZURE_ENDPOINT"),
azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
api_version=os.environ.get("AZURE_API_VERSION"),
api_key=os.environ.get("AZURE_API_KEY"),
type="azure_openai"
)
# Define ml_client to register the custom evaluator.
ml_client = MLClient(
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
resource_group_name=os.environ["AZURE_RESOURCE_GROUP"],
workspace_name=os.environ["AZURE_PROJECT_NAME"],
credential=DefaultAzureCredential()
)
# # Convert the evaluator to evaluation flow and save it locally.
local_path = "friendliness_local"
pf_client = PFClient()
pf_client.flows.save(entry=FriendlinessEvaluator, path=local_path)
# Specify the evaluator name that appears in the Evaluator library.
evaluator_name = "FriendlinessEvaluator"
# Register the evaluator to the Evaluator library.
custom_evaluator = Model(
path=local_path,
name=evaluator_name,
description="prompt-based evaluator measuring response friendliness.",
)
registered_evaluator = ml_client.evaluators.create_or_update(custom_evaluator)
print("Registered evaluator id:", registered_evaluator.id)
# Registered evaluators have versioning. You can always reference any version available.
versioned_evaluator = ml_client.evaluators.get(evaluator_name, version=1)
print("Versioned evaluator id:", registered_evaluator.id)
När du har registrerat din anpassade utvärderare kan du visa den i utvärderingsbiblioteket. I ditt Azure AI Foundry-projekt väljer du Utvärdering och sedan Utvärderarbibliotek.
Felsökning: Jobbet har fastnat i körläge
Ditt utvärderingsjobb kan vara i körningstillståndet under en längre period när du använder Azure AI Foundry Project eller Hub. Den Azure OpenAI-modell som du valde kanske inte har tillräckligt med kapacitet.
Resolution
- Avbryt det aktuella utvärderingsjobbet.
- Öka modellkapaciteten för att hantera större indata.
- Kör utvärderingen igen.