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.
För att börja utvärdera programmets generationer är inbyggda utvärderare fantastiska. För att tillgodose dina utvärderingsbehov kan du skapa en egen kodbaserad eller promptbaserad utvärderare.
Kodbaserade utvärderare
Du behöver ingen stor språkmodell för vissa utvärderingsmått. Kodbaserade utvärderare kan ge dig flexibiliteten att definiera mått baserat på funktioner eller anropsbara klasser. Du kan till exempel skapa en egen kodbaserad 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 rad med data genom att importera en anropsbar klass:
from answer_len.answer_length import AnswerLengthEvaluator
answer_length_evaluator = AnswerLengthEvaluator()
answer_length = answer_length_evaluator(answer="What is the speed of light?")
Kodbaserade utvärderarutdata: Svarslängd
{"answer_length":27}
Frågebaserade utvärderare
Om du vill skapa en egen frågebaserad utvärderingsmodell för stora språk eller en AI-assisterad anteckning kan du skapa en anpassad utvärderare baserat på en Prompty-fil .
Prompty är en fil med .prompty tillägget för att utveckla en promptmall. Prompty-resursen är en markdown-fil med ett ändrat förtext. Fronten är i YAML-format. Den innehåller metadatafält som definierar modellkonfiguration och förväntade indata för Prompty.
Om du vill mäta ett svars vänlighet kan du skapa en anpassad utvärderare FriendlinessEvaluator:
Exempel på frågabaserad utvärderare: Utvärdering av användarvänlighet
Skapa först en friendliness.prompty fil som definierar måttet för användarvänlighet och dess klassificeringskriteriet:
---
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 läsa in prompty-filen 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 en egen Prompty-baserad utvärderare och kör den på en rad med data:
from friendliness.friend import FriendlinessEvaluator
friendliness_eval = FriendlinessEvaluator(model_config)
friendliness_score = friendliness_eval(response="I will not apologize for my behavior!")
Fråga-baserade utvärderare utdata: Användarvänlighet utvärderare
{
'score': 1,
'reason': 'The response is hostile and unapologetic, lacking warmth or approachability.'
}