Kaba bir bakış açısıyla MLOps, DevOps’un (Growth & Operations) makine öğrenmesi alanına uyarlanmış halidir. Zira makine öğrenimi (ML) uygulamalarının geliştirilmesi, konvansiyonel yazılım geliştirme süreçlerinden farklı zorluklar ve gereksinimlere haizdir. Kısaca bu alana mahsus zorluklar şöyle değerlendirilebilir:
NOT: DevOps kavramı; konvansiyonel yazılım geliştirme ve BT operasyonlarının entegrasyonunu hedefleyen bir yaklaşımı tarifler.
1. Veri Toplama ve İşleme: Makine öğrenimi modelleri, sadece büyük değil aynı zamanda “kaliteli” veriye ihtiyaç duyar. Verilerin toplanması, temizlenmesi, etiketlenmesi, eksik değerlerinin doldurulması, anomalilerin giderilmesi, verilerin transforme edilmeleri zaman alıcı ve yorucudur.
2. Mannequin Seçimi ve Eğitilmesi: Muhtelif algoritmalar arasından en uygun olanını seçmek ve bu modelin doğru parametrelerle eğitilmesi de kolay bir iş değildir. Üstelik modelin eğitim verilerine aşırı uyum (overfitting) veya eksik uyum (underfitting) göstermemesi gereklidir.
3. Modelin Değerlendirilmesi: Modelin çeşitli performans kriterleri açısından değerlendirilmesi gereklidir.
4. Mannequin Dağıtımı ve Yönetimi: Eğitilmiş modelin *manufacturing ortamına = asli çalışma ortamına* alınması, yazılımın diğer alanlarından çoğunlukla daha karmaşıktır. Bu süreç, modelin performansını optimize etmek ve bağımlılıkların yönetimi gibi ilâve zorluklara haizdir. Manufacturing ortamındaki modelin performansının *monitörize (takip) edilmesi*, gerekiyorsa da güncellenmesi şarttır. Bu durum çoğunlukla modelin zaman içinde değişen veri dağılımlarına uyum sağlama ihtiyacından ortaya çıkar.
5. Yüksek Kaynak Gereksinimleri: Büyük veri setleri ve karmaşık modellerin eğitimi, yüksek hesaplama gücü ve büyük depolama alanlarına ihtiyaç duymaktadır.
6. Etik ve Yasal Zorluklar: Söz gelimi kullanılan verilerin gizliliği (şeffaf yapay zeka…) ve güvenliği sağlanmalıdır.
İşte, MLOps (Machine Studying Operations) yukarıda sayılan zorlukları aşmak, modellerin yaşam döngüsünü desteklemek ve optimize etmek için bir dizi teknoloji ve pratiği barındıran yeni bir disiplindir. Temel amacı; makine öğrenimi projelerinin geliştirilmesinden dağıtımına, güncellenmesinden ve yönetimine kadar olan tüm süreçlerini yönetmek ve otomatize etmektir.
Şüphesiz MLOps multidisipliner bir konudur, yani yazılım geliştirme, veri bilimi, araçlar ve iş süreçleri entegrasyonu gibi pek alt alanı kapsar.
1. Versiyonlama: Mannequin ve verinin versiyonlarını takip ederek, değişikliklerin takibini yapabilmek.
2. Sürekli Entegrasyon ve Dağıtım (Continous Integration/Continous Deployment): Modellerin ve kodun otomatik olarak check ve deploy edilmesi.
3. Mannequin Eğitimi ve Doğrulama: Modellerin eğitim verileri üzerinde eğitilmesi, doğrulanması ve performanslarının değerlendirilmesi.
4. Mannequin Dağıtımı: Eğitilmiş modellerin asli çalışma (manufacturing) ortamına alınması.
5. Performans Takibi ve Yönetimi: Asli çalışma ortamındaki modellerin performanslarının takibi (monitoring) ve ince ayar (finetuning) yapılması.
6. Otomasyon: Tekrarlanabilir süreçlerin otomasyonu.
1. Daha Hızlı İterasyonlar & Dağıtım: MLOps, makine öğrenimi modellerinin hızlı bir biçimde güncellenmesini ve dağıtılmasını sağlayarak iş süreçlerindeki verimliliğini artırır.
2. Ölçeklenebilirlik (Scalability): MLOps, büyük ölçekte ML modellerinin yönetimini ve büyümesini kolaylaştırır, bu sayede daha çok veri ve daha fazla iş yüküyle başa çıkılabilir.
3. Güvenilirlik (Reliability) ve Yönetim (Administration): Modellerin güvenilir bir şekilde çalıştığından ve performanslarının izlendiğinden emin olmak için operasyonel süreçlerin otomatikleştirilmesini sağlar.
Bu noktada pek çok araç sayılabilir olmakla beraber bu araçların nasıl kullanıldıkları gibi konular bu yazının kapsamı dışındadır. Aşağıda bu alanda kullanılan belli başlı araçlar maddelenmiştir:
- MLflow
- TensorFlow Prolonged (TFX)
- Airflow
- Metaflow
- DVC (Information Model Management)
- Kubeflow