Model kurduk peki şimdi ne olacak?

Muhammed Ömer Taylan
MLOpsTurkey
3 min readFeb 11, 2022

--

Son dönemin en popüler kavramlarından biri olan makine öğrenmesi ve veri bilimine olan ilgi gün geçtikçe artmakta ve kurumlarda iş birimlerinin ihtiyacını karşılayacak problemlerin çözümlerinde kullanılmaktadır.

İş birimlerinde kurulan makine öğrenmesi modellerinin sayısının artması ile bu modellerin yönetilmesi ve sürdürülebilirliği gün geçtikçe daha da önem kazanmaktadır. Nasıl ki makine öğrenmesi projelerinin amacı ilgili iş probleminin çözümündeki insan hatasını azaltıp daha hızlı ve daha doğru sonuçlar üretmek ise bu modellerin yönetilmesi ve sürdürülebilirliğinde de insan hatasının azaltılıp tüm sürecin otomatikleştirilmesi gerekmektedir. Bu noktada yeni bir konsept olan MLOps ile karşılaşmaktayız.

MLOps, üretime alınan makine öğrenmesi modellerinin yönetilmesi ve sürdürülebilirliğini kolaylaştıran bir uygulama ve yöntemdir.

MLOps ilkeleri ortaya çıkmadan önce makine öğrenmesi modellerinin manuel bir şekilde yönetilmesi ekstra kaynak miktarına sebep olmakta ve şirketler açısından önemli bir zorluk çıkarmaktaydı. MLOps kavramının ortaya çıkması modelin geliştirilme, bakım ve izleme gibi süreçlerini otomatikleştirerek zorlu parçaların yönetimini önemli ölçüde kolaylaştırmış ve böylelikle ekiplerin, modelleri daha hızlı üretim ortamına entegre edip çıktıları görebilme ve iş birimiyle birlikte hızlıca aksiyon alabilme ihtimalleri artmıştır.

MLOps kavramı klasik yazılım süreçlerinden biri olan DevOps metodolojisi ile benzerlik taşımaktadır. DevOps süreçlerine ek olarak MLOps içerisinde verilerin ve modellerin de sürece dahil edilmesi gerekmektedir. Kod versiyonlarına ek olarak üretime alınan modellerin versiyonlarının tutulması ve üretim sürecinde izlenmesi gerekmektedir.

Model Skorlama (Model Scoring)

Öncelikle modelin kurulduğu platform ile üretime alınacağı platform farklı ise bu iki platform arasında geçişin sağlanması gerekmektedir. Bu durumun önceden hazırlanması sürecin yönetimi açısından çok önemlidir. Örneğin Python ortamında kurulan bir model Java ortamında üretime alınacaksa ilgili Python modelleri PMML(Predictive Model Markup Language) ya da ONNX(Open Neural Network Exchange) formatına dönüştürülmelidir. Ardından üretime alınan modelin ne sıklıkla çalışacağı ve tahmin sonucu üreteceği model yönetimi açısından bir diğer önemli konu olmaktadır. Modelin çalışma sıklığı için iki farklı yöntem bulunmaktadır.

Batch Skorlama: Kurulan modelin üretim ortamında belirli zaman aralıklarıyla (günlük, haftalık, aylık vs.) çalışmasıdır.

Real Time Skorlama: Kurulan modelin üretim ortamına yeni veri geldiği anda verinin hiç beklemeden skorlanmasıdır.

Hangi skorlama yönteminin kullanılacağı iş biriminin ihtiyacına göre ve kullanılan platformun maliyetine göre değişmektedir. Real Time skorlamanın Batch skorlamaya göre daha maliyetli bir işlem olduğu unutulmamalıdır.

Model Versiyonlama ve İzleme (Model Versioning and Monitoring)

Gerçek dünya sürekli değiştiği için verilerin doğası da değişmektedir. Bu sebeple modellerin de doğası değişen veri ile yeniden kurulması son derece önemlidir. Örnek üzerinden gidecek olursak Covid-19 virüsünün etkisiyle insanların tüketim ve satın alma alışkanları pandemi öncesine ve sonrasına göre değişiklik göstermektedir. Bu sebeple Covid-19 öncesinde kurulan modellerin hem pandemi sürecinde hem de sonrasında başarılarının düşmesi çok normaldir.

Üretim ortamında modellerin iyi çalışması için modelin kurulduğu verilerle aynı örüntüye sahip olması gerekmektedir. Dolayısıyla modelin kurulduğu verinin yapısının ve doğasının değişmesi bize modelin yenilenmesi gerektiğini belirtmektedir. Aksi takdirde eğitilen verilerin üretim ortamında karşılığı olmadığı için modelin performansı zaman içerisinde düşecektir.

Model başarısı düştüğünde ya da veri zamanla değiştiğinden ötürü yeni model kurulmak istendiğinde kurulan tüm modellerin versiyon kontrol sistemi ile yönetilmesi çok önemlidir. Böylelikle bir önceki modelde hangi algoritma ve hangi parametreler kullanıldığı bilgisi öğrenilerek yeni kurulan modelle karşılaştırma yapılabilir.

MLOps izlemenin amacı modelin kullanımını, performansını ve gerekliliklerini tespit etmektir. Bir modelin performansını belirli metriklerle değerlendirdikten sonra sonuçlar analiz edilmeli ve ilgili iş probleminin ihtiyacını ne kadar karşıladığı tespit edilmelidir. Böylelikle modelin performansında düşüklük yaşandığında müdahale edilip yeniden model kurulması sağlanabilir.

Bu yazımızda MLOps’un ne olduğundan ve nasıl kullanıldığından kısaca bahsetmiş olduk. Bir sonraki yazımızda açık kaynak olarak kullanılan ve bir MLOps uygulaması olan MLflow ile Python üzerinde örnek bir proje gerçekleştireceğiz..:)

Yararlanılabilecek Kaynaklar:

  • Beginning MLOps with MLFlow: Deploy Models in AWS SageMaker, Google Cloud, and Microsoft Azure by Sridhar Alla, Suman Kalyan Adari
  • Introducing MLOps: How to Scale Machine Learning in the Enterprise by Mark Treveil and Dataiku Team
  • Building Machine Learning Pipelines: Automating Model Life Cycles with TensorFlow by Sridhar Alla , Suman Kalyan Adari
  • Engineering MLOps: Rapidly build, test, and manage production-ready machine learning life cycles at scale by Emmanuel Raj

--

--

Muhammed Ömer Taylan
MLOpsTurkey

Area of Interest: Data Science, Data Engineering, AutoAI, MLOps, Deep Learning, Graph Analytics. https://www.linkedin.com/in/momertaylan/