Aracılığıyla paylaş


Azure AI Değerlendirme SDK'sı (önizleme) (klasik) ile üretken yapay zeka uygulamanızı yerel olarak değerlendirme

Uyarı

Bu belge , Microsoft Foundry (klasik) portalını ifade eder.

🔍Yeni portal hakkında bilgi edinmek için Microsoft Foundry (yeni) belgelerini görüntüleyin.

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Üretici yapay zeka uygulamanızı önemli bir veri kümesine uygulayarak performansını kapsamlı bir şekilde değerlendirebilirsiniz. Azure AI Değerlendirme SDK'sı ile geliştirme ortamınızda uygulamayı değerlendirin.

Test veri kümesi veya hedef sağladığınızda, üretken yapay zeka uygulama çıkışlarınız hem matematiksel tabanlı ölçümlerle hem de yapay zeka destekli kalite ve güvenlik değerlendiricileriyle nicel olarak ölçülür. Yerleşik veya özel değerlendiriciler, uygulamanın özellikleri ve sınırlamaları hakkında kapsamlı içgörüler sağlayabilir.

Bu makalede, değerlendiricileri tek bir veri satırında ve uygulama hedefinde daha büyük bir test veri kümesinde çalıştırmayı öğreneceksiniz. Azure AI Değerlendirme SDK'sını yerel olarak kullanan yerleşik değerlendiriciler kullanırsınız. Ardından, bir Dökümhane projesindeki sonuçları ve değerlendirme günlüklerini izlemeyi öğrenirsiniz.

Get started

İlk olarak, Azure AI Değerlendirme SDK'sından değerlendirici paketini yükleyin:

pip install azure-ai-evaluation

Uyarı

Daha fazla bilgi için bkz. Python için Azure AI Değerlendirme istemci kitaplığı.

Yerleşik değerlendiriciler

Yerleşik kalite ve güvenlik ölçümleri, belirli değerlendiriciler için ek bilgilerin yanı sıra sorgu ve yanıt çiftlerini kabul eder.

Kategori Değerlendiriciler
Genel amaçlı CoherenceEvaluator, FluencyEvaluator, QAEvaluator
Metinsel benzerlik SimilarityEvaluator, F1ScoreEvaluator, BleuScoreEvaluator, , GleuScoreEvaluator, RougeScoreEvaluator, MeteorScoreEvaluator
Getirme artırmalı üretim (RAG) RetrievalEvaluator, DocumentRetrievalEvaluator, GroundednessEvaluator, , GroundednessProEvaluator, RelevanceEvaluator, ResponseCompletenessEvaluator
Risk ve güvenlik ViolenceEvaluator, SexualEvaluator, SelfHarmEvaluator, , HateUnfairnessEvaluator, IndirectAttackEvaluator, ProtectedMaterialEvaluator, UngroundedAttributesEvaluator, CodeVulnerabilityEvaluator, ContentSafetyEvaluator
Öznelik IntentResolutionEvaluator, ToolCallAccuracyEvaluator, TaskAdherenceEvaluator
Azure OpenAI AzureOpenAILabelGrader, AzureOpenAIStringCheckGrader, AzureOpenAITextSimilarityGrader, AzureOpenAIGrader

Yerleşik değerlendiriciler için veri gereksinimleri

Yerleşik değerlendiriciler sorgu ve yanıt çiftlerini, JSON Satırları (JSONL) biçimindeki konuşmaların listesini veya her ikisini de kabul edebilir.

Değerlendirici Metin için konuşma ve tek dönüşlü destek Metin ve resim için diyalog ve tek döngülü destek Yalnızca metin için tek dönüşlü destek Gerektirir ground_truth Aracı girişlerini destekler
Kalite Değerlendiricileri
IntentResolutionEvaluator
ToolCallAccuracyEvaluator
TaskAdherenceEvaluator
GroundednessEvaluator
GroundednessProEvaluator
RetrievalEvaluator
DocumentRetrievalEvaluator
RelevanceEvaluator
CoherenceEvaluator
FluencyEvaluator
ResponseCompletenessEvaluator
QAEvaluator
Doğal Dil İşleme (NLP) Değerlendiricileri
SimilarityEvaluator
F1ScoreEvaluator
RougeScoreEvaluator
GleuScoreEvaluator
BleuScoreEvaluator
MeteorScoreEvaluator
Güvenlik Değerlendiricileri
ViolenceEvaluator
SexualEvaluator
SelfHarmEvaluator
HateUnfairnessEvaluator
ProtectedMaterialEvaluator
ContentSafetyEvaluator
UngroundedAttributesEvaluator
CodeVulnerabilityEvaluator
IndirectAttackEvaluator
Azure OpenAI Sınıflayıcıları
AzureOpenAILabelGrader
AzureOpenAIStringCheckGrader
AzureOpenAITextSimilarityGrader
AzureOpenAIGrader

Uyarı

Yapay zeka destekli kalite değerlendiricileri, SimilarityEvaluator hariç, bir neden alanı içerir. Puan için bir açıklama oluşturmak için düşünce zinciri mantığı gibi teknikler kullanırlar.

İyileştirilmiş değerlendirme kalitesinin bir sonucu olarak nesilde daha fazla belirteç kullanımı kullanırlar. Özellikle de max_token değerlendirici oluşturma için yapay zeka destekli değerlendiricilerin çoğu için 800 olarak ayarlanmıştır. RetrievalEvaluator için 1600 ve ToolCallAccuracyEvaluator için 3000 değerine sahiptir, böylece daha uzun girişleri barındırabilir.

Azure OpenAI not verenler, giriş sütunlarının not verenin kullandığı gerçek girişe nasıl dönüştürüldüğünü açıklayan bir şablon gerektirir. Örneğin, sorgu ve yanıt adlı iki girişiniz ve olarak {{item.query}}biçimlendirilmiş bir şablonunuz varsa, yalnızca sorgu kullanılır. Benzer şekilde, konuşma girişini kabul etmek gibi {{item.conversation}} bir şeye sahip olabilirsiniz, ancak sistemin bunu işleyebilmesi, not verenin geri kalanını bu girişi bekleyecek şekilde nasıl yapılandırdığınıza bağlıdır.

Aracılı değerlendiricilerin veri gereksinimleri hakkında daha fazla bilgi için bkz. Yapay zeka aracılarınızı değerlendirme.

Metin için tek dönüşlü destek

Tüm yerleşik değerlendiriciler, dizelerde sorgu ve yanıt çiftleri olarak tek dönüşlü girişler alır. Örneğin:

from azure.ai.evaluation import RelevanceEvaluator

query = "What is the capital of life?"
response = "Paris."

# Initialize an evaluator:
relevance_eval = RelevanceEvaluator(model_config)
relevance_eval(query=query, response=response)

Yerel değerlendirmeyi kullanarak toplu değerlendirmeleri çalıştırmak veya bulut değerlendirmesi çalıştırmak üzere veri kümenizi karşıya yüklemek için veri kümesini JSONL biçiminde temsil edin. Sorgu ve yanıt çifti olan önceki tek dönüşlü veriler, aşağıdaki örnekte olduğu gibi üç satır gösteren bir veri kümesi satırına eşdeğerdir:

{"query":"What is the capital/major city of France?","response":"Paris."}
{"query":"What atoms compose water?","response":"Hydrogen and oxygen."}
{"query":"What color is my shirt?","response":"Blue."}

Değerlendirme testi veri kümesi, yerleşik her değerlendiricinin gereksinimlerine bağlı olarak aşağıdaki öğeleri içerebilir:

  • Sorgu: Oluşturan yapay zeka uygulamasına gönderilen sorgu.
  • Yanıt: Oluşturan yapay zeka uygulaması tarafından oluşturulan sorguya verilen yanıt.
  • Bağlam: Oluşturulan yanıtın temel alındığı kaynak. Yani zeminlendirme belgeleri.
  • Temel gerçek: Gerçek yanıt olarak bir kullanıcı veya insan tarafından oluşturulan yanıt.

Her değerlendiricinin neler gerektirdiğini görmek için bakınız Yerleşik değerlendiriciler.

Metin için konuşma desteği

Metinle bağlantılı konuşmaları destekleyen değerlendiricilere conversation giriş olarak sağlayabilirsiniz. Bu giriş, bir messages, content, role ve isteğe bağlı olarak context içeren bir liste içeren Python sözlüğünü içerir.

Python'da aşağıdaki iki aşamalı konuşmaya bakın:

conversation = {
        "messages": [
        {
            "content": "Which tent is the most waterproof?", 
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is the most waterproof",
            "role": "assistant", 
            "context": "From the our product list the alpine explorer tent is the most waterproof. The Adventure Dining Table has higher weight."
        },
        {
            "content": "How much does it cost?",
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is $120.",
            "role": "assistant",
            "context": None
        }
        ]
}

Yerel değerlendirmeyi kullanarak toplu değerlendirmeleri çalıştırmak veya bulut değerlendirmesini çalıştırmak için veri kümenizi karşıya yüklemek için veri kümesini JSONL biçiminde temsil etmeniz gerekir. Önceki konuşma, aşağıdaki örnekte olduğu gibi bir JSONL dosyasındaki veri kümesi satırına eşdeğerdir:

{"conversation":
    {
        "messages": [
        {
            "content": "Which tent is the most waterproof?", 
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is the most waterproof",
            "role": "assistant", 
            "context": "From the our product list the alpine explorer tent is the most waterproof. The Adventure Dining Table has higher weight."
        },
        {
            "content": "How much does it cost?",
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is $120.",
            "role": "assistant",
            "context": null
        }
        ]
    }
}

Değerlendiricilerimiz, konuşmanın ilk dönüşünün sorgu-yanıt biçiminde query'den user, context'den assistant ve response'den assistant geçerli olduğunu anlar. Daha sonra konuşmalar sırayla değerlendirilir ve sonuçlar konuşma puanı için tüm turlarda toplanır.

Uyarı

İkinci turda, contextnull ya da eksik bir anahtar olsa bile, değerlendirici hatayla başarısız olmak yerine dönüşü boş bir dize olarak yorumlar ve bu da yanıltıcı sonuçlara yol açabilir.

Değerlendirme verilerinizi veri gereksinimlerine uyacak şekilde doğrulamanızı kesinlikle öneririz.

Konuşma modu için bir örnek:GroundednessEvaluator

# Conversation mode:
import json
import os
from azure.ai.evaluation import GroundednessEvaluator, AzureOpenAIModelConfiguration

model_config = AzureOpenAIModelConfiguration(
    azure_endpoint=os.environ.get("AZURE_ENDPOINT"),
    api_key=os.environ.get("AZURE_API_KEY"),
    azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
    api_version=os.environ.get("AZURE_API_VERSION"),
)

# Initialize the Groundedness evaluator:
groundedness_eval = GroundednessEvaluator(model_config)

conversation = {
    "messages": [
        { "content": "Which tent is the most waterproof?", "role": "user" },
        { "content": "The Alpine Explorer Tent is the most waterproof", "role": "assistant", "context": "From the our product list the alpine explorer tent is the most waterproof. The Adventure Dining Table has higher weight." },
        { "content": "How much does it cost?", "role": "user" },
        { "content": "$120.", "role": "assistant", "context": "The Alpine Explorer Tent is $120."}
    ]
}

# Alternatively, you can load the same content from a JSONL file.
groundedness_conv_score = groundedness_eval(conversation=conversation)
print(json.dumps(groundedness_conv_score, indent=4))

Konuşma çıktıları için, sıra başına sonuçlar bir listede depolanır ve genel konuşma puanı 'groundedness': 4.0 turlar boyunca ortalama alınır.

{
    "groundedness": 5.0,
    "gpt_groundedness": 5.0,
    "groundedness_threshold": 3.0,
    "evaluation_per_turn": {
        "groundedness": [
            5.0,
            5.0
        ],
        "gpt_groundedness": [
            5.0,
            5.0
        ],
        "groundedness_reason": [
            "The response accurately and completely answers the query by stating that the Alpine Explorer Tent is the most waterproof, which is directly supported by the context. There are no irrelevant details or incorrect information present.",
            "The RESPONSE directly answers the QUERY with the exact information provided in the CONTEXT, making it fully correct and complete."
        ],
        "groundedness_result": [
            "pass",
            "pass"
        ],
        "groundedness_threshold": [
            3,
            3
        ]
    }
}

Uyarı

Daha fazla değerlendirici modeli desteklemek için anahtarı ön ek olmadan kullanın. Örneğin, kullanın groundedness.groundedness.

Görüntüler ve çokmodlu metin ve görüntü için konuşma desteği

Görüntü ve çok modüllü görüntü ve metin için konuşmaları destekleyen değerlendiriciler için, içindeki görüntü URL'lerini veya Base64 ile kodlanmış görüntüleri conversationgeçirebilirsiniz.

Desteklenen senaryolar şunlardır:

  • Görüntüye veya metin oluşturma işlemine metin girişi olan birden çok resim.
  • Yalnızca metin kullanarak görüntü oluşturma.
  • Metin oluşturma işlemine yalnızca görüntü girişi.
from pathlib import Path
from azure.ai.evaluation import ContentSafetyEvaluator
import base64

# Create an instance of an evaluator with image and multi-modal support.
safety_evaluator = ContentSafetyEvaluator(credential=azure_cred, azure_ai_project=project_scope)

# Example of a conversation with an image URL:
conversation_image_url = {
    "messages": [
        {
            "role": "system",
            "content": [
                {"type": "text", "text": "You are an AI assistant that understands images."}
            ],
        },
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Can you describe this image?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://cdn.britannica.com/68/178268-050-5B4E7FB6/Tom-Cruise-2013.jpg"
                    },
                },
            ],
        },
        {
            "role": "assistant",
            "content": [
                {
                    "type": "text",
                    "text": "The image shows a man with short brown hair smiling, wearing a dark-colored shirt.",
                }
            ],
        },
    ]
}

# Example of a conversation with base64 encoded images:
base64_image = ""

with Path.open("Image1.jpg", "rb") as image_file:
    base64_image = base64.b64encode(image_file.read()).decode("utf-8")

conversation_base64 = {
    "messages": [
        {"content": "create an image of a branded apple", "role": "user"},
        {
            "content": [{"type": "image_url", "image_url": {"url": f"data:image/jpg;base64,{base64_image}"}}],
            "role": "assistant",
        },
    ]
}

# Run the evaluation on the conversation to output the result.
safety_score = safety_evaluator(conversation=conversation_image_url)

Şu anda görüntü ve çok modüllü değerlendiriciler şunları destekler:

  • Yalnızca tek mesaj: Konuşmada yalnızca bir kullanıcı iletisi ve bir asistan iletisi olabilir.
  • Yalnızca bir sistem iletisi olan konuşmalar.
  • Görüntüler de dahil olmak üzere 10 MB'tan küçük konuşma yükleri.
  • Mutlak URL'ler ve Base64 ile kodlanmış görüntüler.
  • Tek bir dönüşte birden çok görüntü.
  • JPG/JPEG, PNG ve GIF dosya biçimleri.

Kurulum

Önizleme dışında yapay zeka destekli kalite değerlendiricileri için, GroundednessProEvaluator içinde bir GPT modeli (gpt-35-turbo, gpt-4, gpt-4-turbo, gpt-4o veya gpt-4o-mini) belirtmeniz gerekir. GPT modeli, değerlendirme verilerini puanlarken yargıç görevi görür. Hem Azure OpenAI hem de OpenAI modeli yapılandırma şemalarını destekliyoruz. Değerlendiricilerimizle en iyi performans ve ayrıştırılabilir yanıtlar için önizleme aşamasında olmayan GPT modellerini kullanmanızı öneririz.

Uyarı

"Değerlendirici modeliniz için gpt-3.5-turbo öğesini gpt-4o-mini ile değiştirin." OpenAI'ye göre, gpt-4o-mini daha ucuz, daha yetenekli ve hızlı.

API anahtarıyla çıkarım çağrıları yapmak için en azından Azure OpenAI kaynağının Cognitive Services OpenAI User rolüne sahip olduğunuzdan emin olun. İzinler hakkında daha fazla bilgi için bkz. Azure OpenAI kaynağı için izinler.

tüm risk ve güvenlik değerlendiricileri GroundednessProEvaluator ile (önizleme) için, model_config içinde bir GPT dağıtımı yerine, azure_ai_project bilgilerinizi sağlamanız gerekir. Bu, Foundry projenizi kullanarak arka uç değerlendirme hizmetine erişir.

Yapay zeka destekli gömülü değerlendirici komutları

Saydamlık için, kalite değerlendiricilerimizin isteklerini Değerlendirici Kitaplığımızda ve Azure AI Değerlendirme Python SDK deposunda, güvenlik değerlendiricileri ve GroundednessProEvaluator dışında, Azure AI İçerik Güvenliği tarafından desteklenenler hariç, açık kaynak olarak sunuyoruz. Bu istemler, bir dil modelinin değerlendirme görevini gerçekleştirmesine yönelik yönergeler görevi görür ve bu da ölçümün ve ilgili puanlama puanlama bileşenlerinin insan dostu bir tanımını gerektirir. Tanımları özelleştirmenizi ve puanlama puanlarını senaryonuzun özelliklerine göre özelleştirmenizi kesinlikle öneririz. Daha fazla bilgi için bkz: Özel değerlendiriciler.

Bileşik değerlendiriciler

Bileşik değerlendiriciler, bireysel kalite veya güvenlik ölçümlerini birleştiren yerleşik değerlendiricilerdir. Hem sorgu yanıt çiftleri hem de sohbet iletileri için çok çeşitli ölçümler sağlar.

Bileşik değerlendirici İçerir Description
QAEvaluator GroundednessEvaluator, RelevanceEvaluator, CoherenceEvaluator, , FluencyEvaluator, SimilarityEvaluator, F1ScoreEvaluator Sorgu ve yanıt çiftleri için tek bir birleşik ölçüm çıkışı için tüm kalite değerlendiricilerini birleştirir
ContentSafetyEvaluator ViolenceEvaluator, SexualEvaluator, SelfHarmEvaluator, HateUnfairnessEvaluator Sorgu ve yanıt çiftleri için tek bir birleşik ölçüm çıkışı için tüm güvenlik değerlendiricilerini birleştirir

kullanarak test veri kümelerinde yerel değerlendirme evaluate()

Yerleşik veya özel değerlendiricilerinizi tek bir veri satırında kontrol ettikten sonra, tüm test veri kümesi üzerinde birden çok değerlendiriciyi birleşik bir şekilde evaluate() API'si ile birleştirebilirsiniz.

Microsoft Foundry projeleri için önkoşul ayarlama adımları

Bu oturumda değerlendirmeleri ilk kez çalıştırıyorsanız ve Foundry projenize kaydediyorsanız, aşağıdaki kurulum adımlarını uygulamanız gerekebilir.

  1. Depolama hesabınızı oluşturun ve kaynak düzeyinde Foundry projenize bağlayın. Bu bicep şablonu, anahtar ile kimlik doğrulama kullanarak bir depolama hesabı sağlar ve Foundry projenizle bağlantı kurar.
  2. Bağlı depolama hesabının tüm projelere erişimi olduğundan emin olun.
  3. Depolama hesabınızı Microsoft Entra Id ile bağladıysanız, Azure portalında hem hesabınıza hem de Dökümhane proje kaynağınıza Depolama Blobu Veri Sahibi için Microsoft Kimliği izinleri verdiğinizden emin olun.

Veri kümesi üzerinde değerlendirme yapma ve sonuçları Foundry'ye kaydetme

API'nin evaluate() verileri doğru ayrıştırabilmesini sağlamak için, veri kümesindeki sütunu değerlendiricilerin kabul ettiğiniz anahtar sözcüklerle eşlemek için sütun eşlemesi belirtmeniz gerekir. Bu örnek, , queryve responseiçin contextveri eşlemesini belirtir.

from azure.ai.evaluation import evaluate

result = evaluate(
    data="data.jsonl", # Provide your data here:
    evaluators={
        "groundedness": groundedness_eval,
        "answer_length": answer_length
    },
    # Column mapping:
    evaluator_config={
        "groundedness": {
            "column_mapping": {
                "query": "${data.queries}",
                "context": "${data.context}",
                "response": "${data.response}"
            } 
        }
    },
    # Optionally, provide your Foundry project information to track your evaluation results in your project portal.
    azure_ai_project = azure_ai_project,
    # Optionally, provide an output path to dump a JSON file of metric summary, row-level data, and the metric and Foundry project URL.
    output_path="./myevalresults.json"
)

Tavsiye

Foundry projenizdeki günlüğe kaydedilen değerlendirme sonuçlarınızı görüntülemek için bağlantının result.studio_url özelliğinin içeriğini alın.

Değerlendirici, toplam metrics ve satır düzeyi veri ve ölçümleri içeren bir sözlük olarak sonuçları çıkarır. Aşağıdaki örnek çıkışa bakın:

{'metrics': {'answer_length.value': 49.333333333333336,
             'groundedness.gpt_groundeness': 5.0, 'groundedness.groundeness': 5.0},
 'rows': [{'inputs.response': 'Paris is the capital/major city of France.',
           'inputs.context': 'Paris has been the capital/major city of France since '
                                  'the 10th century and is known for its '
                                  'cultural and historical landmarks.',
           'inputs.query': 'What is the capital/major city of France?',
           'outputs.answer_length.value': 31,
           'outputs.groundeness.groundeness': 5,
           'outputs.groundeness.gpt_groundeness': 5,
           'outputs.groundeness.groundeness_reason': 'The response to the query is supported by the context.'},
          {'inputs.response': 'Albert Einstein developed the theory of '
                            'relativity.',
           'inputs.context': 'Albert Einstein developed the theory of '
                                  'relativity, with his special relativity '
                                  'published in 1905 and general relativity in '
                                  '1915.',
           'inputs.query': 'Who developed the theory of relativity?',
           'outputs.answer_length.value': 51,
           'outputs.groundeness.groundeness': 5,
           'outputs.groundeness.gpt_groundeness': 5,
           'outputs.groundeness.groundeness_reason': 'The response to the query is supported by the context.'},
          {'inputs.response': 'The speed of light is approximately 299,792,458 '
                            'meters per second.',
           'inputs.context': 'The exact speed of light in a vacuum is '
                                  '299,792,458 meters per second, a constant '
                                  "used in physics to represent 'c'.",
           'inputs.query': 'What is the speed of light?',
           'outputs.answer_length.value': 66,
           'outputs.groundeness.groundeness': 5,
           'outputs.groundeness.gpt_groundeness': 5,
           'outputs.groundeness.groundeness_reason': 'The response to the query is supported by the context.'}],
 'traces': {}}

Bu evaluate() için Gereksinimler

API, evaluate() Foundry projenizdeki değerlendirme sonuçları grafiklerini doğru şekilde görüntülemek için belirli bir veri biçimi ve değerlendirici parametre anahtarı adları gerektirir.

Veri biçimi

evaluate() API yalnızca JSONL biçimindeki verileri kabul eder. Tüm yerleşik değerlendiriciler için, evaluate() gerekli giriş alanlarıyla aşağıdaki biçimde veriler gerektirir. Yerleşik değerlendiriciler için gerekli veri girişiyle ilgili önceki bölüme bakın. Aşağıdaki kod parçacığı, bir satırın nasıl görünebileceğini gösteren bir örnektir:

{
  "query":"What is the capital/major city of France?",
  "context":"France is in Europe",
  "response":"Paris is the capital/major city of France.",
  "ground_truth": "Paris"
}

Değerlendirici parametre biçimi

Yerleşik değerlendiricilerinizi geçirirken evaluators parametre listesinde doğru anahtar kelime eşleşmesini belirtin. Aşağıdaki tabloda, yerleşik değerlendiricilerinizin sonuçlarının Foundry projenizde kaydedildiğinde kullanıcı arabiriminde gösterilmesi için gereken anahtar kelime eşlemesi gösterilmektedir.

Değerlendirici Anahtar sözcük parametresi
GroundednessEvaluator "groundedness"
GroundednessProEvaluator "groundedness_pro"
RetrievalEvaluator "retrieval"
RelevanceEvaluator "relevance"
CoherenceEvaluator "coherence"
FluencyEvaluator "fluency"
SimilarityEvaluator "similarity"
F1ScoreEvaluator "f1_score"
RougeScoreEvaluator "rouge"
GleuScoreEvaluator "gleu"
BleuScoreEvaluator "bleu"
MeteorScoreEvaluator "meteor"
ViolenceEvaluator "violence"
SexualEvaluator "sexual"
SelfHarmEvaluator "self_harm"
HateUnfairnessEvaluator "hate_unfairness"
IndirectAttackEvaluator "indirect_attack"
ProtectedMaterialEvaluator "protected_material"
CodeVulnerabilityEvaluator "code_vulnerability"
UngroundedAttributesEvaluator "ungrounded_attributes"
QAEvaluator "qa"
ContentSafetyEvaluator "content_safety"

Parametrelerin nasıl ayarlanacağına ilişkin bir örnek aşağıda verilmiştir evaluators :

result = evaluate(
    data="data.jsonl",
    evaluators={
        "sexual":sexual_evaluator,
        "self_harm":self_harm_evaluator,
        "hate_unfairness":hate_unfairness_evaluator,
        "violence":violence_evaluator
    }
)

Hedef üzerinde yerel değerlendirme

Çalıştırmak ve sonra değerlendirmek istediğiniz sorguların bir listesi varsa, evaluate() API bir target parametreyi de destekler. Bu parametre yanıtları toplamak için bir uygulamaya sorgu gönderir ve ardından elde edilen sorgu ve yanıtta değerlendiricilerinizi çalıştırır.

Hedef, dizininizdeki herhangi bir çağrılabilir sınıf olabilir. Bu örnekte, hedef olarak ayarlanmış çağrılabilir sınıfa askwiki.py sahip bir Python betiği askwiki() vardır. Basit askwiki uygulamaya gönderebileceğiniz bir sorgu veri kümeniz varsa, çıkışların temel durumunu değerlendirebilirsiniz. içindeki "column_mapping"verileriniz için uygun sütun eşlemesini belirttiğinizden emin olun. Tüm değerlendiriciler için sütun eşlemesini belirtmek için kullanabilirsiniz "default" .

içindeki içerik şu şekildedir "data.jsonl":

{"query":"When was United States found ?", "response":"1776"}
{"query":"What is the capital/major city of France?", "response":"Paris"}
{"query":"Who is the best tennis player of all time ?", "response":"Roger Federer"}
from askwiki import askwiki

result = evaluate(
    data="data.jsonl",
    target=askwiki,
    evaluators={
        "groundedness": groundedness_eval
    },
    evaluator_config={
        "default": {
            "column_mapping": {
                "query": "${data.queries}",
                "context": "${outputs.context}",
                "response": "${outputs.response}"
            } 
        }
    }
)