Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zurzeit wird folgendes angezeigt:Foundry (klassische) Portalversion - Wechseln zur Version für das neue Foundry-Portal
Note
Das Microsoft Foundry SDK für Die Auswertung und das Gießereiportal befindet sich in der öffentlichen Vorschau, die APIs sind jedoch allgemein für die Modell- und Datasetauswertung verfügbar (die Agentauswertung verbleibt in der öffentlichen Vorschau). Das in diesem Artikel markierte Azure AI Evaluation SDK und Bewerter (Vorschau) befinden sich derzeit überall in der öffentlichen Vorschau.
Integrierte Bewerter bieten eine einfache Möglichkeit, die Qualität der Anwendungsgenerationen zu überwachen. Um Ihre Auswertungen anzupassen, können Sie eigene codebasierte oder promptbasierte Auswertungen erstellen.
Code-based evaluators
Für bestimmte Bewertungsmetriken braucht man kein großes Sprachmodell. Codebasierte Evaluatoren geben Ihnen die Flexibilität, Metriken basierend auf Funktionen oder aufrufbaren Klassen zu definieren. Sie können zum Beispiel Ihren eigenen codebasierten Evaluator erstellen, indem Sie eine einfache Python-Klasse erstellen, die die Länge einer Antwort in answer_length.py unter dem Verzeichnis answer_len/ berechnet, wie im folgenden Beispiel.
Beispiel für einen codebasierten Evaluator: Antwortlänge
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)}
Führe den Evaluator auf einer Datenzeile aus, indem du eine aufrufbare Klasse importierst:
from answer_len.answer_length import AnswerLengthEvaluator
answer_length_evaluator = AnswerLengthEvaluator()
answer_length = answer_length_evaluator(answer="What is the speed of light?")
Codebasierte Evaluatorausgabe: Antwortlänge
{"answer_length":27}
Prompt-based evaluators
Um Ihren eigenen promptbasierten Large Language Model Evaluator oder KI-unterstützten Annotator zu erstellen, erstellen Sie einen benutzerdefinierten Evaluator basierend auf einer Prompty-Datei .
Prompty ist eine Datei mit der Erweiterung .prompty zur Entwicklung von Prompt-Vorlagen. Das Prompty-Asset ist eine Markdown-Datei mit einem modifizierten Front-Matter. Das Frontmaterial ist im YAML-Format. Sie enthält Metadatenfelder, die die Modellkonfiguration und die erwarteten Eingaben des Prompts definieren.
Um die Freundlichkeit einer Antwort zu messen, erstellen Sie einen benutzerdefinierten Evaluator mit dem Namen FriendlinessEvaluator:
Beispiel für einen promptbasierten Evaluator: Freundlichkeitsbewertungsprüfer
Erstellen Sie zunächst eine friendliness.prompty Datei, die die Freundlichkeitsmetrik und deren Bewertungsbewertung definiert:
---
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:
Erstellen Sie dann eine Klasse FriendlinessEvaluator , um die Prompty-Datei zu laden und die Ausgaben im JSON-Format zu verarbeiten:
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
Erstellen Sie nun Ihren eigenen prompty-basierten Evaluator und führen Sie ihn auf einer Datenzeile aus:
from friendliness.friend import FriendlinessEvaluator
friendliness_eval = FriendlinessEvaluator(model_config)
friendliness_score = friendliness_eval(response="I will not apologize for my behavior!")
Promptbasierter Evaluator-Output: Freundlichkeitsbewertungsprüfer
{
'score': 1,
'reason': 'The response is hostile and unapologetic, lacking warmth or approachability.'
}