2015 yılında Hidden Technical Debt in Machine Learning Systems adlı makale ile temelleri atılmış olan MLOps, DevOps ile benzerlik gösterir ancak DevOps’dan farklı olarak makine öğrenimi projelerine özgü süreçleri kapsar. Yani MLOps, makine öğrenimi modelinin geliştirilmesi, Deployment (Model Dağıtımı) ve Monitoring (Üretim Sonrası İzleme) süreçlerini kapsamaktadır.
MLOps'un birincil faydaları şu şekildedir:
Makine öğrenimi projelerindeki MLOps kapsamı, projeye göre farklılık gösterebilir. Bazı durumlarda, MLOps, veri hattından model üretimine kadar tüm süreci kapsar iken başka bir projede sadece model dağıtım sürecini kapsayabilir.
Tüm süreçleri kapsadığını düşünürsek bileşenleri şu şekilde sıralayabiliriz:
Kuruluşların MLOps hedeflerine ulaşmasına yardımcı olan MLOps uygulama yöntemleri vardır. MLOps sistemleri iş birlikçi, sürekli, tekrarlanabilir olmalıdır.
İş birlikçi: Hibrit ekipler
Başarılı bir MLOps sistemi, grup olarak bu geniş beceri yelpazesini kapsayan karma bir ekip gerektirir. Başarılı bir ekip genellikle mümkünse bir MLOps mühendisi, bir veri bilimcisi veya makine öğrenimi mühendisi, bir veri mühendisi ve bir DevOps mühendisi içerir. Buradaki temel sorun, tek başına çalışan bir veri bilimcisinin MLOps hedeflerinin tamamını gerçekleştiremeyecek olmasıdır. Bir MLOps ekibinin kesin unvanları ve organizasyonu değişiklik gösterse de, hibrit ve iş birlikçi bir ekip gerektirir.
Süreklilik: Makine öğrenimi işlem hatları
Sistemin hedefi ve kaynağı arasındaki verilere uyguladığı bir dizi eylem olan pipeline (işlem hattı), veri mühendisliğinin temel kavramları arasındadır. Bazen MLOps işlem hatları olarak adlandırılan veri işlem hatları, genellikle her kenarın bir yürütme sırasını veya bağımlılığı temsil ettiği ve her düğümün bir eylem olduğu grafik biçiminde tanımlanır. Ayıklama, dönüştürme ve yükleme (ETL) işlem hatları olarak da adlandırılan, veri işlem hatları oluşturmak, yönetmek ve çalıştırmak için birçok özel araç mevcuttur.
Tekrarlanabilir: Model ve veri sürümü oluşturma
Test otomasyonu, tipik olarak entegrasyon testi ve birim testi şeklini alan diğer bir temel DevOps en iyi uygulamasıdır. Yeni bir sürümü dağıtmadan önce bu testleri geçmek bir ön koşuldur. Otomatik, kapsamlı testler, üretim dağıtımlarının hızını önemli ölçüde hızlandırabilir ve ekibin güvenini artırabilir.