Aracılığıyla paylaş


Üretken yapay zeka uygulamanızı Azure AI Değerlendirme SDK'sı ile yerel olarak değerlendirin

Ö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 Ek Kullanım Koşulları.

Önemli bir veri kümesine uygulandığında üretken yapay zeka uygulamanızın performansını kapsamlı bir şekilde değerlendirmek için Azure AI değerlendirme SDK'sı ile geliştirme ortamınızda bir Oluşturucu yapay zeka uygulamasını değerlendirebilirsiniz. Test veri kümesi veya hedef göz önünde bulundurulduğunda, üretken yapay zeka uygulama nesilleriniz 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, azure yapay zeka değerlendirme SDK'sını yerel olarak kullanarak yerleşik değerlendiricilere sahip bir uygulama hedefinde daha büyük bir test veri kümesi olan tek bir veri satırında değerlendirici çalıştırmayı ve ardından Azure AI projesindeki sonuçları ve değerlendirme günlüklerini izlemeyi öğreneceksiniz.

Başlangıç Yapmak

Öncelikle Azure AI değerlendirme SDK'sından değerlendirici paketini yükleyin:

pip install azure-ai-evaluation

Yerleşik değerlendiriciler

Kategori Değerlendiriciler
Genel amaçlı CoherenceEvaluator, FluencyEvaluator, QAEvaluator
Metinsel benzerlik SimilarityEvaluator, F1ScoreEvaluator, BleuScoreEvaluator, , GleuScoreEvaluator, RougeScoreEvaluator, MeteorScoreEvaluator
Retrieval-Augmented Oluşturma (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 kalite ve güvenlik ölçümleri, belirli değerlendiriciler için ek bilgilerin yanı sıra sorgu ve yanıt çiftlerinde yer alır.

Yerleşik değerlendiriciler için veri gereksinimleri

Yerleşik değerlendiriciler, ya sorgu ve yanıt çiftlerini ya da formatındaki konuşmaların bir listesini veya her ikisini de kabul edebilir.

Metin için diyalog ve tek seferlik destek Metin ve resim için konuşma ve tek dönüşlü destek Yalnızca metin için tek dönüşlü destek
GroundednessEvaluator, GroundednessProEvaluator, RetrievalEvaluator, DocumentRetrievalEvaluator, RelevanceEvaluator, CoherenceEvaluator, FluencyEvaluator, ResponseCompletenessEvaluator, IndirectAttackEvaluator, AzureOpenAILabelGrader, AzureOpenAIStringCheckGrader, AzureOpenAITextSimilarityGrader, AzureOpenAIGrader ViolenceEvaluator, SexualEvaluator, SelfHarmEvaluator, , HateUnfairnessEvaluator, ProtectedMaterialEvaluator, ContentSafetyEvaluator UngroundedAttributesEvaluator, CodeVulnerabilityEvaluator, ResponseCompletenessEvaluator, SimilarityEvaluator, F1ScoreEvaluator, RougeScoreEvaluator, GleuScoreEvaluator, BleuScoreEvaluator, MeteorScoreEvaluator, QAEvaluator

Uyarı

Yapay zeka destekli kalite değerlendiricileri, SimilarityEvaluator hariç, bir neden alanıyla birlikte gelir. Puana ilişkin bir açıklama oluşturmak için düşünce zinciri mantığı da dahil olmak üzere teknikler devreye alır. Bu nedenle, daha iyi değerlendirme kalitesi sonucu üretim sürecinde daha fazla belirteç kullanır. Özellikle, tüm yapay zeka destekli değerlendiriciler için değerlendirici oluşturma ayarı 800 olarak belirlenmiştir (ve daha uzun girişlere uyum sağlamak için max_token 1600 olarak ayarlanmıştır.)

Uyarı

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. Örnek: "query" ve "response" adlı iki girişiniz ve şöyle biçimlendirilmiş bir şablonunuz varsa: {{item.query}}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ğerlendiriciler için veri gereksinimleri hakkında daha fazla bilgi için Azure AI Değerlendirme SDK'sı ile aracı değerlendirmelerini yerel olarak çalıştırma bölümüne gidin.

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

Tüm yerleşik değerlendiriciler, dizelerdeki sorgu ve yanıt çiftlerinde olduğu gibi tek dönüşlü girişler alır, örneğin:

from azure.ai.evaluation import RelevanceEvaluator

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

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

Yerel değerlendirme 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 tek dönüşlü veriler (sorgu ve yanıt çifti) aşağıdaki gibi bir veri kümesi satırına eşdeğerdir (örnek olarak üç satır gösteririz):

{"query":"What is the capital 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ğıdakileri 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 aldığı kaynak (yani topraklama belgeleri)
  • Temel gerçek: Gerçek yanıt olarak kullanıcı/insan tarafından oluşturulan yanıt

Her değerlendiricinin ne gerektirdiğini görmek için Yerleşik değerlendiriciler belgelerinde daha fazla bilgi edinebilirsiniz.

Metin için konuşma desteği

Metin konuşmalarını destekleyen değerlendiriciler için giriş olarak, conversation, messages, ve isteğe bağlı olarak content içeren bir listeyle birlikte role Python sözlüğü sağlayabilirsiniz.

Python'da iki aşamalı konuşma örneği:

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ğerlendirme 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, dosyada aşağıdaki gibi bir veri kümesi satırına .jsonl 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, context bir anahtar eksik olsa veya null bile, hata vermek yerine boş bir dize olarak yorumlanır; 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"),
)

# Initializing Groundedness and Groundedness Pro evaluators
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ı

Kesinlikle kullanıcılara kodlarını ön ekler olmadan anahtarı kullanacak şekilde geçirmelerini öneririz (örneğin groundedness.groundedness), kodunuz daha fazla değerlendirme modeli destekleyebilir.

Görüntüler ve çok modlu metin ve resim için konuşma desteği

Görüntü ve çok modlu görüntü ve metin için konuşmaları destekleyen değerlendiriciler içinde, görüntü URL’lerini veya base64 ile kodlanan görüntüleri conversation geçirebilirsiniz.

Desteklenen senaryoların örnekleri aşağıda verilmiştir:

  • Resim veya metin üretme işlemine metin girişiyle katılan birden fazla görüntü
  • Metin girdisiyle görüntü oluşturma
  • Yalnızca metin oluşturma girişlerini görüntüle
from pathlib import Path
from azure.ai.evaluation import ContentSafetyEvaluator
import base64

# instantiate 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 çoklu modlu değerlendiriciler aşağıdakileri destekler:

  • Yalnızca tek tur (bir konuşmada yalnızca bir kullanıcı mesajı ve bir yardımcı mesajı olabilir)
  • Konuşmada yalnızca bir sistem iletisi olabilir
  • Konuşma yükü 10 MB'tan küçük olmalıdır (görüntüler dahil)
  • Mutlak URL'ler ve Base64 ile kodlanmış görüntüler
  • Tek bir dönüşte birden çok resim
  • JPG/JPEG, PNG, GIF dosya biçimleri

Kurulum

Yapay zeka destekli kalite değerlendiricileriniz için, GroundednessProEvaluator (önizleme) hariç, değerlendirme verilerini puanlamak üzere yargıç olarak görev yapacak bir GPT modeli (gpt-35-turbo, gpt-4, gpt-4-turbo, gpt-4o, veya gpt-4o-mini) belirtmeniz gerekir. Hem Azure OpenAI hem de OpenAI modeli yapılandırma şeması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 modelinizde gpt-3.5-turbo yerine gpt-4o-mini kullanılması, OpenAI'ye göre daha ucuz, daha yetenekli ve aynı derecede hızlı olduğundan kesinlikle önerilir.

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

Risk ve Güvenlik Değerlendiricileri ve GroundednessProEvaluator (önizleme) için, model_config içinde bir GPT dağıtımı yerine, azure_ai_project bilgilerinizi sağlamanız gerekir. Bu, Azure AI projeniz aracılığıyla arka uç değerlendirme hizmetine erişir.

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

Güvenlik Değerlendiricileri ve GroundednessProEvaluator dışında, kalite değerlendiricilerimizin komutlarını Değerlendirici Kitaplığımızda ve Azure AI Değerlendirme Python SDK'sı depomuzda saydamlık açısından açık kaynak olarak paylaşıyoruz. 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. Kullanıcıların tanımları özelleştirmelerini ve puanlama puanlarını senaryo özelliklerine göre özelleştirmelerini kesinlikle öneririz. Özel Değerlendiriciler'deki ayrıntılara bakın.

Bileşik değerlendiriciler

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

Bileşik değerlendirici İçerir Açıklama
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.

Azure AI Foundry Projeleri için önkoşul ayarlama adımları

Değerlendirmeleri ilk kez çalıştırıyorsanız ve Azure AI Foundry projenizde günlüğe kaydediyorsanız, birkaç ek kurulum adımı gerçekleştirmeniz gerekebilir.

  1. Depolama hesabınızı oluşturun ve kaynak düzeyinde Azure AI 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 MSI (Microsoft Identity) izinleri verdiğinizden emin olun.

Bir veri kümesi üzerinde değerlendirme yapın ve sonuçları Azure AI Foundry'ye kaydedin.

öğesinin evaluate() verileri doğru ayrıştırabilmesini sağlamak için, veri kümesindeki sütunu değerlendiriciler tarafından kabul edilen anahtar sözcüklerle eşlemek için sütun eşlemesi belirtmeniz gerekir. Bu durumda, query, response ve context için veri eşlemesini belirtiyoruz.

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 Azure AI 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 of metric summary, row level data and metric and Azure AI project URL
    output_path="./myevalresults.json"
)

Tavsiye

Azure AI projenizde günlüğe kaydedilen değerlendirme sonuçlarınızı görüntülemek için bir bağlantı elde etmek üzere result.studio_url özelliğinin içeriğini alın.

Değerlendirici, toplama metrics ve satır düzeyi verileri ve ölçümleri içeren bir sözlükte sonuçları verir. Çıktı örneği:

{'metrics': {'answer_length.value': 49.333333333333336,
             'groundedness.gpt_groundeness': 5.0, 'groundedness.groundeness': 5.0},
 'rows': [{'inputs.response': 'Paris is the capital of France.',
           'inputs.context': 'Paris has been the capital of France since '
                                  'the 10th century and is known for its '
                                  'cultural and historical landmarks.',
           'inputs.query': 'What is the capital 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'nin evaluate() kabul edilen veri biçimine ve değerlendirici parametre anahtar adlarını nasıl işlediğine ilişkin birkaç gereksinimi vardır; böylece Azure AI projenizdeki değerlendirme sonuçlarının grafikleri düzgün görünür.

Veri biçimi

evaluate() API yalnızca JSONLines biçimindeki verileri kabul eder. Tüm yerleşik değerlendiriciler için, evaluate() gerekli giriş alanlarıyla birlikte aşağıdaki biçimde veriler gerektirir. Yerleşik değerlendiriciler için gerekli veri girişiyle ilgili önceki bölüme bakın. Bir satır örneği şöyle görünebilir:

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

Değerlendirici parametre biçimi

Yerleşik değerlendiricilerinizi geçirirken, evaluators parametre listesinde doğru anahtar sözcük eşlemesini belirtmek önemlidir. Aşağıdaki tablo, Yerleşik değerlendiricilerinizin sonuçlarının Azure AI projenizde oturum açtığınızda kullanıcı arabiriminde gösterilmesi için gereken anahtar sözcük eşlemesidir.

Değerlendirici anahtar sözcük parametre
GroundednessEvaluator gerçeklik hissi
GroundednessProEvaluator temellilik_pro
RetrievalEvaluator geri getirme
RelevanceEvaluator "ilgi"
CoherenceEvaluator "tutarlılık"
FluencyEvaluator "akıcılık"
SimilarityEvaluator benzerlik
F1ScoreEvaluator "f1_score"
RougeScoreEvaluator kırmızı
GleuScoreEvaluator gleu
BleuScoreEvaluator "bleu"
MeteorScoreEvaluator gök taşı
ViolenceEvaluator "şiddet"
SexualEvaluator cinsel
SelfHarmEvaluator kendine zarar verme
HateUnfairnessEvaluator haksızlıktan nefret et
IndirectAttackEvaluator dolaylı saldırı
ProtectedMaterialEvaluator korunmuş_malzeme
CodeVulnerabilityEvaluator kod zafiyeti
UngroundedAttributesEvaluator temelsiz_özellikler
QAEvaluator Kalite Güvencesi
ContentSafetyEvaluator içerik_güvenliği

Parametreleri ayarlama örneği 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 değerlendirmek istediğiniz sorguların bir listesi varsa , evaluate() yanıt toplamak için bir uygulamaya sorgu gönderebilen ve ardından elde edilen sorgu ve yanıtta değerlendiricilerinizi çalıştırabilen bir target parametreyi de destekler.

Hedef, dizininizdeki herhangi bir çağrılabilir sınıf olabilir. Bu durumda, hedef olarak ayarlayabildiğimiz çağrılabilir sınıfa askwiki.py sahip bir Python betiğimiz askwiki() vardır. Basit askwiki uygulamamıza gönderebileceğimiz bir sorgu veri kümesi göz önünde bulundurulduğunda, çıkışların temel durumunu değerlendirebiliriz. "column_mapping" içindeki verileriniz için doğru sütun eşlemesini belirttiğinizden emin olun. Tüm değerlendiriciler için sütun eşlemesini belirtmek için kullanabilirsiniz "default" .

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

{"query":"When was United Stated found ?", "response":"1776"}
{"query":"What is the capital 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}"
            } 
        }
    }
)