Kommentar
Å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.
Visar för närvarande:Foundry-portalversion - (klassisk)Växla till version för den nya Foundry-portalen
Note
Microsoft Foundry SDK för utvärdering och Foundry-portalen är i offentlig förhandsversion, men API:erna är allmänt tillgängliga för utvärdering av modell och datauppsättning (agentutvärderingen finns kvar i offentlig förhandsversion). Azure AI Evaluation SDK och utvärderare markerade (förhandsversion) i den här artikeln finns för närvarande i offentlig förhandsversion överallt.
Inbyggda utvärderare är ett enkelt sätt att övervaka kvaliteten på programmets generationer. Om du vill anpassa dina utvärderingar kan du skapa egna kodbaserade eller promptbaserade utvärderare.
Code-based evaluators
Du behöver inte en stor språkmodell för vissa utvärderingsmått. Kodbaserade utvärderare ger dig flexibilitet att definiera mätvärden baserade på funktioner eller anropbara klasser. Du kan till exempel bygga din egen kodbaserade utvärderare genom att skapa en enkel Python-klass som beräknar längden på ett svar i answer_length.py under katalogen answer_len/, som i följande exempel.
Exempel på kodbaserad utvärderare: Svarslängd
class AnswerLengthEvaluator:
def __init__(self):
pass
# A class is made callable by implementing the special method __call__
def __call__(self, *, answer: str, **kwargs):
return {"answer_length": len(answer)}
Kör utvärderaren på en datarad genom att importera en anropbar klass:
from answer_len.answer_length import AnswerLengthEvaluator
answer_length_evaluator = AnswerLengthEvaluator()
answer_length = answer_length_evaluator(answer="What is the speed of light?")
Kodbaserad utvärderarresultat: Svarslängd
{"answer_length":27}
Prompt-based evaluators
För att bygga din egen promptbaserade utvärdering av stora språkmodeller eller AI-assisterad annotator, skapa en anpassad utvärderare baserad på en promptfil .
Prompty är en fil med .prompty filändelsen för att utveckla promptmallar. Prompty-tillgången är en markdown-fil med ett modifierat frontmaterial. Framtexten är i YAML-format. Den innehåller metadatafält som definierar modellkonfiguration och förväntade indata i prompten.
För att mäta vänligheten i ett svar, skapa en anpassad utvärderare som heter FriendlinessEvaluator:
Exempel på promptbaserad utvärderare: Vänlighetsutvärderare
Skapa först en friendliness.prompty fil som definierar vänlighetsmetriken och dess bedömningsmatris:
---
name: Friendliness Evaluator
description: Friendliness Evaluator to measure warmth and approachability of answers.
model:
api: chat
configuration:
type: azure_openai
azure_endpoint: ${env:AZURE_OPENAI_ENDPOINT}
azure_deployment: gpt-4o-mini
parameters:
model:
temperature: 0.1
inputs:
response:
type: string
outputs:
score:
type: int
explanation:
type: string
---
system:
Friendliness assesses the warmth and approachability of the answer. Rate the friendliness of the response between one to five stars using the following scale:
One star: the answer is unfriendly or hostile
Two stars: the answer is mostly unfriendly
Three stars: the answer is neutral
Four stars: the answer is mostly friendly
Five stars: the answer is very friendly
Please assign a rating between 1 and 5 based on the tone and demeanor of the response.
**Example 1**
generated_query: I just don't feel like helping you! Your questions are getting very annoying.
output:
{"score": 1, "reason": "The response is not warm and is resisting to be providing helpful information."}
**Example 2**
generated_query: I'm sorry this watch is not working for you. Very happy to assist you with a replacement.
output:
{"score": 5, "reason": "The response is warm and empathetic, offering a resolution with care."}
**Here the actual conversation to be scored:**
generated_query: {{response}}
output:
Skapa sedan en klass FriendlinessEvaluator för att ladda promptfilen och bearbeta utdata med JSON-format:
import os
import json
import sys
from promptflow.client import load_flow
class FriendlinessEvaluator:
def __init__(self, model_config):
current_dir = os.path.dirname(__file__)
prompty_path = os.path.join(current_dir, "friendliness.prompty")
self._flow = load_flow(source=prompty_path, model={"configuration": model_config})
def __call__(self, *, response: str, **kwargs):
llm_response = self._flow(response=response)
try:
response = json.loads(llm_response)
except Exception as ex:
response = llm_response
return response
Skapa nu din egen promptbaserade utvärderare och kör den på en rad data:
from friendliness.friend import FriendlinessEvaluator
friendliness_eval = FriendlinessEvaluator(model_config)
friendliness_score = friendliness_eval(response="I will not apologize for my behavior!")
Promptbaserad utvärderarresultat: Vänlighetsutvärderare
{
'score': 1,
'reason': 'The response is hostile and unapologetic, lacking warmth or approachability.'
}