Kılavuzlar
Sonuçlar ve yürütme başvurusu
Bir çalıştırmanın bir HTTP sistemine ne gönderdiği ve karşılığında ne beklediği, her vakanın bir metriğin paydasına nasıl girdiği, karar durumları ve onları açıklayan neden kodları, çıkış kodları ve hangi verinin yerelde kaldığı ya da barındırılan bir çalışma alanına taşındığı. Arkalarındaki fikirler için Kavramlar sayfasını, politika alanları için Yapılandırma başvurusunu okuyun.
HTTP sistemi sözleşmesi
Bir HTTP sistemi (oloproof.yaml içinde system.http) her vaka için bir kez ve her yineleme için bir kez çağrılır.
| Yön | Davranış |
|---|---|
| İstek | Varsayılan olarak POST (GET ve PUT kabul edilir). Gövde, vakanın input değerinin JSON halidir. |
| Başlıklar ve kimlik doğrulama | Hiçbiri yapılandırılamaz. İstek yalnızca HTTP istemcisinin varsayılanlarını taşır. Anahtar gerektiren bir uç nokta, onu ekleyen bir Python callable sisteminin arkasına konmalıdır. |
| Yanıt | JSON olmalıdır. output_path, çıktıyı result.answer gibi noktalı bir yolla seçer; o olmadan gövdenin tamamı çıktıdır. Eksik bir output_path alanı o vaka için bir yürütme hatası olarak kaydedilir. |
| Yapıtlar | Her http.artifacts girdisi yanıttan noktalı bir yol okur. Bir yanıtta eksik olan bildirilmiş bir alan bir sözleşme hatasıdır ve çalıştırma 2 çıkışıyla durur. |
| Zaman aşımı | İstek başına http.timeout_s, varsayılan olarak 30 saniye. |
| Yeniden denemeler | Zaman aşımları, bağlantı hataları ve HTTP 408, 429 ve 5xx, toplamda dört denemeye kadar, Retry-After değerine uyan rastgele sapmalı üstel geri çekilmeyle yeniden denenir. Diğer 4xx yanıtları yeniden denenmez. |
| Son denemeden sonra | Vakanın yürütmesi hata olarak kaydedilir ve vaka eksik sayılır (ya da on_execution_error: fail altında başarısız). Çalıştırma devam eder. |
| Eşzamanlılık | En fazla concurrency.system istek aynı anda yürütülür, varsayılan olarak 8. |
URL, yöntem, çıktı yolu ve yapıt eşlemesi sistemin sürümüne girer, ama sunucunun ne yaptığı girmez. Sunucunun davranışı her değiştiğinde system.version değerini değiştirin; nedeni için Yapılandırma başvurusuna bakın.
Üç farklı sözcük dağarcığı
Bir sonucun üç tür durumu vardır ve asla birbirlerinin yerine geçmezler.
| Tür | Değerler | Yanıtladığı |
|---|---|---|
| Karar durumu | PASS, FAIL, INSUFFICIENT_EVIDENCE, MANUAL_REVIEW | Kanıtın tek bir kural hakkında ne söylediği. |
| Yürütme durumu | Çalıştırma durumu RUN_ERROR ya da CANCELLED; çalıştırma bütünlüğü PARTIAL; vaka yürütmesi ERROR ya da TIMEOUT | Çalıştırmanın ya da bir vakanın çağrısının başına ne geldiği. Bir kalite sonucu değildir. |
| Sürüm eylemi | ALLOW, WARN, BLOCK | Politikanızın her kararla ne yaptığı: block_on durumları engeller, warn_on durumları uyarır, diğerleri izin verir. |
Normal biten bir çalıştırma DECIDED olur, erken durdurma onu bitirdiğinde ise DECIDED_EARLY. Ctrl-C ya da görev iptaliyle kesilen bir çalıştırma CANCELLED olur; düzeneği hata fırlatan bir çalıştırma RUN_ERROR olur. İkisi de çalıştırmayı PARTIAL bırakır, biten vakaları tutar ve sonraki çalıştırmanın önbellekteki kayıtlarını yeniden kullanmasına izin verir. Bkz. Hatalar.
Bir T minimum eşiği ve bir [L, U] aralığı için bir kural L >= T olduğunda PASS, U < T olduğunda FAIL, aksi halde INSUFFICIENT_EVIDENCE olur. Maksimum eşik simetriktir. Aralığı okumadan önce bir kural, karar vermesi gerekip gerekmediğini denetler: önce MANUAL_REVIEW nedenlerini, sonra INSUFFICIENT_EVIDENCE nedenlerini. Nedeni olan ilk katman karar verir ve bulduğu her nedeni listeler.
Neden kodları
Her karar bir ya da daha fazla neden kodu taşır.
MANUAL_REVIEW
| Kod | Anlamı |
|---|---|
| policy_requires_review | Kural requires_manual_review: true ayarlar. |
| unsupported_method | Bu durumda bu metrik için kabul edilmiş bir aralık yoktur. Aşağıya bakın. |
| unsupported_dependence_structure | Paket kümeler (group_id) bildirir ve bu metrik için onları ele alan kabul edilmiş bir yöntem yoktur. |
| approximate_method_not_permitted | Tek aralık yaklaşıktır ve politika allow_approximate_methods: true ayarlamaz. |
| evaluator_retired | Metriğin arkasındaki bir değerlendirici emekliye ayrıldı. |
INSUFFICIENT_EVIDENCE
| Kod | Anlamı |
|---|---|
| no_observations | Bu metrik için hiçbir vaka gözlenmedi. |
| missingness_exceeds_policy | Uygun vakaların kuralın max_missing_fraction değerinin izin verdiğinden fazlası eksik. |
| missingness_unbounded | Yöntem eksik vakaları sınırlamak yerine atar ve kural bir max_missing_fraction bildirmez. |
| evaluator_not_validated | Metriğin arkasındaki bir model hakemi insan etiketlerine karşı doğrulanmamıştır ve require_validated_evaluators açıktır (varsayılan). |
| evaluator_recalibration_required | Hakem, bu çalıştırmanın hükümlerinin gelmediği sunulan bir model üzerinde doğrulanmıştı. |
| interval_unavailable | Metriğin okunacak bir aralığı yoktur. |
| insufficient_clusters | Politikanın min_clusters değerinden daha az küme. |
| interval_monte_carlo_uncertain | Eşik, kümelenmiş bir sınırın benzetim belirsizliğinin içine düşer. |
| interval_overlaps_threshold | Aralık eşiği içerir. Daha fazla vaka onu daraltır. |
| interval_unbounded | Aralığın kuralın okuduğu tarafta bir sınırı yoktur. |
| missing_could_change_outcome | Bir observed_count kuralı: eksik vakalar başarısızlıkları max_failures ötesine taşıyabilir. |
| interval_overlaps_zero, interval_overlaps_margin, interval_overlaps_margins | Fark aralığı sıfırı ya da bir marjı kapsayan bir karşılaştırma. |
| insufficient_support | Dilimi min_support değerinden daha az vaka içeren bir dilim karşılaştırma kuralı. |
| family_correction_withheld | Holm düzeltmesinin ondan önce durduğu bir families: girdisindeki kural. |
PASS ve FAIL
| Kod | Durum |
|---|---|
| lower_bound_meets_minimum, upper_bound_meets_maximum | PASS |
| upper_bound_below_minimum, lower_bound_above_maximum | FAIL |
| observed_failures_within_limit | PASS |
| observed_failures_exceed_limit | FAIL |
| difference_above_zero, lower_bound_above_margin, interval_within_margins | PASS (karşılaştırma) |
| difference_below_zero, upper_bound_below_margin, interval_outside_margins | FAIL (karşılaştırma) |
| cost_ceiling_exceeded | Bildirilen tavanı kaydedilmiş bir yürütmenin aştığı bir maliyet kuralının durumunun yanında söylenir |
Yalnızca barındırılan çalışma alanı
Push edilen bir çalıştırmaya kendisi karar veren bir çalışma alanı, bir kararı ppi_not_verified (kararın dayandığı aralığı doğrulamadı), execution_not_verified (çıktılar kayıtlı bir çalıştırıcıdan gelmedi) ya da workspace_cannot_decide (politikanın bir kopyasını tutmuyor ya da kanıtı okuyamadı) ile alıkoyabilir. Bkz. Kapı denetimi.
Her vaka paydaya nasıl girer
Her metrik dört sayı bildirir: n_total (paketteki vakalar), n_eligible, n_observed ve n_missing; burada n_eligible = n_observed + n_missing. n_eligible dışındaki vakalar bir nedenle birlikte exclusions altında listelenir.
| Vakanın başına gelen | Sayıldığı | Paydada |
|---|---|---|
| Değerlendirici geçti ya da kaldı döndürdü | gözlenmiş, başarı ya da başarısızlık | evet |
| Değerlendirici kendisini uygulanamaz ilan etti (örneğin karşılaştırılacak beklenen değer yok) | nedeniyle birlikte dışlanmış | hayır |
| Sistem çağrısı hata verdi ya da zaman aşımına uğradı | eksik ya da on_execution_error: fail altında başarısız | evet |
| Değerlendirici hata fırlattı ya da bir hakemin yanıtı okunamadı | eksik | evet |
| Çalıştırma kesildiği için vaka hiç çalışmadı | eksik ve çalıştırma PARTIAL olur | evet |
Eksik bir vaka atılmaz, sınırlandırılır. Bir geçme oranı için aralığın alt sınırı her eksik vakayı başarısızlık, üst sınırı başarı sayar; bu yüzden çok sayıda eksik vakası olan bir çalıştırmanın, zorlu bir kuralı geçemeyen geniş bir aralığı olur; sınırlı bir ortalama da bildirilen aralığının uçlarını aynı biçimde yerine koyar. Eksik vakaları sınırlayamayan bir yöntem (örneğin bir sıralama istatistiği) onları atar ve varsayımı kaydeder; onun üzerindeki bir kural bir max_missing_fraction bildirene kadar missingness_unbounded gösterir.
Bir observed_count kuralı başarısızlıkları yürütülen paket üzerinden sayar ve aralık okumaz. Yalnızca gözlenen başarısızlıklar artı her eksik vaka hâlâ max_failures içine sığdığında geçer.
Kabul edilmiş aralığı olmayan metrikler
Bir kural yalnızca yöntemi denetimle kabul edilmiş bir aralığa göre karar verir. Böyle bir aralık olmadığında metrik yine hesaplanır ve gösterilir ve onun üzerindeki bir kural doğrulanmamış bir yöntemi ödünç almaz:
| Durum | Onun üzerindeki bir kuralın gösterdiği |
|---|---|
| Bildirilmiş bir aralığı olmayan bir puan (ortalama) metriği, örneğin score_range olmayan özel bir puan değerlendiricisi | MANUAL_REVIEW, unsupported_method |
| group_id bildiren bir paket üzerinde bir ortalama, çeyreklik, sıralama ya da maliyet metriği | MANUAL_REVIEW, unsupported_dependence_structure |
| Kümelenmiş bir paket üzerinde bir geçme oranı | yaklaşık bir aralık: allow_approximate_methods: true olmadıkça MANUAL_REVIEW, o zaman yukarıdaki küme denetimleri |
| replicates değeri 1'in üzerinde olan bir çeyreklik ya da sıralama metriği | MANUAL_REVIEW, unsupported_method |
| Hem group_id hem yinelemeleri olan bir paket üzerindeki herhangi bir metrik | MANUAL_REVIEW, unsupported_dependence_structure |
| Kümelenmiş bir paket üzerinde bir karşılaştırma | MANUAL_REVIEW |
| min_slice_support altındaki bir dilim | aralık yok, ama dilimler asla kapıya ulaşmaz |
| human_score, human_preference ya da cost_per_accepted metrikleri | dosya okunurken reddedilir, 2 çıkışı |
Çıkış kodları
oloproof gate, bir politikayla oloproof run ve karar veren diğer komutların hepsi aynı kodları kullanır.
| Kod | Anlamı |
|---|---|
| 0 | Politikanın engellediği hiçbir şey olmadı: her kural geçti ya da geçmeyenler block_on dışında. |
| 1 | block_on içindeki bir kural başarısız oldu. |
| 2 | Yapılandırma ya da çağrı yanlıştı ya da bir sistem sözleşmesini çiğnedi; hiçbir şeye karar verilmedi. |
| 3 | block_on içindeki bir kural INSUFFICIENT_EVIDENCE gösterdi. |
| 4 | block_on içindeki bir kural MANUAL_REVIEW gösterdi. |
| 5 | Çalıştırma tamamlanmadı ve block_on_partial_run açık (varsayılan). |
Birkaçı geçerli olduğunda bildirilen kod 1, 5, 4, 3 sırasındaki ilkidir. block_on dışında bırakılan bir durum çıkış kodunu değiştiremez: block_on: [FAIL] ve warn_on: [INSUFFICIENT_EVIDENCE] ile karara bağlanmamış bir kural uyarır ve kapı 0 ile çıkar. Bu yüzden 0 çıkışı her kuralın geçtiği anlamına değil, yalnızca politikanızın engellediği hiçbir şeyin olmadığı anlamına gelir. Bkz. Kapı denetimi.
İşin nerede çalıştığı ve verinin nereye gittiği
Yerel, varsayılan
oloproof run, oloproof gate ve SDK makinenizde çalışır. Her kayıt (vakalar, çıktılar, yapıtlar, yargılar, metrikler ve kararlar) oloproof.yaml yanındaki .oloproof/store.sqlite dosyasına ya da ayarlandığında OLOPROOF_HOME altına yazılır. Oloproof'a hiçbir şey gönderilmez. Tek ağ trafiği yapılandırmanızın neden olduğudur: HTTP sisteminizin URL'sine yapılan çağrılar ve bir model hakeminin ya da model sınıflandırıcının sağlayıcısına yaptığı çağrılar; sağlayıcı değerlendirdiği vaka içeriğini alır ve bunun için sizi ücretlendirir.
Barındırılan bir çalışma alanına push etme
oloproof push, bir çalıştırmanın kanıtını oloproof login ile bağlandığınız çalışma alanına gönderir. Varsayılan olarak metrikleri, aralıkları, kararları ve toplu dilimleri, ayrıca her kaydın kimliğini, durumunu, sürelerini ve kullanımını gönderir, ama içeriğini göndermez. Ham içerik, makineden herhangi bir şey çıkmadan önce alan alan karartılır ve karartılmış bir kayıt hangi kategorilerin alıkonduğunu söyler. Bir kategori yalnızca oloproof.yaml içindeki egress: onu listelediğinde gider:
| Kategori | Neyi kapsar |
|---|---|
| raw_inputs | Senaryo girdileri, beklenen değerler ve vaka meta verileri: veri kümesi satırları |
| raw_outputs | Test edilen sistemin her vaka için döndürdüğü |
| judge_rationales | Bir hakemin bir hükmü açıklamak için yazdığı, çıktıdan alıntı yapan metin |
| artifacts | Bir çalıştırma sırasında kaydedilen getirme bağlamı, alıntılar ve yörüngeler |
| error_detail | Çoğu zaman girdiyi kelimesi kelimesine taşıyan hata iletileri ve ayrıntıları |
| system_config | Test edilen sistemin ve değerlendiricilerinin bildirilmiş yapılandırması |
| label_notes | Bir kişinin bir etiketin yanına yazdığı, çoğu zaman çıktıdan alıntı yapan not |
| span_names | Bir enstrümantasyonun kaydettiği iz, span, araç ve ajan adları |
Kayıt özetleri karartmadan sonra yeniden hesaplanmaz, bu yüzden barındırılan bir kayıt yine makinenizde kalan özgün kanıtı adlandırır. Karartma şifreleme değildir ve çok küçük bir dilim üzerindeki bir metrik yine de arkasındaki vakaları tanımlayabilir.
Gözden geçirenler barındırılan inceleme kuyruğunda vakaları etiketlediğinde, tarayıcıları vaka içeriğini sizin tarafınızda çalışan oloproof collect üzerinden alır; içerik çalışma alanından geçmez. Bir çalışma alanının kullandığı sağlayıcı anahtarları oloproof credentials set ile saklanır ve oloproof credentials list onların değerlerini değil, adlarını gösterir. Yönetilen bir iş, Oloproof'un işlettiği ve Python kodunuzu çalıştırmayan bir çalışan üzerinde çalışır; oloproof job sonucunu bildirir ve kapısına göre çıkar.
Barındırılan bir çalışma alanında motor önbellekteki yürütmeleri, yargıları ya da çözümlemeleri asla yeniden kullanmaz, çünkü bir push bu önbelleklere yazabilir; onları yeniden hesaplar.