İçeriğe atla
Makale

MLOps Nedir? Makine Öğrenmesi Modelleri Nasıl İşletilir?

MLOps'un tanımını, model yaşam döngüsünü, olgunluk düzeylerini, data drift ile yeniden eğitimi, MLflow ve Kubeflow'u ve yönetişimi anlattık.

Oğuzhan Gerçek··7 dk okuma
MLOps Nedir? Makine Öğrenmesi Modelleri Nasıl İşletilir?

Kısa cevap: MLOps (machine learning operations), DevOps ilkelerini makine öğrenmesine uygulayan ve modelin geliştirilmesiyle üretimde işletilmesini tek disiplinde birleştiren uygulamaların bütünüdür. Sıradan yazılımdan farkı, davranışın yalnız koddan değil veriden de gelmesi: veri değiştikçe model eskir, bu yüzden izlenmesi ve yeniden eğitilmesi gerekir. Yaşam döngüsü veri hazırlama, eğitim, deney takibi, model kaydı, doğrulama, dağıtım ve izlemeden oluşur. Google olgunluğu üç düzeyde anlatıyor: elle yürütülen süreç, otomatik eğitim pipeline'ı ve pipeline'ın kendisinin CI/CD ile güncellenmesi.

MLOps nedir?

Google Cloud'un mimari belgesine göre MLOps, makine öğrenmesi sisteminin geliştirilmesini (Dev) ve işletilmesini (Ops) birleştirmeyi amaçlayan bir mühendislik kültürü ve pratiği. AWS onu makine öğrenmesi iş akışlarını ve dağıtımlarını otomatikleştiren uygulamalar olarak tanımlıyor; Microsoft'a göre sürekli entegrasyon ve sürekli teslimat gibi DevOps ilkelerine dayanıyor. Makine öğrenmesinin temellerini makine öğrenmesi yazımızda anlattık.

Üretimdeki modelin yaptığı iş ise çıkarımdır (inference). Google Cloud'un tanımıyla çıkarım, eğitilmiş bir modeli daha önce görmediği veride tahmin üretmek için çalıştırmaktır. Her isteği geldiği anda işleyen gerçek zamanlı çıkarımın yanında, anında cevap gerekmeyen büyük hacimler için toplu (batch) çıkarım da var. Donanım farkını GPU yazımızda, çıkarım faturasını yapay zekâ FinOps yazımızda ele aldık.

MLOps neden gerekli?

D. Sculley ve arkadaşlarının NeurIPS 2015'te yayımlanan "Hidden Technical Debt in Machine Learning Systems" makalesine göre gerçek dünyadaki makine öğrenmesi sistemlerinde büyük ve süregiden bakım maliyetleri doğması olağan. Makalenin tespitlerinden bazıları şunlar:

  • Model kodu küçük bir parça: Genel amaçlı paketlerin etrafına yazılan yapıştırıcı kod (glue code) yüzünden olgun bir sistem en fazla %5 makine öğrenmesi, en az %95 yapıştırıcı koddan oluşabilir.
  • CACE ilkesi: "Changing Anything Changes Everything", yani bir şeyi değiştirmek her şeyi değiştirir.
  • Veri bağımlılığı: Veri bağımlılıklarının maliyeti, kod bağımlılıklarınınkinden yüksek.
  • Testlerin sınırı: Değişen bir dünyada testler, sistemin amaçlandığı gibi çalıştığını kanıtlamaya yetmez.

MLOps yaşam döngüsü

Google bir modelin teslimini sekiz adımda topluyor: veri çıkarma, veri analizi, veri hazırlama, eğitim, değerlendirme, doğrulama, model serving ve izleme. MLOps'un öne çıkan işleri şunlar:

  • Veri hazırlama: İlgili veri farklı kaynaklardan seçilip birleştirilir ve göreve hazırlanır (ETL yazımız).
  • Deney takibi: MLflow Tracking gibi araçlar her çalıştırmanın (run) parametrelerini, kod sürümünü, metriklerini ve çıktı dosyalarını kaydeder.
  • Model kaydı (model registry): MLflow Model Registry gibi merkezi bir depo model sürümlerini, takma adları (alias) ve modelin hangi çalıştırmadan çıktığını gösteren köken (lineage) bilgisini tutar.
  • Doğrulama: Google'a göre model, deploy edilmeden önce tahmin performansının bir referans değerden (baseline) iyi olduğu teyit edilerek doğrulanır.
  • Model serving: Model, REST API'li bir mikroservis, cihaza gömülü bir model ya da toplu tahmin sisteminin parçası olarak deploy edilir (API yazımız). Yeni sürüm genellikle önce A/B testinden ya da canary dağıtımından geçer.

İzleme: data drift, concept drift ve yeniden eğitim

Microsoft'a göre makine öğrenmesi sisteminin davranışı yalnız koddaki kurallara değil, veriden öğrenilene de bağlı. Veri dağılımındaki değişim, eğitim ile serving arasındaki fark (training-serving skew) ve kullanıcı davranışındaki değişim modeli eskitebilir. IBM'in tanımlarıyla:

  • Data drift (covariate shift): Girdi verisinin dağılımı değişir. Microsoft bunu, girdiyi eğitim verisiyle ya da yakın tarihli üretim verisiyle karşılaştırarak izliyor.
  • Concept drift: Girdiler ile hedef değişken arasındaki ilişki bozulur; öğrendiği tanımlar geçersiz kaldığı için model yanlış cevap vermeye başlar.

Microsoft izlemeye model üretime çıkar çıkmaz başlanmasını öneriyor. Google ise yeniden eğitimi tetikleyecek dört durum sayıyor: bir takvim, yeni eğitim verisi, performans düşüşü ve veri dağılımında belirgin değişim. Metrik ve uyarı altyapısını gözlemlenebilirlik yazımızda anlattık.

MLOps olgunluk düzeyleri

Google üç düzey tarif ediyor:

  1. Düzey 0, elle süreç: Her adım elle yapılır, yeni model sürümü yılda yalnızca birkaç kez deploy edilir ve tahminler loglanmaz.
  2. Düzey 1, pipeline otomasyonu: Eğitim pipeline'ı otomatikleşir ve model üretimde taze veriyle kendiliğinden eğitilir. Eğitimden önce veri, üretime almadan önce model doğrulanır.
  3. Düzey 2, CI/CD otomasyonu: Pipeline'ların kendisi, otomatik bir CI/CD sistemiyle hızlı ve güvenilir biçimde güncellenir; eğitilen model, model kaydına gönderilir.

Düzey 1 ile gelen kavram, Google'ın makine öğrenmesine özgü saydığı sürekli eğitim (continuous training, CT): modelin otomatik olarak yeniden eğitilip servis edilmesi. Microsoft'un olgunluk modeli ise aynı yolu, MLOps'un hiç olmadığı düzey 0'dan tam otomasyona kadar beş düzeye bölüyor.

MLOps ile DevOps ve CI/CD ilişkisi

MLOps, DevOps yazımızda anlattığımız uygulamaları genişletiyor. Google'a göre CI artık kodun yanında veriyi, veri şemalarını ve modelleri de test edip doğrulamak; CD ise tek bir paketi değil, eğitim pipeline'ını teslim etmek demek. AWS bu genişlemeyi sürekli entegrasyon, teslimat, eğitim ve izlemeden oluşan "continuous X" adıyla anıyor. Sürüm kontrolü de sonucu yeniden üretebilmek için veriye ve modele uzanıyor. Pipeline kurgusunu CI/CD yazımızda, DevOps ve IaC kavramlarını sözlüğümüzde anlattık; bu katmanı DevOps ve platform mühendisliği hizmetimizde ele alıyoruz.

Araçlar: MLflow, Kubeflow, Kubernetes ve GPU

Aşağıdaki araçlar yalnızca örnek:

  • MLflow: Belgelerinde kendini ajanlar (AI agent), LLM'ler ve modeller için açık kaynak bir yapay zekâ platformu olarak tanımlıyor.
  • Kubeflow: Belgelerine göre veri ve yapay zekâ iş yükleri için Kubernetes'e özgü stack'i oluşturan modüler, açık kaynak projelerden oluşuyor. Kubeflow Pipelines ile pipeline'lar Python SDK'sıyla yazılır ve container'larda çalışır.
  • KServe: Projeye göre modelleri servis etmek için Kubernetes'e özgü bir platform; tahmine dayalı iş yüklerinde sıfıra ölçeklemeyi ve canary dağıtımı destekliyor.

Ortak zemin Kubernetes. Kubernetes belgelerine göre pod'lar GPU'ya device plugin'ler üzerinden erişir, GPU yalnızca limits bölümünde istenir ve farklı GPU tipleri node etiketleriyle ayrılır (Kubernetes ve GPU yazılarımız). Container platformunun işletimini cloud-native platformlar, GPU ve model serving katmanının tasarımını AI stack tasarımı ve mühendisliği hizmetimizde ele alıyoruz.

Büyük dil modelleri için operasyon: GenAIOps

Microsoft'a göre üretken yapay zekâ için MLOps yatırımının, LLMOps diye de bilinen GenAIOps ile genişletilmesi gerekiyor. Klasik makine öğrenmesi belirli görevler için yeni model eğitmeye odaklanır; üretken yapay zekâ çözümlerinin birçoğu ise fine-tuning gerektirmeyen hazır temel modelleri kullanır. Ağırlık prompt'a ve bağlam verisinin (grounding data) yönetimine kayar; RAG yazımızda anlattığımız bilgi tabanı da pipeline'a girer. Microsoft'un izlenecekler listesinde gecikme, token kullanımı, 429 hataları, içerik güvenliği ve cevabın bağlama dayanması (groundedness) var (LLM yazımız).

Yönetişim ve izlenebilirlik

NIST'in 26 Ocak 2023'te yayımladığı AI RMF 1.0, gönüllü kullanım için hazırlanmış bir yapay zekâ risk yönetimi çerçevesi; çekirdeği GOVERN, MAP, MEASURE ve MANAGE işlevlerinden oluşuyor. Bazı alt kategorileri doğrudan MLOps'un işi:

  • MEASURE 2.1: Test setleri, metrikler ve kullanılan araçların ayrıntıları belgelenir.
  • MEASURE 2.4: Sistemin ve bileşenlerinin işlevi ve davranışı üretimde izlenir.
  • MANAGE 4.1: Devreye alma sonrası izleme planları uygulanır.

NIST'e göre eğitim verisinin kökenini (provenance) korumak şeffaflığı ve hesap verebilirliği destekler. Microsoft'un model yönetimindeki köken kaydı da modeli kimin yayımladığını, değişikliğin neden yapıldığını ve modelin ne zaman deploy edildiğini tutuyor. Yönetim sistemi yaklaşımını ISO/IEC 42001 yazımızda, kurumsal yol haritasını yapay zekâ yönetişimi yazımızda ele aldık.

Sık sorulan sorular

MLOps ne demek? Machine learning operations, yani makine öğrenmesi operasyonları demek: modelin geliştirilmesi, üretime alınması, izlenmesi ve yeniden eğitilmesi.

MLOps ile DevOps arasındaki fark nedir? DevOps kodu teslim eder; MLOps kodun yanında veriyi ve modeli de sürümler, test eder ve izler. Model veri değiştikçe eskidiği için sürekli eğitim (CT) de eklenir.

Inference (çıkarım) nedir? Eğitilmiş bir modelin yeni veri üzerinde tahmin ya da cevap üretmesidir. Gerçek zamanlı ya da toplu yapılabilir.

Data drift ile concept drift arasındaki fark nedir? Data drift'te girdi verisinin dağılımı değişir. Concept drift'te girdiler ile hedef arasındaki ilişki değişir ve model aynı girdiye artık yanlış cevap verir.

LLMOps nedir? Büyük dil modeli tabanlı uygulamaların işletimidir; Microsoft buna GenAIOps diyor. Odağında prompt'lar, bağlam verisi, değerlendirme ve içerik güvenliği var.

Kaynaklar