Merhaba,

DevOps hayatımızda ki yerini gün geçtikçe geliştirmeye devam ederken, MLOps ile ilgili de yoğun bir şekilde konuşmaya başladık.

Aslında, DevOps ve MLOps hedefledikleri genel amaç anlamında bazı benzerlikler gösterir. Her ikisi de en iyi sektör pratiklerini ortaya çıkarmaya odaklanır, hedefi, hızı, verimliliği ve üretkenliği artırmak olan bir yaklaşım benimser, sürekli geliştirme döngüsünde, süreç otomasyonunun önemine yoğunlaşır.  Her ikisinin prensiplerinin de paydaşlar arasında ki işbirliğini geliştirmeyi hedeflediğini söylemek mümkün.

Diğer taraftan süreçleri rol ve sorumluluk olarak ele aldığımızda, bazı farklılıklar gündeme gelir. CI/CD süreçlerine odaklanan DevOps prensipleri, yazılım mühendislerinin kod geliştirme sürecinde daha fazla sorumluluk almasını sağlar ve bunların yönetimi için ardışık bir düzen oluşturur.

MLOps ise, makine öğrenimi mühendislerinin ve veri bilimcilerinin geliştirme aşamasında aktif  rol aldığı bir süreçtir. Bu kişiler, model oluşturma ve eğitme için kod yazarlar ve aynı zamanda bu modellerin üretim ortamına konuşlandırılması ve doğru şekilde izlenmesinden de sorumludurlar.

Eğer makine öğrenimi modellerinin üretimdeki dağıtımı sizin sorumluluğunuzdaysa, MLOps ve DevOps arasındaki farkı ve bu iki kavramın nasıl birbirleriyle ilişkili olduğunu anlamak oldukça önemli olabilir.

DevOps felsefesini tekrar hatırlayalım. DevOps, geliştirme ve operasyonların birleşmesiyle oluşan bir kültürdür ve farklı sistemlerin yaşam döngüsünü bir arada yönetmeyi amaçlar. Geliştirme aşamasında tasarım, üretim, test ve dağıtım işlemlerinin hızlandırılması hedeflenir. Otomasyon, sürekli teslim ve geri bildirim döngüleri gibi uygulamalarla, geleneksel süreçleri daha çevik ve sürekli hale getirerek, sürekli iyileştirme sağlamayı hedefler.

Diğer taraftan MLOps, makine öğrenimi tabanlı ürün geliştirme sürecini optimize eden bir geliştirme yaşam döngüsüdür. Makine öğrenimi modellerinin geliştirilmesi, eğitimi ve dağıtımı ile ilgilenir ve bu süreçleri otomatize ederek, süreçler arasındaki verimliliği arttırır. MLOps aynı zamanda, makine öğrenimi modellerinin üretim ortamlarında sorunsuz bir şekilde çalışmasını sağlamak için gereken tüm araç ve süreçleri de içerir.

Başka bir deyişle, MLOps, sistem yöneticileri, veri bilimi ekipleri ve diğer geliştirme ekipleri arasındaki işbirliğini artırarak, farklı departmanların bir araya gelmesini ve üretim sürecinin daha verimli hale getirilmesini sağlar. Bu, DevOps’un yazılım geliştirme için yaptıklarına benzer bir şekilde, iş süreçlerini daha akıcı ve hızlı hale getirir.

MLOps ve DevOps arasında benim gördüğüm en büyük farklılıklardan birisi, MLOps’un çok daha deneysel olmasıdır. Makine öğrenimi geliştiricileri ve veri bilimcileri, farklı parametreler, özellikler ve algoritmalarla model denemeleri yaparak sürekli olarak keşif yaparlar. Bu denemeler yeniden üretilebilir ve sonuçlar yönetilebilir olmalıdır.

Sürece verilerin dahil edilmesi, MLOps ve DevOps arasında ki bir başka önemli farkı beraberinde getiriyor. DevOps, diğer operasyonlarla birlikte geliştirme ve testin tutarlı bir şekilde yürütülmesine odaklanırken, makine öğrenimi modellerini çalıştıran uygulamalar büyük miktarda veri kullanır.

Makine öğrenimi modelleri, sürekli olarak yeni veriler ve değişen koşullarla karşılaşır ve bu nedenle MLOps, modelin izlenmesi ve ayarlanması konusunda özellikle önemlidir. DevOps ise uygulama ve hizmetlerin hızlı bir şekilde sunulmasıyla ilgilenir ve yaşam döngüsünü sıkı bir şekilde kontrol altında tutar.

DevOps, sürekli testi, iş akışını, yazılım kalitesini ve iş risklerini doğrulayan otomatik testleri içerirken, MLOps’ta makine öğrenimi tabanlı bir sistemin test edilmesi için model doğrulama ve eğitim testleri gibi ek testler yapılır. Bu da MLOps’ta test süresini biraz artırır.

Diğer önemli bir fark, MLOps’ta sürüm oluşturma, verilerin değişmesi ve model parametrelerinin güncellenmesi nedeniyle daha karmaşık bir süreç olmasıdır. DevOps’ta ise sürüm kontrolü daha çok yazılım değişiklikleriyle ilgilidir ve daha basittir.

Makine öğrenimi projeleri, doğru makine öğrenimi modelini belirlemek için birçok deneme döngüsü gerektirir. Bu deneme aşaması, karmaşıklığı artırır ve bu karmaşıklığı yönetmek için uygun yapılara, süreçlere ve ML yapıtlarını (artifacts: Data, Model ve Code) yöneten yazılım araçlarına ihtiyaç vardır. MLOps, bu ihtiyaçları karşılamak için bir konfigürasyon üzerinden sözleşme (convention over configuration) şematiği izlemeli; dil, çerçeve, platform ve altyapıdan bağımsız bir uygulama olmalıdır.

Uçtan uca sağlıklı bir MLOps yapısı için, veri mühendisliği, sürüm kontrolü, CI/CD “pipeline”, otomatik dağıtım ve deneyler, model performansı değerlendirmesi ve üretimde model izleme için araçlar, MLOps teknoloji yığını içerisinde yer almalıdır.

Makine öğrenimi modellerinin oluşturulması ve çalıştırılması için birçok farklı yöntem vardır, ancak bu işlemin tutarlı ve etkin bir şekilde yapılması önemlidir. Veri hazırlama, model geliştirme ve akıllı uygulamalara dönüştürme gibi adımlar için doğru teknoloji yığınına sahip olmak, zaman ve kaynakların etkin kullanımını sağlar. Red Hat® OpenShift®, MLOps uygulamalarını etkinleştirmek için gerekli olan temel yetenekleri içeren lider bir Kubernetes hibrit bulut platformudur.

Bu sayede, makine öğrenimi modellerinin geliştirme, üretim ve dağıtım süreçlerini otomatikleştirmek için, kuruluşlar DevOps ve GitOps prensiplerini benimseyerek sürekli tahmin doğruluğu sağlamaktadır.

Red Hat OpenShift Data Science, ITOps, veri bilimcileri ve akıllı uygulama geliştiricileri arasındaki işbirliğini geliştirmek için de gün geçtikçe yeni özelliklerle güçlendirilmektedir. Ayrıca, müşteriler, AWS Marketplace üzerinden doğrudan Red Hat OpenShift Data Science satın alabilir ve AWS harcamalarını dağıtımlar için kullanarak daha kolay erişilebilirlik ve esneklik elde edebilirler.

Özet olarak MLOps, makine öğrenimi ve derin öğrenme işlemlerini otomatikleştirerek iş akışı süreçlerini kolaylaştırmayı ve büyük ölçekli makine öğrenimi modellerinin güvenli ve verimli bir şekilde dağıtımını ve bakımını sağlamayı amaçlamaktadır. Aynı zamanda, iş gereksinimlerini ve düzenleyici gereklilikleri karşılamak için kritik bir rol oynamaktadır. Etkin ve tutarlı MLOps süreci için Red Hat® OpenShift®, Red Hat OpenShift Data Science elimizi güçlendirecek pek çok özelliği bize sunabilmektedir.

Sarav Asiye Yiğit – 7 Mayıs 2023

Kaynakça:

https://www.databricks.com/glossary/mlops

https://www.redhat.com/rhdc/managed-files/cl-mlops-architecture-openshift-infographic-f31021-202202-en.pdf

https://ubuntu.com/blog/what-is-mlops

https://ml-ops.org/

https://ml-ops.org/content/motivation

https://ml-ops.org/content/end-to-end-ml-workflow

https://www.projectpro.io/article/mlops-vs-devops-differences/495

https://ml-ops.org/content/state-of-mlops

https://www.redhat.com/en/blog/red-hat-adds-new-collaboration-and-mlops-capabilities-red-hat-openshift-data-science