İçeriğe geç

Kılavuzlar

Eğitilmiş bir modeli doğrulamak

Eğitilmiş bir model daha önce gördüğü bir sette iyi puan alabilir, bir girdi biraz değiştiğinde cevabını tersine çevirebilir ve şanslı bir seed yakalayabilir. Oloproof, model yayına çıkmadan önce bunların her birini denetler: setin eğitim verisine karşı durumunu, her tahmini bildirilmiş gürültü altında ve eğitim tarifini birkaç seed üzerinde. Örneği oloproof init --example model-validation ile kopyalayın: sentetik veri üzerinde NumPy ile çevrimdışı eğitilmiş bir kredi modeli.

Eğitim verisine karşı set

oloproof leakage check --training data/training.jsonl --record

Her vaka, metinler küçük harfe çevrilip boşluklar birleştirildikten sonra her eğitim satırıyla birebir eşleşme üzerinden karşılaştırılır (--round sayıları yuvarlar, --field karşılaştırılacak anahtarları belirtir). Eğitim dosyası kendi makinenizde okunur, hiçbir zaman saklanmaz veya gönderilmez; kayıt vaka kimliklerini ve sayıları tutar. release.yaml içinde leakage: required bildirin; bu setin temiz bir denetimi kaydedilene kadar kapı engellenir (exit 3). Eğitim verisinde bulunan bir vaka kanıtı geçersiz kılar; bu, modelin FAIL sonucu değildir. Neredeyse kopyalar denetlenmez.

Gürültü altındaki tahminler

metamorphic:
  transforms:
    - name: noise
      field: features
      perturb: {kind: numeric_noise, scale: {income: 1.0, debt_ratio: 0.02}, seed: 7}
evaluators:
  - {type: metamorphic_relation, relation: same_label, transform: noise, field: label, passes_when: flipped}

Her vaka, belirtilen sayılara seed'li gürültü eklenmiş bir kopya kazanır ve flips_under_noise etiketi değişen vakaların oranıdır. categorical_swap değerleri bildirilmiş bir eşlemeyle değiştirir; blur, brightness, occlusion ve jpeg görüntüleri değiştirir. Bir regresör, bir toleransla same_score_within kullanır. İnsanlar bir satırdaki gürültünün anlamını koruyup korumadığını yargılayamaz, bu yüzden sayısal bir pertürbasyon bildirilmiş sayılır: oranı raporlanır ve ona dayanan bir kural transform_declared ile INSUFFICIENT_EVIDENCE verir. Bir görüntü dönüşümü, bir metin dönüşümünde olduğu gibi, insanların etiketleri her görüntünün anlamını koruduğunu gösterdiğinde kapıda kullanılır. Örneğin image/ projesi ikisini de gösterir: etiketlerinin doğruladığı, değişme oranı üst sınırı aşan bir bulanıklık ve etiketlerine göre çiziği bazen gizleyen, kuralı karar vermeyen gri bir yama.

Seed'ler üzerinde tarif

Yayına çıkardığınız checkpoint, her sistem gibi kendi çalıştırmasıyla karara bağlanır. İkinci bir soru, eğitme biçiminizin yeterince iyi olup olmadığıdır: gelecek ay yeniden eğitirseniz başka bir çekiliş elde edersiniz. k seed ile k checkpoint eğitin, her birini aynı sette çalıştırın ve çalıştırmaları adlandırın:

seeds:
  recipe: loan-model
  checkpoints: {seed_1: latest~4, seed_2: latest~3, seed_3: latest~2, seed_4: latest~1, seed_5: latest}
  rule: {id: recipe_accurate, criterion: correct, min: 0.8}

oloproof seeds seeds.yaml --policy recipe.yaml, seed'ler üzerindeki beklenen geçme oranını, hem setteki vakaları hem de denediğiniz seed'leri hesaba katan bir aralıkla okur. Örnekte beş seed %85,7 ile %90,3 arasında puan alır ve tarif %88,2, %83,2 ile %91,9 arası okunur: %80'e karşı PASS. Aralık yaklaşıktır, bu yüzden politikanın allow_approximate_methods: true içermesi gerekir; aksi halde cevap MANUAL_REVIEW olur. Politikada en az bir kural bulunmalıdır; komut güven düzeyini, bu izni ve yargıç eşiklerini okur, başka hiçbir şeyi okumaz. Kararı bir tohumdan diğerine değişen vakaları da listeler; --html FILE her vakayı her kontrol noktası altında gösteren tek bir çevrimdışı sayfa yazar.

Her checkpoint sayılır. Eğitimi başarısız olan bir seed korunur ve cevaplamadığı her vaka alt sınır için başarısız, üst sınır için başarılı sayılır; böylece aralığı genişletir. Üçten az seed INSUFFICIENT_EVIDENCE verir; herhangi bir şeye karar vermek için yaklaşık beş gerekir. Kapının güvenmeyeceği bir yargıç bir tarife de karar vermez. Her checkpoint, her biri tek bir sistem sürümüyle aynı seti çalıştırmalıdır ve grup bildiren bir set reddedilir.

Bunun size söyleyemeyecekleri

  • Kimsenin bildirmediği pertürbasyonlar. Yalnızca bildirilmiş dönüşümler, bildirilmiş büyüklüklerde denenir; düşük bir değişme oranı daha büyük değişiklikler veya bir saldırganın araması hakkında hiçbir şey söylemez.
  • Sertifikalı sağlamlık. Hiçbir girdi için bir sınır kanıtlanmaz; değişme oranı setin vakaları üzerindeki bir orandır.
  • Modelin nasıl eğitildiği. Oloproof, seed'lerin herhangi bir checkpoint değerlendirilmeden önce seçilip seçilmediğini, başarısız çalıştırmaların atılıp atılmadığını veya checkpoint'lerin yalnızca seed'leriyle farklı olup olmadığını göremez.
  • Yaklaşık k seed'de birden daha nadir bir başarısızlık. Tarif on seferde bir eğitilemiyorsa ve beş seed'in hiçbiri başarısız olmadıysa, aralık bunu bilemez.
  • Eğitim dosyasının göstermediği sızıntı: neredeyse kopyalar, yeniden boyutlandırılmış bir görüntü veya ayarlama için kullanılıp dosyadan çıkarılmış satırlar.
  • Seed çalıştırmalarındaki sızıntı. oloproof seeds, leakage: required okumaz; yayına çıkardığınız checkpoint kendi çalıştırmasında kapıdan geçer ve o çalıştırma bunu okur.

Hiçbir değerlendirmenin söyleyemeyecekleri kendi sayfasında.