Makine öğrenmesi modelleri nasıl test edilir: katmanlı test ve otomasyon
Makine öğrenmesi modelleri için veri doğrulama, davranış testi, adalet kontrolü, regresyon ve kalite kapısı adımlarını örnek kodla öğrenin.
ML testi klasik yazılım testinden neden farklıdır?
Klasik yazılımda davranış kodla belirlenir: aynı girdi aynı çıktıyı verir ve beklenen sonuç testte yazılır. Makine öğrenmesi sisteminde davranış kod ile birlikte veri tarafından da belirlenir. Model kod değişmese bile yeni veriyle farklı davranabilir, girdi dağılımı zamanla kayabilir, tek bir doğruluk skoru ise altta yatan sorunları gizleyebilir.
Bu yüzden ML testi birden çok katmanda yürür: veri testleri, model davranış testleri, performans ve adalet kontrolleri, entegrasyon ve regresyon testleri. Her katman farklı bir hata türünü yakalar ve otomasyon sayesinde her model değişikliğinde yeniden çalıştırılır.
İlk katman: Veri doğrulama testleri
Birçok model hatası koddan değil veriden gelir. Veri doğrulama testleri, modele giren verinin beklenen biçimde olduğunu kontrol eder:
- Şema: sütun adları, tipler ve zorunlu alanlar
- Değer aralıkları: yaş negatif olamaz, oran sıfır ile bir arasındadır
- Eksik değer oranı ve beklenmeyen boş alanlar
- Dağılım kayması: eğitim verisi ile canlı veri arasındaki istatistiksel fark
- Etiket kalitesi: çelişkili etiketler, sızıntı (hedefin dolaylı olarak girdiye karışması)
- Tekrar eden satırlar ve eğitim-test örtüşmesi
Testlerin sonucu yalnızca geçti ya da kaldı olarak değil, hangi sütunda ve hangi satırda sorun çıktığıyla birlikte raporlanırsa veri sahibi sorunu hızla bulur.
Bu testler eğitim öncesinde ve canlı ortamda girdi kontrolü olarak çalıştırılabilir. Veri kontrolü modelden önce yapıldığında, hatalı verinin modele ulaşıp sessizce yanlış tahmin üretmesi engellenir.
İkinci katman: Model davranış testleri
Genel bir doğruluk skoru, modelin hangi durumlarda yanıldığını söylemez. Davranış testleri, modelin belirli beklentileri karşılayıp karşılamadığını kontrol eder. Üç yaygın tür vardır:
- Değişmezlik testi: Önemsiz bir değişiklik (ad, yazım hatası, eş anlamlı sözcük) tahmini değiştirmemeli.
- Yön beklentisi testi: Bir girdi özelliği artınca tahmin beklenen yönde değişmeli.
- Asgari işlev testi: Modelin kesinlikle doğru bilmesi gereken basit örnekler listesi.
Kısa bir örnek:
def test_name_change_keeps_prediction(model, examples): for example in examples: before = model.predict(example) after = model.predict(change_name(example)) assert before == after
Asgari işlev testi için aynı yapı kullanılır: ekibin "bu örneği model kesinlikle doğru bilmeli" dediği kısa bir örnek listesi tutulur ve her model sürümünde tek tek denenir. Liste kısa olsa da bir sürümün temel bir işlevi bozup bozmadığını hızla gösterir. Test kırıldığında hangi örneğin ve hangi beklentinin bozulduğu raporda açıkça yazılmalıdır.
Bu tür testler, hata analizinde bulunan zayıflıkları birer test senaryosuna çevirir. Her yeni hata bulunduğunda test kümesine eklenir; böylece aynı hata yeniden sessizce geri dönmez.
Üçüncü katman: Performans ve adalet kontrolleri
Toplam başarı ölçütü, alt gruplardaki zayıf performansı saklayabilir. Performans testleri hem genel metriği (doğruluk, kesinlik, duyarlılık, AUC gibi problem türüne uygun ölçütler) hem de dilimlenmiş metrikleri hesaplar: farklı müşteri segmentleri, bölgeler, cihaz türleri ya da korunan gruplar için ayrı ayrı.
Adalet kontrollerinde, modelin farklı gruplar arasında tutarsız davranıp davranmadığına bakılır. Hangi adalet tanımının uygun olduğu uygulamaya ve hukuki bağlama göre değişir; ölçüt seçimi mühendislik kararı olduğu kadar iş ve hukuk kararıdır. Testler eşik değerlerle çalışır: bir dilimde performans belirlenen alt sınırın altına inerse test kırılır ve model yayına çıkmaz. Eşiklerin değeri iş riski ve düzenleme koşullarına göre ekip tarafından belirlenir.
Dördüncü katman: Regresyon, entegrasyon ve kalite kapıları
Regresyon testi, yeni modelin eski modele göre kötüleşmediğini gösterir. Aynı sabit değerlendirme kümesinde yeni ve eski model karşılaştırılır; belirlenen metriklerde kayıp varsa değişiklik reddedilir. Entegrasyon testi ise modelin sistemin geri kalanıyla birlikte çalıştığını doğrular: özellik üretimi, model servisi, çıktı biçimi, gecikme süresi ve hata durumları.
Bu testler sürekli entegrasyon hattına bağlanır. Her kod ya da veri değişikliğinde hat şu sırayla ilerler: veri doğrulama, birim testler, model eğitimi ya da yüklenmesi, davranış testleri, performans ve adalet eşikleri, entegrasyon testi. Bunlardan biri kalite kapısının altında kalırsa model bir sonraki aşamaya geçemez. Kalite kapıları, insan incelemesinin yerine değil, onun öncesinde otomatik bir ön elek olarak çalışır.
Sabit bir değerlendirme kümesi (bazen altın küme denir) bu karşılaştırmanın temelidir. Küme sürümlenir, eğitim verisinden ayrı tutulur ve yalnızca güncellenmesi bilinçli bir kararla yapılır. Hata analizinde bulunan zor örnekler bu kümeye eklenerek zamanla büyür. Böylece küme, ekibin modelden öğrendiklerinin bir arşivine dönüşür.
Yayından sonra da izleme sürer. Canlı tahmin dağılımı, girdi özelliklerinin dağılımı ve gecikme süresi gösterge panelinde izlenir; bir gösterge sınırı aşarsa alarm üretilir ve gerekirse eski modele dönülür. Test otomasyonu ile canlı izleme birbirini tamamlar: biri yayına çıkmadan, diğeri çıktıktan sonra hata arar.
Sık hatalar
ML testinde tekrarlanan hatalar şunlardır:
- Tek bir skora güvenip dilim ve davranış testleri yapmamak
- Test kümesini zamanla eğitime karıştırmak, böylece skorun yanıltıcı yükselmesi
- Eşik değerleri bir kez belirleyip hiç güncellememek
- Eğitimde başarılı modeli canlı veride izlememek
- Testleri yalnızca yayından önce çalıştırmak, canlı ortam izlemeyi atlamak
- Rastgelelik kaynaklarını (tohum değeri) sabitlemeyip testi kararsız bırakmak
Bir model her değişiklikte aynı sonucu vermiyorsa test kararsızlaşır ve güvenilmez hale gelir. Tekrarlanabilirlik için tohum değeri, veri sürümü ve ortam bilgisi kayıt altına alınır.
Mindset programlarında ML model testi
ML Model Testi ve Doğrulama Otomasyonu programı; ML test piramidi, veri doğrulama testleri, model davranış testleri, performans ve adalet kontrolleri, regresyon ve entegrasyon testleri ile otomasyon ve kalite kapıları modüllerinden oluşur. Yapay Zeka Modeli Test, Doğrulama ve İzleme programı ise model test stratejileri, test verisi yönetimi, önyargı testi, canlı ortamda model izleme (MLOps) ve olay müdahalesini içerir. Veri bilimciler, ML mühendisleri, kalite mühendisleri ve MLOps ekipleri için uygundur.
İlgili Mindset programı
ML Model Testi ve Doğrulama Otomasyonu
Sık sorulan sorular
Doğruluk skoru yüksekse model test edilmiş sayılır mı?
Hayır. Tek bir skor modelin hangi durumlarda yanıldığını göstermez. Dilim bazlı performans, davranış testleri, veri kalitesi kontrolleri ve adalet incelemesi ayrıca gerekir. Yüksek genel skorlu bir model belirli gruplarda ya da senaryolarda kötü çalışabilir.
Dağılım kayması nedir?
Canlı ortamdaki girdi verisinin eğitim verisinden zamanla farklılaşmasıdır. Müşteri davranışı, mevsim ya da veri toplama yöntemi değiştiğinde ortaya çıkar. Kayma izlenmezse model eski varsayımlarla çalışmaya devam eder ve performansı fark edilmeden düşer.
ML testlerini nereye otomasyona bağlamalıyım?
Sürekli entegrasyon hattına: veri doğrulama, davranış testleri, performans ve adalet eşikleri ile regresyon karşılaştırması her model veya veri değişikliğinde çalışır. Kalite kapısını geçemeyen model yayına çıkmaz. Canlı ortamda ayrıca sürekli izleme gerekir.
Davranış testi ile birim test arasındaki fark nedir?
Birim test kodun belirli bir fonksiyonunun doğru çalıştığını doğrular. Davranış testi ise modelin belirli girdi değişikliklerine beklenen şekilde tepki verip vermediğini kontrol eder. İkisi birbirinin yerini almaz, farklı hata türlerini yakalar.
Test verisi eğitim verisinden nasıl ayrılmalı?
Test verisi eğitim sürecinde hiçbir aşamada kullanılmamalı; özellik seçimi ve hiperparametre ayarı için ayrı bir doğrulama kümesi tutulmalıdır. Zaman bağımlı verilerde ayrım rastgele değil zamana göre yapılır, aksi halde gelecekten sızan bilgi skoru yapay biçimde yükseltir.
İlgili rehberler
İlgili eğitimler
Kategori: Veri Mühendisliği ve MLOps, Yapay Zeka ve Dijital Dönüşüm