Aracılığıyla paylaş


Kavramlar - Yapay zeka ve makine öğrenmesi iş akışları için makine öğrenmesi işlemleri (MLOps)

Bu makalede, ne tür uygulamaların ve araçların dahil olduğu ve Azure Kubernetes Service'te (AKS) yapay zeka ve makine öğrenmesi iş akışlarınızı nasıl basitleştirip hızlandırabileceği de dahil olmak üzere makine öğrenmesi işlemleri (MLOps) hakkında bilgi edineceksiniz.

MLOps nedir?

Makine öğrenmesi işlemleri (MLOps), veri bilimciler, BT operasyonları ve iş paydaşları arasında işbirliğini kolaylaştıran ve makine öğrenmesi modellerinin verimli bir şekilde geliştirilmesini, dağıtılmasını ve bakımının yapılmasını sağlayan uygulamaları kapsar. MLOps, makine öğrenmesi projelerine DevOps ilkeleri uygulayarak uçtan uca makine öğrenmesi yaşam döngüsünü otomatikleştirmeyi ve kolaylaştırmayı amaçlar. Bu yaşam döngüsü modelleri eğitme, paketleme, doğrulama, dağıtma, izleme ve yeniden eğitme işlemlerini içerir.

MLOps, birlikte etkili bir şekilde çalışmak için birden çok rol ve araç gerektirir. Veri bilimciler modeli eğitmekle ilgili görevlere odaklanır ve bu görevler iç döngü olarak adlandırılır. Makine öğrenmesi mühendisleri ve BT operasyon ekipleri dış döngünün üstesinden gelir ve burada modelleri paketlemek, doğrulamak, dağıtmak ve izlemek için DevOps uygulamaları uygular. Modelin ince ayara veya yeniden eğitmeye ihtiyacı olduğunda, işlem iç döngüye geri döner.

MLOps işlem hattı

MLOps işlem hattınız sıralı veya paralel olarak dağıtılan çeşitli araçlardan ve mikro hizmetlerden yararlanabilir. Aşağıda, ek yükü azaltmak ve daha hızlı yinelemeye olanak sağlamak için aşağıdaki en iyi yöntemlerin uygulanmasından yararlanan işlem hattınızdaki temel bileşenlere örnekler verilmiştir:

  • Uygulamanıza akan yeni veriler için yapılandırılmamış veri deposu
  • Yapılandırılmış, önceden işlenmiş verileri depolamak ve sorgulamak için vektör veritabanı
  • Veri alımı ve dizin oluşturma çerçevesi
  • Vektör alımı ve/veya model yeniden eğitme iş akışları
  • Ölçüm toplama ve uyarı araçları (izleme modeli performansı, alınan veri hacmi vb.)
  • Yaşam döngüsü yönetim araçları

DevOps ve MLOps

DevOps, güçlü ve yeniden üretilebilir uygulamalar oluşturmanıza olanak tanıyan araçlar ve uygulamaların bir birleşimidir. DevOps'u kullanmanın amacı, son kullanıcılarınıza hızla değer sunmaktır. MlOps'un birincil hedefi, son kullanıcılara değer sunmak için güçlü ve yeniden üretilebilir modeller oluşturmak, dağıtmak ve izlemektir.

MLOps için temel olan üç işlem vardır:

  • Keşif veri analizi (EDA), özellik mühendisliği ve model eğitimi ve ayarlama dahil olmak üzere veri bilimcilerinin sorumlu olduğu makine öğrenmesi iş yükleri .
  • Modeli dağıtım için planlama, geliştirme, test etme ve paketleme gibi yazılım geliştirme uygulamaları .
  • Üretimde modeli dağıtma ve korumanın, kaynakları serbest bırakma, yapılandırma ve modeli izleme gibi operasyonel yönleri.

MLOps için geçerli olan DevOps ilkeleri

MLOps, makine öğrenmesi yaşam döngüsünü geliştirmek için otomasyon, sürekli tümleştirme ve teslim (CI/CD), kaynak denetimi, Çevik planlama ve kod olarak altyapı (IaC) gibi çeşitli ilkelerden yararlanır.

Otomasyon

Görevleri otomatikleştirerek el ile yapılan hataları azaltabilir, verimliliği artırabilir ve ML yaşam döngüsü boyunca tutarlılık sağlayabilirsiniz. Otomasyon, veri toplama, model eğitimi, dağıtım ve izleme gibi çeşitli aşamalara uygulanabilir. Otomasyon aracılığıyla, kuruluşunuzun ilkelerine veri uyumluluğu sağlamak için yapay zeka işlem hattında proaktif ölçüler de uygulayabilirsiniz.

Örneğin işlem hattınız şunları otomatikleştirebilir:

  • Düzenli zaman aralıklarında veya uygulamanızda belirli miktarda yeni veri toplandığında model ayarlama/yeniden eğitme.
  • Farklı bir veri alt kümesinde ince ayar yapmaya veya yeniden eğitmeye başlamak için performans düşüşü algılama.
  • Güvenli güvenlik uygulamalarından emin olmak için dış kapsayıcı kayıt defterlerinden çekilen temel kapsayıcı görüntülerinde yaygın güvenlik açığı ve açığa çıkarma (CVE) taraması.

Sürekli tümleştirme (CI)

Sürekli tümleştirme, model geliştirme sürecinin oluşturma ve doğrulama yönlerini kapsar. CI'nin amacı kodu oluşturmak ve dağıtımdan önce kodun ve modelin kalitesini doğrulamaktır. Bu, modelin beklendiği gibi çalıştığından ve kalite standartlarını karşıladığından emin olmak için bir dizi örnek veri kümesi üzerinde test içerir.

MLOps'ta CI şunları içerebilir:

  • Jupyter not defterlerindeki keşif kodunu Python veya R betiklerine yeniden düzenleme.
  • Eksik veya hata değerleri için yeni giriş verileri doğrulanıyor.
  • Uçtan uca işlem hattında birim testi ve tümleştirme testi.

Lint ve birim testi gerçekleştirmek için Azure DevOps'ta Azure Pipelines veya GitHub Actions gibi otomasyon araçlarını kullanabilirsiniz.

Sürekli teslim (CD)

Sürekli teslim, bir modeli üretimde güvenli bir şekilde dağıtmak için gereken adımları içerir. İlk adım, modeli geliştirme ve test ortamları gibi üretim öncesi ortamlarda paketlemek ve dağıtmaktır. Parametrelerin, hiper parametrelerin ve diğer model yapıtlarının taşınabilirliği, kodu bu ortamlar aracılığıyla yükselttikçe bakımın önemli bir yönüdür. Bu taşınabilirlik, özellikle büyük dil modelleri (LLM' ler) ve kararlı difüzyon modelleri söz konusu olduğunda önemlidir. Model birim testlerini ve kalite güvencesi (QA) testlerini geçtikten sonra üretim ortamında dağıtım için onaylayabilirsiniz.

Kaynak denetimi

Kaynak denetimi veya sürüm denetimi, kod ve modellerde yapılan değişiklikleri yönetmek için gereklidir. Ml sisteminde bu, işlevsel ekiplerin zaman içinde etkili bir şekilde işbirliği yapmasına ve değişiklikleri izlemesine olanak tanıyan veri sürümü oluşturma, kod sürümü oluşturma ve model sürümü oluşturma anlamına gelir. Azure DevOps'taki Azure Depoları veya GitHub deposu gibi Git tabanlı bir kaynak denetim sistemi kullanmak, program aracılığıyla değişikliklerin geçmişini tutmanızı, önceki sürümlere dönmenizi ve farklı denemeler için dalları yönetmenizi sağlar.

Çevik planlama

Çevik planlama, belirli görevleri tamamlamak için kısa zaman çerçeveleri olan sprint'lerde işi yalıtma işlemini içerir. Bu yaklaşım, ekiplerin değişikliklere hızlı bir şekilde uyum sağlamasına ve modele artımlı iyileştirmeler sunmasına olanak tanır. Model eğitimi devam eden bir süreç olabilir ve Çevik planlama projenin kapsamını belirlemeye ve ekip uyumluluğunun daha iyi olmasını sağlamaya yardımcı olabilir.

Çevik planlamanızı yönetmek için Azure DevOps'ta Azure Boards veya GitHub sorunları gibi araçları kullanabilirsiniz.

Kod olarak altyapı (IaC)

Modellerinizi eğitmek, dağıtmak ve sunmak için gereken altyapıyı yinelemek ve otomatikleştirmek için kod olarak altyapıyı kullanırsınız. Ml sisteminde IaC, koddaki belirli iş türü için gereken uygun Azure kaynaklarını basitleştirmeye ve tanımlamaya yardımcı olur ve kod bir depoda tutulur. Bu, altyapınızı sürüm denetiminize ve gerektiğinde kaynak iyileştirme, maliyet verimliliği vb. için değişiklikler yapmanıza olanak tanır.

Sonraki adımlar

AKS'deki akıllı uygulamalarınızda MLOps için en iyi yöntemler hakkında bilgi edinmek için aşağıdaki makalelere göz atın: