ML Yaşam Döngüsü Nasıl Yönetilir?

Burak Uğur
3 min readJun 27, 2021

--

Photo by Markus Spiske on Unsplash

ML Yaşam Döngüsü Nedir?

Makine Öğrenimi Yaşam Döngüsü, büyük miktarda veriyi kullanan modelleri geliştirmek, eğitmek ve sunmak için veri bilimcisi ve veri mühendisleri tarafından yönetilen, üç aşamalı süreci (Pipeline development, Training phase, Inference phase) içeren döngüsel bir süreç olarak tanımlanır.

Makine öğrenimi yaşam döngüsünün ilk adımı, ham verileri temizlenmiş bir veri kümesine dönüştürmekten oluşur. Bu veri kümesi genellikle diğer takım üyeleriyle paylaşılabilir veya yeniden kullanılabilir. Daha sonra veriye uygun modeller geliştirilir ve uygun model canlıya alınır ve performansı izlenir. Bu sırada modelin önceki sürümlerine dönmek isteyebileceğimiz çeşitli durumlar yaşanabilir. Örneğin, model tahmin başarısı kaçınılmaz olarak düştüğü için birçok alternatif sürümü veya o modelin eski sürümlerinin aranması gerekebilir. Daha farklı durumda canlıya çıkarılan modelin performansının izlenmesi gerekebilir. İşte bütün bu işlemleri daha kolay izlemek ve yönetebilmek için çeşitli araçlar bulunmaktadır. Onlardan bazıları;

  • TF Extended
  • MLflow
  • Michelangelo
  • TFBoards
  • Neptune
  • Kubeflow

Bu yazımızda içlerinden MLflow’u inceleyeceğiz.

MLflow Nedir?

MLflow makine öğrenmesi modelleri hayat döngüsünde karşılaşılan güçlükleri kolaylaştırmak amacıyla geliştirilmiş açık kaynak kodlu bir yönetim aracıdır.

MLflow Neler Yapar?

  • Model geliştirme esnasında tüm çalışmalarınızın günlüklerini tutabilirsiniz.
  • Hiper-parametrelerle kullandığınızın modellerin geçmiş bilgilerini saklar.
  • Modelinizin başarı metriklerini ve değerlerini kayıt altına alabilirsiniz.
  • Modeli canlı ortamda kullanmak için saklayabilirsiniz.
  • Modeli geliştirdiğiniz ortam bilgilerini saklayıp canlı ortama aktarılmasını sağlayabilirsiniz.

MLflow Bileşenleri

MLflow 4 adet bileşenden oluşur.

1. MLflow Tracking

  • Model geliştirirken kullandığınız bilgileri kayıt altına alır. Takiplerinizi kolaylaştırmak için çeşitli log türleri mevcuttur.

Parameters: Model hiperparametreleri

Metrics: Kullanılan metrikler

Source: Kaynak kodların lokasyonu

Version: Her eğitim denemesinin versiyonunu kayıt eder.

Artifacts: Çıktı dosyalarını yapay olarak kaydedebilirsiniz.

Tags and Notes: İlave bilgiler/notlar eklenebilir.

2. MLflow Projects

  • ML kodunu paylaşmak veya canlı ortama (production) deploy etmek için yeniden kullanılabilir ve tekrarlanabilir bir formda paketlemek için kullanılır.

[!] Çalışma dizininize conda.yml adında bir konfigürasyon dosyası ekleyerek ihtiyacınız olan bağımlılıkları ekleyebilirsiniz. Bu dosya docker compoese mantığıyla benzer çalışmaktadır. Örnek;

name: startup
channels:
- conda-forge
dependencies:
- python=3.6
- pip
- pip:
- scikit-learn==0.23.2
- mlflow>=1.0

3. MLflow Models

  • Çeşitli hizmet ortamlarında(Docker, Spark Hadoop vs.)makine öğrenimi modelleri dağıtımak için kullanılır.

4. Model Registry

  • MLflow modellerini tüm yaşam döngüsü boyunca yönetmek için merkezi bir model deposu işlevi görür. Burada versiyonlar, model açıklamaları gibi bilgiler yer alır.

--

--