Günümüzde, çok fazla makine öğrenimi modeli üretime alınmıyor ve veri laboratuvarlarında kalıyor. Tıpkı diğer yeni gelişen alanlarda olduğu gibi, modern veri ekiplerinin benimsemesi gereken en iyi uygulamalar, araçlar, teknikler ve roller henüz olgunlaşıp standartlaşmadı. Bu durum, ölçekli olarak makine öğreniminden değer elde etmek isteyen işletmeler ile not defterinde denemelerin ötesine geçmek isteyen veri bilimciler için sıkıntılar yaratıyor. MLOps (Machine Learning Operations) son yıllarda, veri ekiplerinin karşılaştığı dağıtım zorluklarını çözme amacıyla ortaya çıktı.
İpucu adında gizli: DevOps, çevik uygulama geliştirmeyi iş ihtiyaçları etrafında nasıl şekillendirdiyse, MLOps da karmaşıklık ile makine öğrenimi modellerinin üretime alınması arasındaki boşluğu kapatarak aynı şeyi amaçlar.
Peki MLOps bu zorlukları tam olarak nasıl ele alıyor? Bu yazıda, yükselen bir disiplin olarak MLOps etrafındaki bazı kavramları yalınlaştırmayı ve şu temel soruları yanıtlamayı hedefliyoruz
- MLOps nedir ve başarılı bir MLOps pratiğinin temel bileşenleri nelerdir?
- MLOps, DevOps’tan nasıl farklıdır?
- MLOps, makine öğrenimi iş akışını nasıl yeniden kurgular?
- Bugün MLOps’a nasıl başlayabilirsiniz?
MLOps nedir?
Model izlemeye odaklanan bir MLOps girişimi olan WhyLabs’ın CEO’su Alessya Visnjic, MLOps’u yerinde tarif ederek “makine öğrenimi sistemlerinin güvenilir ve ölçeklenebilir şekilde üretime alınmasını sağlayan araçlar, uygulamalar, teknikler, kültür ve zihniyet bütünü” olarak tanımladı.
Bu tanımı bağlama oturtursak, MLOps; kurumsal uygulamaların verimli şekilde yazılması, dağıtılması ve çalıştırılmasına yönelik modern bir pratik olan DevOps disiplininin üzerine inşa edilir. Veri bilimi süreçlerini operasyonelleştiren, fonksiyonlar arası, işbirlikçi ve yinelemeli bir süreçtir. MLOps, makine öğrenimini bir mühendislik disiplini olarak ele alır; modelleri tekrar kullanılabilir birer yazılım eseri gibi görür ve bunların tekrarlanabilir bir süreçle üretime alınmasını sağlar.
MLOps ayrıca, zamanla değişen verilere bağlı olarak performansın dalgalanmasına neden olan veri kayması olgusuna karşı, modellerin üretimde sürekli izlenmesini ve yeniden eğitilmesini de içerir.
Özetle, MLOps veri ekiplerinin sağladıkları değeri şu yollarla ölçeklendirmesine olanak tanır:
- Otomatik süreçlerle daha fazla modeli daha hızlı dağıtma
- İşbirliği ve model yeniden kullanımıyla üretkenliği artırma
- Hiç üretime giremeyen modellerdeki risk ve maliyeti azaltma
- Veri kayması meydana geldikçe modelleri sürekli izleme ve güncelleme
Visnjic’in MLOps tanımına geri bağlarsak, bunların hem modern veri ekipleri için araç yeniliği hem de pek çok veri bilimci için bir zihniyet değişimi gerektirdiği açıktır.
MLOps neden önemlidir?
MLOps’un günümüzde pek çok veri ekibinin dağıtım zorluklarını çözmeyi hedeflediğini ele aldık. Peki, makine öğrenimini bu kadar özel kılan ve MLOps gibi yeni, uzmanlaşmış operasyon işlevlerini gerektiren şey nedir?
Makine öğrenimi uygulamaları, geleneksel yazılımdan temelden farklıdır. Kuruluşların makine öğrenimi sistemlerini üretime alırken karşılaştığı başlıca zorluklardan bazıları şunlardır.
- Sahiplik ve işbirliği: Geleneksel olarak, veri bilimciler makine öğrenimi modellerini oluşturup geliştirir; BT ekipleri ise bunları dağıtıp yönetir. Ancak bu iki ekip arasındaki işbirliği olması gerektiği kadar verimli değildir ve sürtüşme yaratma eğilimindedir. Örneğin, veri bilimi ekipleri işletmenin farklı bölümlerinden artan sayıda problemi çözmek üzere giderek daha fazla talep alır. Modern BT sistemlerinin karmaşık yapısı göz önüne alındığında, veri bilimciler üretim ortamına ve mevcut BT sistemlerine pek dikkat etmez—çünkü bu BT ekibinin sorumluluğudur. Benzer şekilde, BT ekipleri de veri bilimcilerin ürettiği çözümlerin iç işleyişine odaklanmaz—bu da birçok modelin dağıtılabilirliğine ilişkin yanlış beklentilere yol açar. Bu dinamik, her ne pahasına olursa olsun kaçınılması gereken sürtüşmelere ve karşı örüntülere yol açar—veri ekiplerinin "bir model geliştirelim, BT’ye gönderelim, gerisini onlar halleder" düşüncesine razı olduğu durumlar gibi.
- Veri, makine öğrenimi destekli yazılımın tanımlayıcı unsurudur: Veri, makine öğrenimi sistemlerinin can damarıdır. İyi tasarlanmış bir süreci belirli girdiler alıp belirli çıktılar üretecek şekilde kurgulayan geleneksel yazılımdan farklı olarak, makine öğrenimi sistemleri dağınık, gerçek dünya verilerini girdi olarak alır ve istatistiksel yöntemlerle tahminleri çıktı olarak üretir. Bu da makine öğrenimi sistemlerinin davranışının, verideki değişikliklere bağlı olarak değişebileceği anlamına gelir. Ayrıca, makine öğrenimi modellerinin performansını değerlendirmenin gözlem ve analiz gerektirdiği anlamına gelir. Son olarak, makine öğrenimi iş akışının dağınık, deneysel nitelikte olduğunu ve kendiliğinden geleneksel yazılım mühendisliğinden farklı bir beceri setine ihtiyaç duyduğunu gösterir.
- Dağıtım karmaşıklığı: Makine öğrenimi model sistemleri giderek daha karmaşık hale geliyor. Geleneksel yazılımdan farklı olarak, makine öğrenimi modellerini dağıtmak; farklı araçlardan gelen çeşitli, birbiriyle bağlantılı adımların orkestrasyonunu içerir. Buna veri toplama, depolama, dönüştürme, özellik mühendisliği ve daha fazlası dahildir. Ayrıca, tekrarlanabilirlik ve sürüm kontrolü veri ekipleri için büyük zorluklardır. Makine öğreniminin deneysel doğası gereği, veri bilimi ekipleri aynı veri kümesinin farklı sürümleriyle bir modelin birçok sürümünü oluşturur. Bu nedenle, geleneksel sürüm kontrolünün çok daha sağlam hale gelmesi gerekir.
MLOps ve DevOps—fark nedir?
Önceki bölümde, makine öğreniminin neden uzmanlaşmış bir operasyon işlevine ihtiyaç duyduğunu irdeledik. Peki, MLOps uygulamada DevOps’tan nasıl ayrılır?
DevOps, Development (Dev) ve Operations (Ops) kelimelerinin kısaltılmış halidir. BT departmanının iki temel işlevini—uygulama geliştirme ve sistem mühendisliğini—bir araya getirir. DevOps, geliştirme döngülerini kısaltmaya ve yazılım mühendisliği ekiplerinin çıktı hızını artırmaya çalışır. Bunu, geliştirme ekipleri için otomasyon, güncellenmiş süreçler ve çalışma yöntemleri getirerek yapar. Daha geniş anlamda, DevOps yazılım geliştirme sürecine iki ilke kazandırır:
- Sürekli Entegrasyon (CI)—sürüm kontrol depolarına sık ve küçük yinelemeler yapma süreci. Kod sık sık üretime alındığı için dağıtım sorunlarıyla baş etmeyi kolaylaştırır.
- Sürekli Teslimat (CD)—uygulamaları ve yazılımı üretim ortamlarına ulaştırmak için gereken adımların otomatikleştirilmesi süreci.
Makine öğreniminin benzersiz doğası göz önüne alındığında, MLOps’un DevOps’tan pratikte farklılaştığı bazı yollar şunlardır:
- Sürekli Entegrasyon yalnızca kodun test edilip doğrulanmasından, modellerin ve verilerin de test edilip doğrulanmasına genişletilir
- Sürekli Teslimat yalnızca uygulamaları üretime teslim etmek için adımların otomasyonundan, makine öğrenimi tahminini tetikleyen veri hatlarının otomatik teslimine genişletilir
- Sürekli Eğitim tanıtılır—makine öğrenimine özgüdür—modellerin dağıtım için otomatik olarak yeniden eğitilmesini içerir
- Sürekli İzleme tanıtılır—üretim verilerindeki kalite bozulmalarını, model performansını ve makine öğrenimi modeline bağlı iş metriklerini izler
MLOps İş Akışı
MLOps için veri bilimi iş akışını yeniden düşünmek
Makine öğrenimi modellerini üretime almak fazladan karmaşıklık içerdiğinden—veri ekipleri MLOps’u veri bilimi iş akışlarına nasıl dahil edebilir? Bu bölümde, bir MLOps sürecinde basitleştirilmiş, adım adım bir yaklaşım sunuyoruz:
- Oluşturma: Modeller oluşturulduktan sonra, genellikle kurumsal çapta yeniden kullanımı desteklemek üzere sürüm kontrolü altında denetlenebilir bir depoya konur.
- Değerlendirme: Bu aşamada, yeni eğitilmiş modelin yeni ve bağımsız bir veri kümesi üzerindeki performansı ölçülerek model tahminlerinin kalitesi nicelenir.
- Üretime Alma: Modeli veya hattı dışa aktarın, dağıtın ve üretim sistemleri ile uygulamalara entegre edin.
- Test: ML tabanlı uygulamalar için sürekli test önemlidir; modellerin otomatik olarak yeniden eğitilmesi ve sunulmasıyla ilgilidir.
- Dağıtım: En iyi performansı sağlamak için sürekli izleme gereklidir. Veri değiştikçe model yeniden eğitilebilir veya yeni bir modelle değiştirilebilir.
- İzleme ve gözlemlenebilirlik: Birçok şirket, makine öğrenimi modellerini üretim ortamlarına taşırken zorluklarla karşılaşır.
MLOps için veri rolleri yeniden düşünülüyor
Daha küçük veri bilimi ekiplerinde bir kişi birden fazla role sahip olabilir ve birden çok şapka takabilir. Ancak daha büyük, süreçleri yerleşmiş veri ekiplerinde MLOps iş akışının farklı unsurlarına sahip çıkan çeşitli rol ve beceriler bulabilirsiniz. Bu roller şöyle görülebilir:
- Veri Bilimci: Genellikle herhangi bir MLOps ekibinin başrol oyuncusu olarak görülür; veri bilimciler, şirketin verilerini kullanarak değer üreten uzmanlardır. Rolleri, bu veriyi anlamak, yapılandırmak ve yorumlamak; buradan içgörüleri öngörücü modeller biçiminde sunmaktır. Makine öğrenimi modellerini oluşturur, test eder ve değerlendirirler. Bazı şirketlerde, model üretime alındıktan sonra dağıtım ve performans izleme görevlerini de üstlenirler.
- Veri Mühendisi: Veri mühendisleri, veri ekibindeki hemen her işlevin çalışmasını sağlayan ortamı oluşturup sürdürmekten sorumludur. Veritabanları ve işleme sistemleri gibi mimarileri geliştirme, kurma, sürdürme ve test etme görevleri vardır. Basitçe, verinin çıkarımdan dönüştürmeye ve teslimata kadar akışını mümkün kılarlar.
- Yazılım Mühendisi: Bir MLOps sürecinde yazılım mühendisleri, makine öğrenimi modellerini şirketin uygulamalarına ve sistemlerine entegre etmekten sorumludur. Ayrıca, makine öğrenimi modellerinin şirket içindeki makine öğrenimi temelli olmayan uygulamalarla sorunsuz çalışmasını sağlamaya odaklanırlar.
- Makine Öğrenimi Mühendisi: Makine öğrenimi mühendisi, veri bilimi ile veri mühendisliğinin kesişimindedir. Rolü, veri bilimcinin geliştirdiği modelleri, veri mühendisinin hazırladığı altyapı içinde optimize edip üretime almaktır.
MLOps’a başlamak
Bu makale boyunca tartıştığımız gibi, MLOps hâlâ emekleme aşamasında; araçların, en iyi uygulamaların ve metodolojilerin çoğu bugün de şekillenmeye devam ediyor. Bu bölüm, MLOps’a başlamanın farklı yollarına, deneyebileceğiniz araçlara ve bugün faydalanabileceğiniz öğrenme kaynaklarına ayrılmıştır.
MLOps için değerlendirilecek araçlar
-
Kubeflow: Kubeflow, Kubernetes kümeleri üzerinde Makine Öğrenimi iş akışlarını çalıştırmaya yönelik bir araç setidir. Kubeflow’un amacı, en iyi açık kaynak makine öğrenimi çözümlerinin bir Kubernetes kümesinde basit, taşınabilir ve ölçeklenebilir bir şekilde çalışmasını sağlamaktır. Başlangıçta Kubeflow, üretimde makine öğrenimi hatlarını dağıtmaya yönelik uçtan uca bir platform olan TensorFlow Extended’ın (TFX) açık kaynak uygulamasıydı. Böylece Kubeflow, Kubernetes üzerinde TensorFlow işlerinin yürütülmesini basitleştirmeyi sağladıMLFlow: MLflow, Makine Öğrenimi projelerinin uçtan uca geliştirme sürecini endüstriyelleştirmeye yönelik bir araçtır. Amacı, modellerin izlenmesini, tekrarlanmasını, yönetimini ve dağıtımını kolaylaştırarak şirketlerde Makine Öğrenimi projelerinin geliştirilmesini basitleştirmektir.
-
Data Version Control (DVC): DVC (Data Version Control), veri bilimi projelerinizi yönetmeyi kolaylaştıran bir Python paketidir. Bu araç, ana katkıcısı Dmitry Petrov’un bu sunumda belirttiği gibi, Makine Öğrenimi için Git’in bir uzantısıdır. DVC, Git ile hem karşılaştırılabilir hem de tamamlayıcıdır.
-
Pachyderm: Pachyderm, DVC’ye benzer şekilde makine öğrenimi ve veri bilimi için bir sürüm kontrol aracıdır. Buna ek olarak Docker ve Kubernetes tabanlıdır; bu da herhangi bir bulut platformunda Makine Öğrenimi projelerini çalıştırıp dağıtmasına yardımcı olur. Ayrıca Pachyderm, bir makine öğrenimi modeline alınan tüm verilerin sürümlenmesini ve izlenebilir olmasını sağlar.
ML Ops öğrenme kaynakları
Makine Öğrenimi Temelleri
- Machine Learning For Absolute Beginners: A Plain English Introduction (Second Edition), Oliver Theobald. Başlığın da belirttiği gibi, bu kitap makine öğrenimine yeni başlayanlara kapsamlı bir giriş sunar. Ve “başlangıç” derken gerçekten sıfır seviyeyi kastediyoruz. Temel matematik bilgisine veya herhangi bir kodlama deneyimine gerek yoktur. Bu, konuya ilgi duyan herkes için makine öğrenimine temel bir giriş niteliğindedir. Kullanılan dil, okuyucuları anlaşılmaz jargon içinde boğmamak için oldukça sadedir. Farklı algoritmalar net ve kolay takip edilebilir açıklamalar ve görsel örneklerle desteklenir. Kitap ayrıca, makine öğrenimini daha iyi bağlama oturtmak için bazı basit programlama kavramlarını da sunar.
- Machine Learning For Dummies, John Paul Mueller ve Luca Massaron. Yeni başlayanlar için “for dummies” serisi iyi bir başlangıç noktasıdır. Bu kitap, makine öğreniminin temel kavram ve teorilerini tanıtır ve bunların gerçek dünyaya nasıl uygulanacağını açıklar. Temel programlama dillerini ve araçlarını tanıtır ve görece ezoterik bir kavramı pratik bir araca nasıl dönüştürebileceğinizi anlatır. Makinelere örüntüleri fark etmeyi ve sonuçları analiz etmeyi öğretmek için kullanılan Python ve R programlama dillerini ele alır.
- Fundamentals of Machine Learning for Predictive Data Analytics: Algorithms, Worked Examples, and Case Studies, John D. Kelleher, Brian Mac Namee ve Aoife D'Arcy. Bu kitap, makine öğreniminin tüm temel kavramlarını hem teorik yönüyle hem de pratik uygulamalarıyla ele alır. Bilgiyi daha iyi aktarmak için somut örnekler ve vaka çalışmaları sunar. Bu temel kavramları daha iyi anlamak için analitik hakkında temel bilgi sahibi olmak önerilir. Kitap, makine öğrenimine yönelik farklı yaklaşımları sunar ve her öğrenme kavramını algoritmalar ve modellerle, ayrıca bu kavramları uygulamaya koymanıza yardımcı olacak somut örneklerle açıklar.
- Machine Learning for Hackers, Drew Conway ve John Myles White. Buradaki “hacker” terimi, belirli amaçlar ve pratik projeler için kod üreten programcıları ifade eder. Bu kitap, matematik geçmişi olmayan ancak kod yazmayı ve programlama dillerini kullanmayı bilen okurlara yöneliktir. Makine öğrenimi tipik olarak verileri analiz etmek için algoritmalar kullandığından matematiksel kavramlara dayanır; ancak birçok deneyimli kodlayıcının ileri düzey matematik becerileri olmayabilir. Bu kitap, matematiksel teoriler üzerinde durmak yerine pratik çalışmalara dayalı gerçek dünya uygulamaları sunar. Klasik makine öğrenimi problemlerini ele alır ve bunların R programlama diliyle nasıl çözülebileceğini açıklar. Senatörleri aldıkları oylara göre karşılaştırmaktan, Twitter’da takip edilecek kişiler için bir öneri sistemi oluşturmaya, içeriğine göre spam tespitine kadar makine öğreniminin olanakları sınırsızdır.
- DataCamp’in Python veya R ile Machine Learning Scientist Track’i. İster R ister Python kullanıcısı olun, bu iki track makine öğreniminin inceliklerini baştan sona kapsar. Her birinde, makine öğreniminin temellerinden derin öğrenme ve özellik mühendisliği gibi ileri konulara kadar onlarca interaktif kurs bulunur.
Veri Mühendisliği Temelleri
- Andreas Kretz'in Data Engineering Cookbook’u. Veri mühendisi olunacağına dair çok fazla kafa karışıklığı vardır. Andreas Kertz’in kapsamlı vaka çalışmaları, kodlar, podcast’ler, röportajlar ve daha fazlasını içeren bir e-Kitabıdır. Veri mühendisi olmak isteyen herkes için eksiksiz bir paket olduğunu düşünüyorum. Ve pastanın üzerindeki krema? Bu e-kitap ücretsiz! Evet, hemen kullanmaya başlayabilirsiniz.
- DW 2.0 - The Architecture for the Next Generation of Data Warehousing, veri ambarcılığının babası WH Inmon. Bu kitap, mimari ve teknolojik açıdan bugün teknolojik olarak mümkün olan veri ambarcılığının geleceğini anlatır. Dikkatle yapılandırılmıştır ve veri mimarisiyle ilgili konuların çoğunu ve altta yatan zorlukları kapsar. Mevcut sistemi nasıl kullanabileceğiniz, bunun etrafında bir veri ambarını nasıl inşa edebileceğiniz ve maliyeti oldukça pratik bir şekilde gerekçelendirmeye yönelik en iyi uygulamalar yer alır.
- Agile data warehouse design: collaborative dimensional modeling, from blackboard to star schema, Laurent Corr. Harika bir kitap. Lawrence Corr, iş zekâsı ve veri ambarı gereksinimlerini yakalamak ve bunları “model storming” adı verilen bir teknikle yüksek performanslı modellere dönüştürmek için kapsamlı bir adım adım rehber sunar. Ayrıca, veri ambarı tasarımcıları ile iş zekâsı paydaşları arasındaki iletişimi geliştirmek için boyutsal modellemeye çevik bir yaklaşım olan BEAM kavramını da bulacaksınız.
- DataCamp’in Python ile Data Engineering Career Track’i. Bu track, etkili veri mimarileri kurmanın inceliklerinden veri alımını sadeleştirmeye, hatlar inşa etmeye ve daha fazlasına kadar onlarca kurs sunar.
MLOps’a dalış
- MLOps Fundamentals Skill Track. Bu skill track, bir makine öğrenimi uygulamasının iş gereksinimlerinin toplanmasından tasarım, geliştirme, dağıtım, operasyon ve bakım aşamalarına kadar tüm yaşam döngüsünü kapsar
- MLOps: Operationalizing Data Science, David Sweenor, Dev Kannabiran, Thomas Hill, Steven Hillion, Dan Rope ve Michael O'Connell. Veri analitiği alanından bu 6 uzman, üretime giren makine öğrenimi tabanlı uygulamalar oluşturmak için dört aşamalı bir yaklaşım sunuyor.
- Building Machine Learning Powered Applications, Emmanuel Ameisen. Bu kitapta yazar Emmanuel Ameisen, bir makine öğrenimi odaklı uygulamayı ilk fikirden dağıtılmış ürüne kadar nasıl inşa edeceğinizi öğretecek.
- Building Machine Learning Pipelines, Hannes Hapke, Catherine Nelson. Yazarlar Hannes Hapke ve Catherine Nelson, TensorFlow ekosistemini kullanarak bir makine öğrenimi hattının otomatikleştirilmesi adımlarını kitap boyunca sergiliyor.
- Practical MLOps, Noah Gift, Alfredo Deza. DevOps ve MLOps arasındaki farkı vurgulayan bu kitap, MLOps’un ne olduğuna ve makine öğrenimi modellerinizi nasıl operasyonelleştirdiğine dikkat çeker. Kitap, AWS, Microsoft Azure ve Google Cloud’da MLOps projeleri uygulamanızı sağlayacak araç ve yöntemler sunar. Ayrıca, DataCamp’te Noah’ın Practical MLOps canlı eğitimini de izlediğinizden emin olun.
- Introducing MLOps, Mark Treveil & Dataiku Ekibi. Bu kitabın yazarları, veri bilimi ekiplerinin Makine Öğrenimi modellerini operasyonelleştirerek iş dönüşümünü hızlandırabilmesi ve modelleri zaman içinde iyileştirebilmesi için MLOps’un temel kavramlarına derin bir anlayış kazandırır.
- Google Cloud, verimli makine öğrenimi modelleri oluşturmak için kullanabileceğiniz en iyi uygulamaları ve süreçleri adım adım anlatan makaleler, blog yazıları ve bildiriler sunar. Seçili makalede, MLOps süreçlerini ve manuelden otomatiğe geçişi öğreneceksiniz.
- Nvidia’nın blogu, sizi MLOps Yaşam Döngüsünde gezdiren ve alandaki bazı başarı hikâyelerini gösteren yazılar içerir.
- Ml-ops.org, Dr. Larysa Visengeriyeva, Anja Kammer, Isabel Bär, Alexander Kniesz ve Michael Plöd tarafından oluşturuldu. Bu web sitesi, MLOps ile ilgili tüm gerekli bilgileri toplamayı ve uçtan uca sürecin her adımını sergilemeyi amaçlar.
Umarız bu kaynak seti, MLOps öğrenme yolculuğunuza başlamanıza yardımcı olur. MLOps hakkında daha fazla makale ve kaynak için şu yazılara da göz atabilirsiniz:
