Veri bilimi dünyasında sıkça karşılaştığımız MLOps nedir?

Veri bilimi dünyasında sıkça karşılaştığımız MLOps nedir?

Veri bilimi dünyasında sıkça karşılaşmaya başladığımız MLOps kavramını mercek altına alıyorıuz.
Merve Özdeş02 Ara 2022

Gelişmekte bir alan olan MLOps veri bilimcileri (DS), makine öğrenmesi (ML) mühendisleri ve yapay zeka (AI) meraklıları arasında hızla ivme kazanıyor. Bu yazımda, makine öğrenmesi (ML) ve operasyon (operations-ops) sözcüklerinin birleşimi olan MLOps’un tanımından ve MLOps kullanmanın öneminden bahsedeceğim. Kuruluşların uzun vadeli değer üretmesine ve veri bilimi, makine öğrenimi ve yapay zeka girişimleriyle ilişkili riskleri azaltmasına yardımcı bir süreç olan MLOps popülerliğini son yıllarda üstel bir şekilde artırmıştır.  Aşağıdaki Google Trends’den elde edilen grafikte de bunu görebilirsiniz.

 

 

Peki, bu kadar popüler olan ve özellikle de veri bilimi dünyasında sıkça karşılaştığımız MLOps nedir? MLOps,  ML modellerinin üretime alınması sürecini düzene sokmaya ve ardından bunları sürdürmeye ve izlemeye yardımcı olmak için veri bilimcileri ve operasyon ekibi arasında köprü görevini görerek iletişim ve işbirliği sağlayan bir dizi uygulamadır. Veri bilimcileri ve makine öğrenimi mühendisleri, bir MLOps yaklaşımını benimseyerek, makine öğrenimi modellerinin uygun şekilde izlenmesi, doğrulanması ve yönetilmesi ile sürekli entegrasyon ve devreye alma (CI/CD) uygulamalarını uygulayarak işbirliği yapabilir ve model geliştirme ve üretim hızını artırabilir. 

Makine öğrenmesini içeren bir projeyi başarılı bir şekilde sonuçlandırmak zordur. Makine öğrenimi yaşam döngüsü; veri alma, veri hazırlama, model eğitimi, model ayarlama, modeli devreye alma, modeli izleme ve çok daha fazlası gibi birçok karmaşık bileşenden oluşur. Ayrıca, veri mühendisliği ve makine öğrenimi mühendisliği gibi farklı ekipler arasında işbirliği ve aktarım gerektirir. Doğal olarak, tüm bu süreçleri senkronize bir şekilde yürütmek ve birlikte çalışmak için operasyonel titizlik gerekir. Çoğu veri bilimci,  bir makine öğrenimi sorunu için en etkili modeli oluşturabilir ancak bu modeli üretimde paketleme, test etme, dağıtma veya sürdürme becerilerine sahip değildir. Bunu yapmak için veritabanları, REST API'leri ve diğer IT becerilerine sahip biri gerekir. MLOps'un resme girerek bu ihtiyaçlarımızı karşıladığı yer burasıdır. MLOps ile kaliteyi artırabilir, yönetim sürecini basitleştirebilir ve büyük ölçekli üretim ortamlarında makine öğrenimi ve derin öğrenme modellerinin dağıtımını otomatikleştirebilirsiniz. MLOps’un bize sağladığı en temel faydaları verimlilik ve ölçeklenebilirliktir. MLOps, veri ekiplerinin daha hızlı model geliştirmesine, daha yüksek kaliteli ML modelleri sunmasına ve daha hızlı dağıtım ve üretim yapmasına olanak tanıyarak verimliliği sağlamaktadır. Aynı zamanda teslim ve sürekli dağıtım için binlerce modelin denetlenebileceği, yönetilebileceği ve izlenebileceği geniş ölçeklenebilirlik ve yönetim sağlar. Özellikle MLOps, ML işlem hatlarının yeniden üretilebilirliğini sağlayarak veri ekipleri arasında daha sıkı işbirliğine olanak tanır. 

Kısaca MLOps, model geliştirme ve tasarımın ötesine geçer. Ayrıca veri yönetimini, otomatik model geliştirmeyi, model yeniden eğitimini, kod oluşturmayı, sürekli geliştirmeyi ve modelin izlenmesini bir araya getirir. Geliştirici operasyonları olan DevOps (Developer Operations) ilkelerini makine öğrenimine getirerek, daha hızlı bir geliştirme döngüsü, daha iyi kalite kontrolü ve değişen iş gereksinimlerine yanıt verme yeteneği sağlar. 

DevOps ve MLOps arasındaki temel farklar nelerdir?

DevOps ve MLOps, temel benzerliklere sahiptir çünkü MLOps, DevOps ilkelerinden türetilmiştir. Ancak uygulamada oldukça farklılardır.

Hem DevOps hem de MLOps işlem hatları, kod-doğrulama-dağıtım döngüsünü içerir. Ancak MLOps, yukarıdaki görselde de görüldüğü gibi bu döngüye ek olarak bir makine öğrenimi modeli oluşturmak/eğitmek için gerekli olan veri ve model adımlarını da içerir. Görseldeki kavramlar geliştirme aşamasından üretim aşamasına olan süreci soldan sağa olacak şekilde göstermektedir. Oklar ve daireler ise bu sürecin devamlılığını gösteriyor.

Geleneksel DevOps tarafında, genellikle bir tür uygulama veya arayüz için oluşturulan kod, yürütülebilir bir dosyaya dönüştürülen ve ardından geniş bir dizi test senaryosu kullanılarak doğrulanarak dağıtılan bir uygulama oluşturur. Bu döngü ideal olarak otomatiktir ve nihai ürününüz olana kadar devam eder. MLOps’ta ise kod bir makine öğrenimi modeli oluşturmak/eğitmektedir. Buradaki çıktı yapısı, içine veri beslenebilen ve çıkarımlar üretebilen serileştirilmiş bir dosyadır. Doğrulama, eğitilmiş modelin test verilerine karşı ne kadar iyi olduğunu kontrol etmek olacaktır. Benzer şekilde bu, model belirli bir eşikte performans gösterene kadar devam eden bir döngüdür.

Bir DevOps ardışık düzenindeki sürüm kontrolü, genellikle yalnızca kod ve bileşenler üzerindeki değişiklikleri izlemeyi içerir. Bir MLOps işlem hattında izlenecek daha çok şey vardır. Model oluşturma/eğitim, yinelemeli bir deneme döngüsünü içerir. Her bir deneysel çalıştırmanın bileşenleri ve ölçümleri, denetim amacıyla uygun şekilde yeniden oluşturulabilmesi için izlenmelidir. Bu bileşenler, eğitimde kullanılan veri kümesini (eğitim/test ayrımı) ve model oluşturma kodunu içerir. Uygulamanın kendisini izlemenin yanı sıra, MLOps'ta izlenecek ek bir bileşen de model kaymasıdır (model drift). Sürekli değişen verilerde veya girdi (features) ile hedef değişken arasındaki ilişkinin veri miktarı arttıkça değişmesi durumunda modelinizin de değişmesi gerekir. Daha eski veriler üzerinde eğitilen modeller, özellikle veriler mevsimselliğe sahipse, gelecekteki veriler üzerinde iyi performans göstermez. Aynı şekilde modelinizi eğitmek için kullandığınız veri seti doğrusal bir ilişki gösterirken, veri setinin hacmi arttığında bu doğrusallık artık görülmeyebilir.  Modelinizi güncel tutmak ve tutarlı bir değer elde etmek için düzenli olarak modelinizin yeniden eğitilmesi gerekecektir.

 

Bir ML projesinin adımları aşağıdaki gibi sıralanabilir:

  • Veri çıkarımı,
  • Veri analizi,
  • Veri hazırlama,
  • Model eğitimi,
  • Model değerlendirmesi,
  • Model doğrulama,
  • Modelin dağıtımı ve
  • Modelin izlenmesi.

Yazılım sistemi geliştirmede yazılım yaşam döngülerini kısaltmak ve dağıtım hızını artırmak için sürekli entegrasyon ve sürekli dağıtım süreçleri kullanılır. Kaynak denetiminin sürekli entegrasyonu, birim testi, entegrasyon testi ve yazılım modülünün veya paketin sürekli teslimi söz konusu olduğunda MLOps ve DevOps benzerdir. Ancak MLOps’ta DevOps’tan farklı olarak sürekli entegrasyon ve sürekli dağıtım (Continuous Integration/Continuous Delivery: CI/CD) süreçlerine bir de sürekli eğitim (Continuous Training: CT) eklenmiştir. Bir makine öğrenimi sürecindeki adımların otomasyon düzeyi, bunun olgunluğunu tanımlar. Google, ML sisteminin otomasyon derecesine göre olgunluk seviyelerini 3 düzeyde sınıflandırırken Microsoft Azure 5 olgunluk düzeyine kadar tanımlamıştır. Biz bu yazımızda yalnızca Google’ın sınıflandırmasına göre 3 düzeyi ele alacağız. Bunlar: Level 0, Level 1 ve Level 2.

MLOps olgunluk seviyeleri (Maturity Levels):

  • MLOps Olgunluk Seviyesi Level 0: Bu seviye, temel olgunluk seviyesi olarak kabul edilir ve manuel bir süreçtir. Bu da geleneksel makine öğrenimi yaşam döngüsü olduğu için MLOps yok olarak da adlandırılır.
    • Veri bilimcileri ve makine öğrenimi araştırmacıları son teknoloji modeller oluşturur, ancak makine öğrenimi modellerini oluşturma ve dağıtma süreci tamamen manueldir.
    • Bu aşamada veriler dağınıktır ve bazen verilerin bütünsel görünümünü görmek imkansızdır.
    • Model eğitimi ve doğrulamasının tüm geliştirme faaliyetleri manueldir ve yalnızca komut dosyasına dayalıdır.
    • CI/CD: MLOps 0'da sürekli entegrasyon ve sürekli teslimat yoktur, çünkü yalnızca birkaç uygulama değişikliği varsayılır.
    • Bu seviyede aktif performans izleme yoktur. Süreç, model performans düşüşünü ve diğer davranışsal sapmaları tespit etmek için gerekli olan model tahminlerini ve eylemlerini izlemez.

 

  • MLOps Olgunluk Seviyesi Level 1: Bu olgunluk düzeyi, model tahmin hizmetinin sürekli olarak sunulmasını sağlamak için sürekli eğitim ile ilgilidir.
    • Veri bilimcileri, uygulama kodunu tekrarlanabilir script dosyalarına veya işlere dönüştürmek için doğrudan veri mühendisleriyle birlikte çalışır.
    • Bu düzeydeki veriler, veri depolarına taşınır. Veri toplama, veri analizi, veri hazırlama için bazı boru hatları (pipeline) oluşturulur ve bunlar otomatik hale getirilir.
    • ML boru hattı aşaması otomatikleştirilirken modellerin test edilmesi ve devreye alınması hala manuel olabilir.
    • Bu aşamada bazı araçlarla aktif performans izlemeye başlanmıştır.

 

  • MLOps Olgunluk Seviyesi Level 2: MLOps 2, MLOps'ta elde edilen en yüksek otomasyon seviyesidir ve iyi bir ML uygulaması için son hedeftir.
    • Bu uygulama o kadar güçlüdür ki, yalnızca kodda bir taahhütte bulunmak, bir dizi otomatikleştirilmiş etkinliği tetikleyebilir ve işlem hattınızın üretimi geciktirmesine neden olabilir.
    • Bu seviyede; veri toplama, veri analizi, veri hazırlama için otomatikleştirilmiş boru hatları, veri erişimi için güvenli API'ler, kullanıcı ve grup düzeyinde rol tabanlı erişim kontrolleri vardır.
    • Bu seviyede CI/CD vardır. CI, birim testi, oluşturma ve paketleme aşamasını otomatikleştirmeye izin verirken, 1. seviyede yarı otomatik olan CD burada tam otomatiktir.
    • Her model sürümü için birim ve entegrasyon testleri uygulanmaktadır.
       

ML boru hattınızı düzenleyebilmenizi sağlayan farklı MLOps araçları geliştirilmiştir. DevOps için kullanılan araçlar MLOps için de kullanılsa da aşağıda listelenen araçlar sadece MLOps için kullanabileceğiniz araçlardır. Genellikle MLOps için geliştirilen araçlar açık kaynaklı olduğu için kolayca kullanabilirsiniz.

  • MLflow
  • DataRobot
  • Pachyderm
  • Algorithmia
  • Kubeflow

 

Kısaca bu yazıyı özetlemek gerekirse, günümüzde sıkça karşılaştığımız MLOps kavramına değindik ve MLOps nedir ve neden MLOps’a ihtiyaç duyuyoruz sorularını yanıtladık. Yazıda aynı zamanda DevOps ile arasındaki farklar nelerdir ve MLOps için hangi araçları kullanabilirim sorularına da cevap bulabilirsiniz. Bu yazıda verilen MLOps temelleri dışında siz de daha fazla bilgi edinmek ve MLOps araçlarından biri olan MLflow ile uçtan uca uygulama ile bu yeteneklerinizi geliştirmek istiyorsanız mutlaka Miuul’un Production Level Data Science Programına göz atın. 


 

Kaynak

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.