MLOps Hakkında

Aykut TAŞDELEN
3 min readJul 13, 2024

--

MLOps ile DevOps arasındaki ilişki nedir?

Kaba bir bakış açısıyla MLOps, DevOps’un (Development & 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.

Makine Öğrenimi Projelerine İlişkin Başlıca Zorluklar

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. Model 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. Model Dağıtımı ve Yönetimi: Eğitilmiş modelin *production 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. Production 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 Learning 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.

MLOps’un Esansiyel Bileşenleri

1. Versiyonlama: Model 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 test ve deploy edilmesi.
3. Model Eğitimi ve Doğrulama: Modellerin eğitim verileri üzerinde eğitilmesi, doğrulanması ve performanslarının değerlendirilmesi.
4. Model Dağıtımı: Eğitilmiş modellerin asli çalışma (production) 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.

MLOps’un Sağlayacağı Kazanımlar

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 (Management): 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.

MLOps İçin Kullanılan Araç ve Teknolojiler

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:

  1. MLflow
  2. TensorFlow Extended (TFX)
  3. Airflow
  4. Metaflow
  5. DVC (Data Version Control)
  6. Kubeflow

--

--