Yapay zekâ · Makale

Makine Öğrenimi Modelleri Nasıl Eğitilir, Optimize Edilir ve Devreye Alınır

Yayın:

Kısaca

Makine öğrenimi modelleri üç geniş aşamada oluşturulur: gradyan inişi gibi algoritmalar kullanılarak etiketli veriler üzerinde eğitim, hiperparametre ayarı ve bir tutma (holdout) test kümesine karşı doğrulama yoluyla optimizasyon, ve bir API, toplu iş (batch job) veya uç cihaza gömülü hizmet olarak üretime devreye alma. Her aşamayı, performans sapma gösterdiğinde yeniden eğitimi tetikleyebilen sürekli izleme takip eder.

Bu sürüm, özgün metnin (English) makine çevirisidir. Özgün metni oku

Bir spam filtresinden büyük bir dil modeline kadar her makine öğrenimi sistemi, bir kullanıcıya ulaşmadan önce aynı genel yörüngeden geçer: veri hazırlanır, model bu veri üzerinde eğitilir, performansı ölçülür ve ayarlanır ve son olarak sürekli gözlenmeye devam edileceği canlı bir ortama yayınlanır. Bulut sağlayıcıları ve mühendislik ekipleri bu yörüngeyi ML yaşam döngüsü olarak tanımlar ve model küçük bir sınıflandırıcı ya da milyarlarca parametreli bir ağ olsa da mekanikleri büyük ölçüde aynıdır.

Eğitim: bir model verilerden nasıl öğrenir

Google Cloud'un mimari belgelerine göre, yaşam döngüsü veri işleme ile başlar: ekipler verinin yapısını anlamak için keşifsel veri analizi yapar, veriyi temizler, eğitim, doğrulama ve test kümelerine böler ve verinin bir model için uygun bir formatta olması için özellik mühendisliği yapar. Veri bilimciler ancak bu hazırlıktan sonra algoritmaları uygular ve eğitime başlar.

GeeksforGeeks'in açıkladığına göre, özellikle sinir ağları için eğitim, birbirine bağlı iki tekniğe dayanır: ağın bir tahmin üretmek için girdi verisini işlediği ileri geçiş (forward pass) ve bu tahminin gerçek etiketten ne kadar uzak olduğunu ölçen bir kayıp fonksiyonu. Ardından geri yayılım (backpropagation), zincir kuralını kullanarak katman katman, her bir dahili parametrenin bu hataya ne kadar katkıda bulunduğunu hesaplar. Gradyan inişi, kaybı azaltacak yönde her parametreyi küçük adımlarla hareket ettirmek için hesaplanan bu gradyanları kullanır. GeeksforGeeks'e göre, bu ileri geçiş/geri geçiş/güncelleme döngüsü, model kayıp fonksiyonunun bir minimumuna yakınsayana kadar birçok epok (epoch) boyunca tekrarlanır.

Optimizasyon: modeli ayarlama ve doğrulama

Yalnızca eğitim, kullanılabilir bir model garanti etmez. Google Cloud'un belgeleri, ekiplerin en iyi performansı elde etmek için uygulanan algoritmalar üzerinde hiperparametre ayarı yaptığını, modelin kendi kendine öğrendiği parametreler yerine öğrenme hızı, parti (batch) boyutu veya epok sayısı gibi ayarları değiştirdiğini belirtiyor. Google'ın ML projelerini yönetme konusundaki geliştirici belgeleri, bu deneme aşamasının ekiplerin farklı özellik kombinasyonlarını, hiperparametre değerlerini ve model mimarilerini test ettikleri, çalışabilir bir kombinasyon bulmadan önce sıklıkla yüzlerce deney yürüttükleri aşama olduğunu ekliyor.

Bir aday model ortaya çıktığında, kalite metrikleri üretmek için bir tutma (holdout) test kümesi üzerinde — modelin eğitim sırasında görmediği veriler üzerinde — değerlendirilir. IBM bu adımı, görülmemiş veriler üzerinde doğruluk ve adalet gibi metrikler kullanılarak performansı değerlendirmek olarak tanımlıyor. Model ardından bir referans değere (baseline) karşı doğrulanır: Google Cloud'un belgeleri, bunun modelin dağıtıma geçmesine izin verilmeden önce öngörü performansının tanımlanmış bir eşikten daha iyi olduğunu doğruladığını belirtiyor.

Devreye alma: bir modeli üretime koymak

Devreye alma, doğrulanmış bir modelin gerçek veriler üzerinde tahminler yapmaya başladığı noktadır. Snowflake'in belgeleri, model devreye almayı, doğrulanmış bir modelin bağımlılıkları ve çıkarım (inference) mantığıyla birlikte, sürümlenebileceği, çalıştırılabileceği, izlenebileceği ve gerekirse geri alınabileceği bir üretim ortamına denetimli olarak yayınlanması olarak tanımlıyor.

Google Cloud ve Snowflake her ikisi de aşağıda özetlenen karşılaştırılabilir devreye alma kalıp kümelerini tanımlıyor.

Yaygın ML devreye alma kalıpları
KalıpNasıl çalışırTipik kullanım
Çevrimiçi / gerçek zamanlıBir mikroservis, modeli düşük gecikmeyle eşzamanlı olarak tahminler döndüren bir REST API üzerinden ortaya çıkarırDolandırıcılık tespiti, öneriler
Toplu (Batch)Model, bir zamanlamaya göre veya bir ardışık düzen (pipeline) olayı tarafından tetiklenerek büyük kayıt kümelerini puanlarRaporlar, periyodik puanlama işleri
Sunucusuz / asenkronModel bir olay tetikleyicisiyle çalışır ve sonuçlar anında değil, daha sonra alınırDalgalı veya uzun süreli çalışan iş yükleri
Uç / gömülüModel, merkezi bir sunucu yerine doğrudan yerel veya mobil bir cihazda çalışırÇevrimdışı çalışma, veri yerelliği gereksinimleri

Snowflake, her devreye alma stilinin kendi ödünleşimlerini taşıdığını belirtiyor: gerçek zamanlı sunum, gecikme, kullanılabilirlik ve ölçeklendirmenin dikkatli bir şekilde ele alınmasını gerektirirken, toplu sistemler yönetilmesi daha kolay ancak puanlama zamanlamasının ne sıklıkla çalıştığıyla sınırlıdır. Uç cihazda devreye alma gecikmeyi azaltır ve verileri yerelde tutar, ancak birçok dağıtılmış cihazda hangi model sürümünün çalıştığını takip etmeyi daha da zorlaştırır.

İzleme, sapma ve yeniden eğitim

Devreye alma, sürecin sonu değildir. IBM, sürekli gözetimin üretimdeki model performansını takip ettiğini, doğruluk sapması gibi sorunları tespit ettiğini ve hızlı müdahaleyi sağlayan ve güncellenmiş verilerle yeniden eğitimi tetikleyebilen uyarılar oluşturduğunu belirtiyor. Snowflake de benzer şekilde izleme ve sapma tespitini, yeni model yetersiz performans gösterirse önceki bir model sürümüne geri dönmek için önceden tanımlanmış tetikleyiciler ve sahiplik yapıları olan geri alma planlamasının yanı sıra temel devreye alma sorumlulukları olarak listeliyor.

Google Cloud'un belgeleri bunu bir olgunluk spektrumu olarak çerçeveliyor. En az otomatikleştirilmiş seviyede, veri hazırlamadan devreye almaya kadar her adım manueldir, bu da seyrek sürümleri olan erken aşama projeler için tipiktir. Daha olgun kurulumlar, verileri ve modelleri doğrulayan ve sapmayı tespit eden otomatik ardışık düzenler (pipeline) ekler ve en otomatikleştirilmiş kurulumlar, deneme, test etme, devreye alma ve izlemenin bağlantılı, büyük ölçüde otomatik aşamalar olarak çalışması için sürekli entegrasyon ve dağıtımı bütünleştirir.

Yaşam döngüsünün arkasındaki araçlar

IBM'in, MLOps olarak bilinen bu uygulamaya ilişkin genel bakışı, ekiplerin her aşamada genellikle güvendiği araç kategorilerini listeliyor: modelleri oluşturmak ve eğitmek için TensorFlow ve PyTorch gibi makine öğrenimi çerçeveleri, sürüm kontrolü için Git, ardışık düzen adımlarını otomatikleştirmek için Jenkins veya GitLab CI/CD gibi CI/CD platformları ve AWS, Azure veya IBM Cloud gibi bulut altyapısında eğitim, devreye alma ve izlemeyi orkestre etmek için Kubeflow veya MLflow gibi özel MLOps platformları.

MLOps, makine öğrenimi modelleri oluşturmak ve çalıştırmak için bir montaj hattı yaratmak üzere tasarlanmış bir dizi uygulamadır.

— IBM

Sorular

Bir makine öğrenimi modelini eğitmek ile optimize etmek arasındaki fark nedir?
Eğitim, bir modelin parametrelerini genellikle ileri geçişler, kayıp hesaplaması ve gradyan tabanlı güncellemeler yoluyla verilere uydurma sürecidir. Optimizasyon ise, Google Cloud'un belgelerine göre, eğitilmiş modelin performansını iyileştirmek için öğrenme hızı veya parti boyutu gibi eğitimden önce seçilen ayarları — hiperparametreleri — ayarlamayı ifade eder.
Hiperparametre ayarı gerçekte ne ayarlar?
Google'ın geliştirici belgelerine göre, eğitim sırasında verilerden öğrenilmeyen öğrenme hızı, parti boyutu veya eğitim epok sayısı gibi ayarları, en iyi performans gösteren modeli üreten kombinasyonu bulma hedefiyle ayarlar.
Bir model üretime nasıl devreye alınır?
Snowflake'in belgelerine göre, doğrulanmış bir model, bağımlılıkları ve çıkarım mantığıyla birlikte paketlenir ve bir üretim ortamına gerçek zamanlı bir API, toplu puanlama işi, sunucusuz bir tetikleyici veya bir uç cihazda gömülü bir model olarak yayınlanır.
Devreye alınan modellerin lansmandan sonra izlenmeye neden ihtiyacı vardır?
Üretim veri kalıpları zaman içinde değişebilir ve bu da bir modelin doğruluğunu düşürür — IBM bu olguyu sapma (drift) olarak adlandırıyor. Sürekli izleme bu bozulmayı tespit eder ve performansı geri kazanmak için güncellenmiş verilerle yeniden eğitimi tetikleyebilir.
ML yaşam döngüsü boyunca yaygın olarak hangi araçlar kullanılıyor?
IBM, eğitim için TensorFlow ve PyTorch gibi çerçeveleri, sürüm kontrolü için Git'i, ardışık düzen otomasyonu için Jenkins veya GitLab CI/CD'yi ve bulut platformlarında eğitim ve devreye almayı orkestre etmek için Kubeflow veya MLflow'u listeliyor.

Kaynaklar

  1. Google Cloud — MLOps: Continuous delivery and automation pipelines in machine learning
  2. IBM — What is MLOps?
  3. Snowflake — What Is Model Deployment in Machine Learning?
  4. Google Developers — ML development phases
  5. GeeksforGeeks — How Does Gradient Descent and Backpropagation Work Together?

Bu yazı yapay zekâ ile hazırlandı ve yayından önce otomatik kaynak denetiminden geçti. Bir hata görürseniz düzeltme isteyin. Düzeltme ya da cevap iste · Nasıl hazırlıyoruz

İlgili yazılar