Yazı

Yerinde Yapay Zeka Sistemleri icin Test Stratejileri: Birim Testlerinden Uretim Dogrulamasina

On-Premises AI · MLOps · Best Practices · AI Architecture · Intermediate

Yerinde yapay zeka sistemleri icin model birim testleri, entegrasyon testi, golge dagitimlar ve surekli uretim dogrulamasini kapsayan katmanli bir test cercevesi.

Ekranda kod bulunan yazilim gelistirme calisma alani

Yapay Zeka Sistemlerindeki Test Acigi

Yazilim muhendisligi onlarca yillik yerlesik test pratiklerine sahiptir: birim testleri, entegrasyon testleri, uctan uca testler, performans testleri. Yapay zeka sistemleri bunlarin hepsine ve daha fazlasina ihtiyac duyar. Geleneksel bir uygulama ya dogru ciktiyi uretir ya da uretmez. Bir yapay zeka sistemi kalite spektrumunda ciktilar uretir ve bu kalitenin kabul edilebilir olup olmadigini belirlemek temelden farkli test yaklasimlar gerektirir.

Yerinde dagitimlar baska bir karmasiklik katmani ekler. Model davranisini dogrulamak icin yonetilen bir hizmet saglayicisina guvenemezsiniz. Tum yiginm — donanim ve suruculerden model agirliklarma ve sunum mantigina kadar — sizindir ve her katmani kapsayan test stratejilerine ihtiyaciniz vardir.

En yaygin basarisizlik modu, hic test olmamasi degil, yanlis testlere sahip olmaktir. Yalnizca modelin statik bir karsilastirma olcutundeki dogrulugunu test eden takimlar, entegrasyon basarisizliklarini, performans gerilemelerini ve uretimnde sorunlara neden olan veri kalitesi sorunlarini kacurir. Kapsamli bir test stratejisi, her biri farkli bir kusur sinifini yakalayan birden fazla katmanda calisir.

Model Duzeyinde Birim Testleri

Model duzeyinde birim testleri, egitilmis bir modelin bilinen girdilerde dogru davranip davranmadigini dogrular. Bunlar dogruluk karsilastirma olcutleri degildir — modelin sergilemesi gereken belirli davranislar hakkinda deterministik onermelerdirler.

Degismezlik testleri, anlamsal olarak esdeger girdilerin ayni ciktiyi urettigini dogrular. Siniflandirma modeliniz "Sunucu coktu" ifadesini kritik bir olay olarak etiketliyorsa, "Sunucu su anda kullanilamiyor" ifadesini de ayni sekilde etiketlemelidir. Esdeger girdi ciftleri tanimlayin ve modelin ciktisinin tutarli oldugunu dogrulayin.

Yonlu beklenti testleri, girdideki degisikliklerin ciktiyi beklenen yonde hareket ettirdigini dogrular. Bir destek talebine "acil" eklerseniz, oncelik puani artmali, azalmamaldir. Bu testler, modelin anlamli girdi varyasyonlarina nasil yanit vermesi gerektigine dair alan bilgisini kodlar.

Minimum islevsellik testleri, beklenen ciktinin tartismasiz oldugu kurate edilmis bir ornek kumesi tanimlar. Bunlari modelin birim test paketi esdegeri olarak dusunun — herhangi bir dagitimdan once gecmesi gereken bir dizi durum. Bu kumeyi dikkatle koruyun. Bir uretim basarisizligi kesfettiginizde ornekler ekleyerek buyuyen bir gerileme test paketi olusturun.

Sinir ve uc durum testleri, modelin olagan disi girdilerdeki davranisini arastrrir: bos dizeler, asiri uzun girdiler, beklenmeyen dillerdeki girdiler, dusmanca girdiler ve ozel karakterler iceren girdiler. Amac, uc durumlarda mukemmel dogruluk degil guvenli davranistir — model, guvenleilrini yanlis ciktilar uretmek yerine zarif bir sekilde basarisiz olmalidir.

Entegrasyon ve Boru Hatti Testleri

Izolasyonda tum birim testlerini gecen bir model, cevreleyen boru hatti hatalar getirirse uretimnde yine de muhtesem bir sekilde basarisiz olabilir. Entegrasyon testleri, ham girdiden son ciktiya kadar tum cikarim yolunu dogrular.

On isleme dogrulama testleri, cikarimdan once uygulanan veri donusumlerinin beklenen sonuclari urettigini saglar. Tokenizasyon, normalizasyon, ozellik cikarimi ve gomulu olusturma, hepsinin potansiyel basarisizlik noktalari vardir. Bu donusumleri bilinen girdiler ve beklenen ciktilarla bagimsiz olarak test edin.

Uctan uca cikarim testleri, istekleri tam sunum yigini uzerinden gonderir — yuk dengeleyici, API agidi, on isleme, model cikarimi, son isleme ve yanit bicimlendirme — ve son ciktiyi dogrular. Bu testler, serializasyon uyumsuzluklari, zaman asimi yapilandirmalari ve hata isleme bosluklari gibi entegrasyon sorunlarini yakalar.

Performans gerileme testleri, kontrollü kosullar altinda gecikme ve is hacmini olcer. Cikarim hizmetiniz icin kabul edilebilir gecikme yuzdeliklerini (p50, p95, p99) tanimlayin ve yeni bir model surumu bunlari asarsa testi basarisiz kilin. Yerinde donanim sabittir — talep uzerine yatay olcekleyemezsiniz — bu nedenle performans gerilememeleri kullanici deneyimi uzerinde dogrudan bir etkiye sahiptir.

Kaynak tuketimi testleri, modelin beklenen GPU bellegi, CPU ve ag bant genisligi sinirlari icinde calistigini dogrular. Gelistirmede calisan ancak 48 GB GPU bellegi gerektiren bir model, 24 GB uretim GPU'larinizda calismayacaktir. CI boru hattiniza kaynak olcumlerini dahil edin ve donanim kisitlamalarini asan dagitimlari basarisiz kilin.

Golge Dagitim ve A/B Testi

Statik testler, bir modelin gercek uretim trafiginde nasil davranacagini tam olarak tahmin edemez. Golge dagitimlar ve A/B testleri, yeni modeli kullanici deneyimini riske atmadan gercek girdilere maruz birakarak bu boslugu kopruler.

Golge dagitim (karanlik baslatma olarak da adlandirilir) yeni modeli uretim modeliyle paralel olarak calistirir. Her iki model de ayni girdileri alir, ancak yalnizca uretim modelinin ciktisi kullanicilara dondurulur. Golge modelinin ciktilari cevirim disi karsilastirma icin kaydedilir. Bu yaklasim guvenlidir cunku yeni model kullanicilari etkileyemez, ancak her iki modeli ayni anda calistirmak icin yeterli GPU kapasitesi gerektirir.

Golge ciktilari uretim ciktilariyla kullanim durumunuz icin onemli boyutlarda karsilastirin: uzlasma orani, gecikme farki, cikti dagilimi kaymalari ve basarisizlik orani. Terfi icin esik degerler tanimlayin — ornegin, golge modeli girdilerin en az %95'inde uretimle uzlasmaldir ve p95 gecikmesi uretim modelinin %20'si icinde olmalidir.

A/B testi, canli trafigi uretim modeli ve aday arasinda boler. Golge dagitimdan farkli olarak, kullanicilar yeni modelin ciktisini gorur, bu da gercek kullaniciya yonelik metrikleri olcebileceginiz anlamina gelir: tiklanma oranlari, gorev tamamlama, kullanici memnuniyet puanlari.

Yerinde A/B testi, istekleri belirleyici bir sekilde bolebilen bir trafik yonlendirme katmani gerektirir. Istio, Envoy veya Lua betikleriyle NGINX bunu halledebilir. Deney atamasini istek basluklarma gomin, boylece alt hizmetler ve kayit sistemleri sonuclari dogru model surumune atfedebilir.

Surekli Uretim Dogrulamasi

Bir modeli dagitmak testin sonu degildir — surekli dogrulamanin baslangicidir. Uretim verileri gelisir, kullanici davranisi degisir ve model performansi zamanla bozulur. Devam eden izleme olmadan, bu sorunlari yalnizca kullanicilar sikayette bulundugunda kesfedersiniz.

Cikti dagilim izleme, model ciktilarinin istatistiksel ozelliklerini zaman icinde izler. Bir duygu analizi modeli aniden girdilerin %80'ini olumsuz olarak siniflandirmaya baslarsa (tarihsel bazin %40'indan yukari), bir seyler degismistir. Cikti dagilimllarini izlemek ve onemli sapmalarda uyari vermek icin Evidently AI veya ozel Prometheus metrikleri kullanin.

Altin kume degerlendirmesi, kurate edilmis bilinen iyi orneklerin bir kumesini zamanlanmis bir temelde (gunluk veya haftalik) uretim modeli uzerinden calistirir. Bu orneklerin temel gercek etiketleri vardir, bu nedenle kesin dogruluk metrikleri hesaplayabilirsiniz.

Dongu icinde insan orneklemesi, insan incelemesi icin uretim isteklerinin kucuk bir yuzdesini rastgele secer. Alan uzmanlari, modelin ciktisinin dogru, kismen dogru veya yanlis olup olmadigini degerlendirir. Bu, etiketlerin mevcut olmadigi uretim verileri icin temel gercek saglar.

Otomatik kanarya analizi, tanimli bir pisme suresi boyunca yeni dagitilmis bir modelin saglik metriklerini onceki surumle surekli olarak karsilastirir. Hata oranlari, gecikme veya cikti kalitesi metrikleri yapilandirilmis esik degerlerin otesine saparsa, sistem otomatik olarak onceki surume geri doner.

Yapay Zeka Takimlari icin Test Kulturu Olusturmak

Yapay zeka sistemlerini test etmek, geleneksel yazilimi test etmekten daha zordur cunku dogruluk olasiliksal, test bakmmi surekli ve geri bildirim dongusu daha uzundur. Surdurulebilir bir test pratigi olusturmak, hem araclara hem de kulture yatirim gerektirir.

Testleri yazmasi ve calistirmasi kolay hale getirin. Model yukleme, on isleme ve cikarimi soyutlayan test donanimlari saglayin, boylece yeni bir test durumu eklemek, bir girdi ve beklenen cikti belirtmek kadar basit olsun. Bir test yazmak 50 satir sablon kodu gerektiriyorsa, testler yazilmayacaktir.

Test sonuclarini dagitim kapilarima dahil edin. Hicbir model, test paketini gecmeden uretime ulasmamasidir. Model testlerini kod testleriyle birlikte CI/CD boru hattiniza entegre edin. Basarisiz bir model testi, basarisiz bir birim testinin yapacagi gibi dagitimi engeller.

Test paketlerinizi modellerinizle birlikte surumleyin. Model gelistikce, test paketi de gelismelidir. Yeni yetenekler yeni testlere ihtiyac duyar. Kullanimdan kaldirilan davranislar testlerinin kaldirilmasini gerektirir. Test durumlarini model koduyla ayni depoda depolayin ve ayni cekme isteklerinde gozden gecirin.

Yapay zeka sistemlerini test etmek, yanlis bir kesinlik duygusu elde etmekle ilgili degildir — olasi basarisizlik alanini sistematik olarak azaltmakla ilgilidir. Her test katmani farkli bir sorun sinifini yakalar. Birlikte, modelin mukemmel olduguna degil, dagitimin guvenli olduguna ve artik oyle olmadiginda bunu hizla bileceginize dair guven saglarlar.

Featured image by Ferenc Almasi on Unsplash.