Technical Debt Nedir?
Ward Cunningham tarafından 1992'de ortaya atılan teknik borç metaforu, hızlı ama dikkatli yapılmamış kararların gelecekte ek bakım maliyeti doğurduğunu ifade eder. ML sistemlerinde bu borç katlanır: model kodu, veri altyapısı, özellik mühendisliği ve izleme sistemleri birbirine sıkı biçimde bağlıdır. Sculley ve diğerleri (2015), ML sistemlerindeki toplam sistem karmaşıklığının yalnızca küçük bir bölümünün model eğitim kodundan kaynaklandığını göstermiştir.
ML'ye Özgü Borç Türleri
- check_circle Veri Sızıntısı: Test verisinin eğitime sızması, gerçekçi olmayan model performansı yanılsaması yaratır. Zaman serisi verisinde özellikle yaygın olan bu sorun, deployment sonrasında ciddi performans düşüşlerine yol açar.
- check_circle Özellik Dolanıklığı: CACE prensibi gereği herhangi bir özelliği değiştirmek modelin tüm davranışını etkileyebilir. Özellik deposu (feature store) kullanımı bu bağımlılıkları yönetmeye yardım eder.
- check_circle Gizli Geri Bildirim Döngüleri: Modelin çıktıları gelecekteki eğitim verisini etkilediğinde önyargılar sessizce büyür. Tavsiye sistemleri ve içerik sıralama modellerinde bu sorun özellikle dikkat gerektirir.
- check_circle Undeclared Consumers: Modelin çıktısına bağımlı olan ancak resmi arayüz sözleşmesi olmayan sistemler, model güncellemelerinde sessiz kırılmalara yol açar.
CACE Prensibi ve Entanglement
Changing Anything Changes Everything (CACE) prensibi, ML sistemlerinde bağımsız görünen değişkenlerin aslında bağımsız olmadığını vurgular. Bir özelliği eklemek, çıkarmak veya dönüşümünü değiştirmek diğer özelliklerin göreli önemini dönüştürür. Bu yüzden kapsamlı regresyon testleri, A/B deneyleri ve özellik atıf analizleri teknik borcu görünür kılmanın temel araçları haline gelmektedir.
Teknik Borç Nasıl Azaltılır?
- check_circle Veri Sözleşmeleri: Upstream veri kaynaklarıyla şema, dağılım ve kalite beklentilerini resmileştiren sözleşmeler, veri kaynaklı borcun birikmesini engeller.
- check_circle Model Kartları: Her model için standart belgeler (amaç, sınırlamalar, önyargı değerlendirmesi) hazırlamak bilgi borcunu azaltır ve ekip içi şeffaflığı artırır.
- check_circle Özellik Deposu: Feast, Tecton veya Vertex AI Feature Store gibi araçlar özellikleri merkezi olarak yönetir, yeniden kullanımı teşvik eder ve tanımsız bağımlılıkları önler.
- check_circle Düzenli Teknik Borç Sprinti: Her çeyreğe bir yeniden yapılandırma (refactoring) sprinti dahil etmek, borcun kontrol dışına çıkmasını engeller.
AI Teknik Borç Türleri
Veri Borcu
Kötü etiketlenmiş, çoğaltılmış veya eski eğitim verisi; temizleme maliyeti zamanla katlanarak büyür.
Model Borcu
Güncel olmayan model mimarisi veya aşırı büyük model; performans ve maliyet verimsizliği.
Altyapı Borcu
Manuel ML boru hatları, izleme eksikliği; yeni model dağıtımı giderek riskli ve yavaş hale gelir.
Belge Borcu
Belgelenmemiş veri dönüşümleri ve model kararları; yeni ekip üyeleri başından öğrenemez.
Sıkça Sorulan Sorular
- check_circle ML teknik borcu geleneksel teknik borçtan nasıl farklıdır? Geleneksel teknik borç çoğunlukla kodda gizliyken ML borcu veri kalitesi, özellik mühendisliği ve izleme altyapısında da birikir.
- check_circle Model drift teknik borçla ilişkili midir? Evet. İzleme altyapısındaki eksiklikler, model driftini geç fark etmeye yol açar; bu da operasyonel borç biriktirmek anlamına gelir.
- check_circle Teknik borcu ölçmenin pratik yolu var mı? Cyclomatic complexity, bağımlılık sayısı, test kapsamı ve belge tazeliği gibi metrikler borcun proxy göstergesi olarak kullanılabilir.
- check_circle Ne zaman borç ödemek yerine yeni özellik geliştirmek tercih edilir? Mevcut borç yeni geliştirmeyi iki katından fazla yavaşlatmıyorsa kısa vadede özellik önceliği kabul edilebilir. Ancak bu kararın bilinçli ve belgelenmiş olması gerekir.