Udostępnij przez


Uruchamianie ocen w chmurze przy użyciu zestawu Microsoft Foundry SDK (wersja klasyczna)

Uwaga / Notatka

Ten dokument odnosi się do portalu Microsoft Foundry (klasycznego).

🔍 Zapoznaj się z dokumentacją rozwiązania Microsoft Foundry (nową), aby dowiedzieć się więcej o nowym portalu.

Ważna

Elementy oznaczone jako (wersja zapoznawcza) w tym artykule są aktualnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą nie być obsługiwane lub mogą mieć ograniczone możliwości. Aby uzyskać więcej informacji, zobacz Warunki dodatkowe korzystania z testowych wersji Microsoft Azure.

Z tego artykułu dowiesz się, jak uruchamiać oceny w chmurze (wersja zapoznawcza) na potrzeby testowania wstępnego wdrożenia na testowym zestawie danych. Zestaw AZURE AI Evaluation SDK umożliwia uruchamianie ocen lokalnie na maszynie i w chmurze. Na przykład uruchom lokalne oceny na małych danych testowych, aby ocenić prototypy aplikacji generowania sztucznej inteligencji, a następnie przejść do testowania przed wdrożeniem, aby uruchomić oceny na dużym zestawie danych.

Korzystaj z ocen chmury w przypadku większości scenariuszy — szczególnie w przypadku testowania na dużą skalę, integrowania ocen z potokami ciągłej integracji i ciągłego dostarczania (CI/CD) lub przeprowadzania testów wstępnych. Uruchamianie ocen w chmurze eliminuje konieczność zarządzania lokalną infrastrukturą obliczeniową i obsługuje przepływy pracy testowania automatycznego na dużą skalę. Po wdrożeniu można stale oceniać agentów na potrzeby monitorowania po wdrożeniu.

Gdy używasz Foundry SDK, rejestruje wyniki oceny w projekcie Foundry dla lepszej obserwowalności. Ta funkcja obsługuje wszystkie wbudowane ewaluatory firmy Microsoft. i własnych spersonalizowanych ewaluatorów. Twoi ewaluatorzy mogą znajdować się w bibliotece ewaluatorów i mają takie same, projektowe zasady dostępu oparte na rolach.

Wymagania wstępne

  • Projekt Foundry.
  • Wdrożenie usługi Azure OpenAI z modelem GPT obsługującym uzupełnianie czatu (na przykład gpt-5-mini).
  • Rola użytkownika sztucznej inteligencji platformy Azure w projekcie Foundry.
  • Opcjonalnie możesz użyć własnego konta magazynu do przeprowadzania ocen.

Uwaga / Notatka

Niektóre funkcje oceny mają ograniczenia regionalne. Aby uzyskać szczegółowe informacje, zobacz obsługiwane regiony .

Wprowadzenie

  1. Zainstaluj klienta projektu zestawu Microsoft Foundry SDK, aby uruchomić oceny w chmurze:

    pip install azure-ai-projects azure-identity
    
  2. Ustaw zmienne środowiskowe dla zasobów usługi Foundry:

    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-5-mini
    
    # Optional: Reuse an existing dataset.
    dataset_name    = os.environ.get("DATASET_NAME",    "dataset-test")
    dataset_version = os.environ.get("DATASET_VERSION", "1.0")
    
  3. Zdefiniuj klienta do uruchamiania ocen w chmurze:

    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(),
    )
    

Przygotowywanie danych wejściowych

# 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

Aby dowiedzieć się więcej o formatach danych wejściowych na potrzeby oceny aplikacji generacyjnych sztucznej inteligencji, zobacz:

Aby dowiedzieć się więcej o formatach danych wejściowych na potrzeby oceny agentów, zobacz Ocena agentów usługi Azure AI i Ocena innych agentów.

Określanie ewaluatorów

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,
    ),
}

Tworzenie oceny

Na koniec przeprowadź zdalną ocenę.

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)

Określanie niestandardowych ewaluatorów

Uwaga / Notatka

Projekty odlewnicze nie są obsługiwane w przypadku tej funkcji. Zamiast tego użyj projektu centrum Foundry.

Niestandardowe ewaluatory oparte na kodzie

Zarejestruj niestandardowe moduły ewaluacyjne w projekcie Azure AI Hub i pobierz identyfikatory ewaluatorów.

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 catalog.
evaluator_name = "AnswerLenEvaluator"

# Register the evaluator to the evaluator catalog.
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)

Po zarejestrowaniu niestandardowego ewaluatora wyświetl go w katalogu ewaluatora. W projekcie Foundry wybierz pozycję Ocena, a następnie wybierz pozycję Wykaz ewaluatorów.

Niestandardowe ewaluatory oparte na monitach

Użyj tego przykładu, aby zarejestrować niestandardowy FriendlinessEvaluator element wykonany zgodnie z opisem w mechanizmach oceny opartych na monitach.

# 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 catalog.
evaluator_name = "FriendlinessEvaluator"

# Register the evaluator to the evaluator catalog.
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)

Po zarejestrowaniu niestandardowego ewaluatora można go wyświetlić w katalogu ewaluatora. W projekcie Foundry wybierz pozycję Ocena, a następnie wybierz pozycję Wykaz ewaluatorów.

Pobieranie wyników

Rozwiązywanie problemów