Başlayın
Python API'si
Bu sayfanın İngilizce sürümü çevrildiğinden bu yana değişti. Güncel olan İngilizce sayfadır. İngilizce okuyun
CLI'ın yaptığı her şeyi kütüphane de yapar. Değerlendirme bir yapılandırma dosyasının yanında değil de bir betiğin, bir not defterinin ya da bir test paketinin içinde yer alıyorsa onu kullanın.
from oloproof import evaluate, system, current_case
from oloproof.evaluators import ExactMatch, Contains, JsonSchema, Regex, RubricJudge, evaluatoroloproof_core altındaki her şey motorun iç yapısıdır ve bu yüzeyin bir parçası değildir.
Bir sistem vakanın kendisini değil, girdisini alır
Önce doğru yapılması gereken tek şey budur, çünkü yanlış yapıldığında sessizce başarısız olur.
@system(name="support-bot", version="1")
def answer(case):
return {"label": "refund" if "refund" in case["question"].lower() else "other"}Bir veri kümesi satırı şöyle görünür:
{"id":"refund_00","input":{"question":"Can I get a refund? #0"},"expected":{"label":"refund"}}Fonksiyon input nesnesini alır; dolayısıyla case["question"] sorudur ve case["expected"] diye bir şey yoktur. Döndürdüğü şey, bir değerlendiricinin okuduğu çıktıdır; dolayısıyla ExactMatch(field="label"), döndürülen label değerini vakanın beklenen label değeriyle karşılaştırır.
Bir tane çalıştırma
result = evaluate(
system=answer,
dataset="data/example.jsonl",
evaluators=[ExactMatch(criterion="exact_label", field="label")],
)
for metric in result.metrics:
print(metric.metric, metric.estimate, metric.interval, metric.n_observed, metric.n_missing)exact_label 1.0 lower=0.8842966917779722 upper=1.0 30 0Otuz vaka, hepsi doğru ve aralık yine de %88,4'e kadar iniyor. Tahmin ne derse desin, otuz vaka bundan fazlasını kanıtlayamaz.
Başarısız olan bir vakayı okuma
Sistem bir istisna yükseltirse o vaka yanlış değil eksik sayılır ve metrik bunu bildirir:
exact_label None lower=0.0 upper=1.0 0 30None değerinde bir tahmin ve tüm aralığı kaplayan bir aralık, hiçbir şeyin gözlenmediği anlamına gelir. Bir tahmine güvenmeden önce n_missing değerini kontrol edin: her vakası istisna yükselten bir sistem yapısal olarak sorunsuz bir sonuç nesnesi üretir ve onun boş olduğunu size söyleyen şey bu sayıdır.
Bu, payda sözleşmesinin bir başarısızlığı değil, işini yapmasıdır — hata veren bir vaka atılmaz, sınırlandırılır — ama sizin adınıza hiçbir şey istisna yükseltmez, dolayısıyla kontrol size düşer.
Kendi değerlendiricinizi yazma
@evaluator bir fonksiyonu bir değerlendiriciye dönüştürür. Fonksiyon tek bir argüman alır, yani vakayı, ve ihtiyaç duyduğunu ondan okur: case.output sistemin döndürdüğü şeydir, case.expected ise satırın expected nesnesidir.
from oloproof.evaluators import evaluator
@evaluator(criterion="known_label", reads=("output",))
def known_label(case):
return case.output["label"] in {"refund", "other"}
result = evaluate(system=answer, dataset="data/example.jsonl", evaluators=[known_label])known_label 1.0 lower=0.8842966917779722 upper=1.0 30 0reads, köken kaydı için vakanın hangi kısımlarını okuduğunu bildirir; varsayılan ("output", "expected") değeridir. True ya da False döndürür; value_type="score" ve puanlarının içinde yer aldığı score_range değerini bildiriyorsa bir puan döndürür. Sürümü, onu tanımlayan dosyanın bir özet değerini içerir; dolayısıyla onu düzenlemek önbellekteki yargılarını geçersiz kılar.
def f(output, expected) biçiminde yazılmış bir fonksiyon, her vakada başarısız olmak yerine bildirildiği anda, çalışan biçim gösterilerek reddedilir.
Bir politika uygulama
evaluate bir politika alır ve çalıştırmaya karar verir; CLI'ın release.yaml dosyasından okuduğu kuralların aynısıyla:
result = evaluate(
system=answer,
dataset="data/example.jsonl",
evaluators=[ExactMatch(criterion="exact_label", field="label")],
policy="release.yaml",
)
print(result.gate)Politika olmadan result.gate değeri None olur: altında kalınacak bir kural yoktur, dolayısıyla karar verilecek bir şey de yoktur.
Sonraki adımlar
- Paket yazma aynı değerlendiricileri yapılandırma olarak anlatır.
- Bir sistemin ne yaptığını kaydetmek current_case() işlevini ve bir
değerlendiricide yapıtları okumayı anlatır.
- Bir adayı bir temelle karşılaştırmak aralıkların var olma nedeni olan iş akışını
anlatır.