MLOps: Azure Machine Learning ile model yönetimi, dağıtımı ve izleme

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Bu makalede, modellerinizin yaşam döngüsünü yönetmek amacıyla Azure Machine Learning'deki makine öğrenmesi işlemleri (MLOps) uygulamaları hakkında bilgi edinin. MLOps uygulamalarını uygulamak, makine öğrenmesi çözümlerinizin kalitesini ve tutarlılığını artırabilir.

MLOps nedir?

MLOps, iş akışlarının verimliliğini artıran DevOps ilkelerini ve uygulamalarını temel alır. Bu ilkeler sürekli tümleştirme, teslim ve dağıtımdır. MLOps, makine öğrenmesi yaşam döngüsüne şu ilkeleri uygular:

  • Modellerin daha hızlı deneme ve geliştirmesi.
  • Modellerin üretime daha hızlı dağıtımı.
  • Kalite güvencesi ve uçtan uca köken izleme.

MLOps, makine öğrenmesi işlemi için aşağıdaki özellikleri sağlar:

  • Yeniden üretilebilir makine öğrenmesi işlem hatları oluşturun. Veri hazırlama, eğitim ve puanlama süreçlerinizde yinelenebilir ve yeniden kullanılabilir adımlar tanımlamak için makine öğrenmesi işlem hatlarını kullanın.
  • Yeniden kullanılabilir yazılım ortamları oluşturun. Modelleri eğitip dağıtmak için bu ortamları kullanın.
  • Modelleri her yerden kaydedin, paketleyip dağıtın. Model kullanmak için gereken ilişkili meta verileri izleyin.
  • Uçtan uca makine öğrenmesi yaşam döngüsü için idare verilerini yakalayın. Günlüğe kaydedilen köken bilgileri, modelleri kimin yayımladığını ve değişikliklerin neden yapıldığını içerebilir. Ayrıca modellerin ne zaman dağıtıldığını veya üretimde kullanıldığını da içerebilir.
  • Makine öğrenmesi yaşam döngüsündeki olayları bilgilendirin ve uyarın. Olaylar deneme tamamlama, model kaydı, model dağıtımı ve veri kayması algılamayı içerir.
  • İşletimsel ve makine öğrenmesi ile ilgili sorunlar için makine öğrenmesi uygulamalarını izleyin. Eğitim ve çıkarım arasındaki model girişlerini karşılaştırın. Modele özgü ölçümleri keşfedin. Makine öğrenmesi altyapınızda izleme ve uyarılar sağlayın.
  • Makine öğrenmesi ve Azure işlem hatları ile uçtan uca makine öğrenmesi yaşam döngüsünü otomatikleştirin. Modelleri sık sık test etmek ve güncelleştirmek için işlem hatlarını kullanın. Yeni makine öğrenmesi modellerini diğer uygulama ve hizmetlerinizle birlikte sürekli olarak kullanıma sunabilirsiniz.

MLOps hakkında daha fazla bilgi için bkz . Makine öğrenmesi işlemleri.

Yeniden üretilebilir makine öğrenmesi işlem hatları oluşturma

Model eğitim sürecinizdeki tüm adımları birleştirmek için Azure Machine Learning işlem hatlarını kullanın. Makine öğrenmesi işlem hattı veri hazırlama, özellik ayıklama, hiper parametre ayarlama ve model değerlendirme gibi adımları içerebilir.

Makine öğrenmesi işlem hattı oluşturmak için Azure Machine Learning tasarımcısını kullanırsanız, eski sürümlerinizi kaybetmeden tasarımını yinelemek için işlem hattını kopyalayabilirsiniz. Tasarımcıda herhangi bir zamanda işlem hattını kopyalamak için sağ üst köşeye gidip ...>Kopyala'yı seçin.

Azure Machine Learning işlem hatları hakkında daha fazla bilgi için bkz . Machine learning işlem hatları.

Yeniden kullanılabilir yazılım ortamları oluşturma

Azure Machine Learning ortamlarını kullanarak, projelerinizin yazılım bağımlılıklarını geliştikçe izleyebilir ve yeniden oluşturabilirsiniz. Derlemelerin el ile yazılım yapılandırmaları olmadan yeniden üretilebilir olmasını sağlamak için ortamları kullanabilirsiniz.

Ortamlar, projeleriniz için pip ve conda bağımlılıklarını açıklar. Model eğitimi ve dağıtımı için ortamları kullanabilirsiniz. Ortamlar hakkında daha fazla bilgi için bkz . Azure Machine Learning ortamları nedir?.

Modelleri her yerden kaydetme, paketleme ve dağıtma

Aşağıdaki bölümlerde modelleri kaydetme, paketleme ve dağıtma işlemleri açıklanmıştır.

Makine öğrenmesi modellerini kaydetme ve izleme

Model kaydı ile modellerinizi Azure bulutunda, çalışma alanınızda depolayabilir ve sürüm oluşturabilirsiniz. Model kayıt defteri, eğitilen modellerinizi düzenlemenizi ve izlemenizi kolaylaştırır.

Kayıtlı model, modelinizi oluşturan bir veya daha fazla dosya için mantıksal bir kapsayıcıdır. Örneğin, birden çok dosyada depolanan bir modeliniz varsa, dosyaları Azure Machine Learning çalışma alanınıza tek bir model olarak kaydedebilirsiniz. Kayıt sonrasında kayıtlı modeli indirebilir veya dağıtabilir ve tüm bileşen dosyalarını alabilirsiniz.

Kayıtlı modelleri ada ve sürüme göre tanımlayabilirsiniz. Mevcut bir modelle aynı ada sahip bir modeli her kaydettiğinizde, kayıt defteri sürüm numarasını artırır. Kayıt sırasında meta veri etiketleri sağlayabilir ve model ararken bu etiketleri kullanabilirsiniz. Azure Machine Learning, Python 3.5.2 veya üzeri kullanılarak yüklenebilen tüm modelleri destekler.

İpucu

Ayrıca Azure Machine Learning dışında eğitilen modelleri de kaydedebilirsiniz.

Önemli

  • Azure Machine Learning stüdyosu'nin Modeller sayfasındaki FiltreTags ölçütü seçeneğini kullandığınızda, TagName : TagValueboşluk olmadan kullanınTagName=TagValue.
  • Etkin dağıtımda kullanılan kayıtlı bir modeli silemezsiniz.

Azure Machine Learning'de modelleri kullanma hakkında daha fazla bilgi için bkz . Azure Machine Learning'de modellerle çalışma.

Modelleri paketleme ve hatalarını ayıklama

Bir modeli üretime dağıtmadan önce docker görüntüsüne paketlenmesi gerekir. Çoğu durumda, görüntü oluşturma işlemi dağıtım sırasında arka planda otomatik olarak gerçekleşir; ancak, görüntüyü el ile belirtebilirsiniz.

Buluta dağıtmadan önce sorun giderme ve hata ayıklama için önce yerel geliştirme ortamınıza dağıtmanız yararlı olur. Bu uygulama, Azure Machine Learning dağıtımınızla ilgili sorun yaşamamanıza yardımcı olabilir. Yaygın dağıtım sorunlarını çözme hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktaların sorunlarını giderme.

Modelleri dönüştürme ve iyileştirme

Performansı geliştirmek için modelinizi Açık Sinir Ağı Değişimi'ne (ONNX) dönüştürebilirsiniz. Genellikle ONNX'e dönüştürme iki kat performansa neden olabilir.

Machine Learning ile ONNX hakkında daha fazla bilgi için bkz . Makine öğrenmesi modelleri oluşturma ve hızlandırma.

Modelleri dağıtma

Eğitilen makine öğrenmesi modellerini bulutta veya yerel olarak uç nokta olarak dağıtabilirsiniz. Dağıtımlarda çıkarım için CPU ve GPU kullanılır.

Bir modeli uç nokta olarak dağıtırken aşağıdaki öğeleri sağlamanız gerekir:

  • Hizmete veya cihaza gönderilen verileri puanlarken kullanılan model .
  • Giriş betiği1. Bu betik istekleri kabul eder, verileri puanlarken modelleri kullanır ve bir yanıt döndürür.
  • Modellerin ve giriş betiğinin gerektirdiği pip ve conda bağımlılıklarını açıklayan bir ortam2.
  • Modeller ve giriş betiği için gerekli olan metin ve veriler gibi diğer varlıklar.

Ayrıca hedef dağıtım platformunun yapılandırmasını da sağlarsınız. Örneğin, sanal makine (VM) ailesi türü, kullanılabilir bellek ve çekirdek sayısı. Görüntü oluşturulduğunda, Web hizmetini çalıştırmak için gereken varlıklar gibi Azure Machine Learning tarafından gereken bileşenler de eklenir.

1,2 MLflow modeli dağıtırken, puanlama betiği olarak da bilinen bir giriş betiği sağlamanız gerekmez. Ayrıca dağıtım için bir ortam sağlamanız gerekmez. MLflow modellerini dağıtma hakkında daha fazla bilgi için bkz . MLflow modellerini dağıtma yönergeleri.

Batch puanlama

Toplu puanlama toplu iş uç noktaları aracılığıyla desteklenir. Toplu puanlama hakkında daha fazla bilgi için bkz . Batch uç noktaları.

Gerçek zamanlı puanlama

Modellerinizi gerçek zamanlı puanlama için çevrimiçi bir uç noktayla kullanabilirsiniz. Çevrimiçi uç noktalar aşağıdaki işlem hedeflerini kullanabilir:

  • Yönetilen çevrimiçi uç noktalar
  • Azure Kubernetes Service
  • Yerel geliştirme ortamı

Bir modeli uç noktaya dağıtmak için aşağıdaki öğeleri sağlamanız gerekir:

  • Model veya model grubu.
  • Modeli kullanmak için gereken bağımlılıklar. Örnekler, istekleri kabul eden ve model ile conda bağımlılıklarını çağıran bir betiktir.
  • Modelin nasıl ve nereye dağıtıldığını açıklayan dağıtım yapılandırması.

Gerçek zamanlı puanlama için dağıtım hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktaları dağıtma.

Çevrimiçi uç noktalar için denetimli dağıtım

Çevrimiçi uç noktaya dağıtım yaparken, aşağıdaki senaryoları etkinleştirmek için denetimli dağıtımı kullanabilirsiniz:

  • Dağıtım için bir uç noktanın birden çok sürümünü oluşturun.
  • Trafiği uç nokta içindeki farklı dağıtımlara yönlendirerek A/B testi gerçekleştirin.
  • Uç nokta yapılandırmasındaki trafik yüzdesini güncelleştirerek uç nokta dağıtımları arasında geçiş yapın.

Denetimli dağıtım kullanarak dağıtım hakkında daha fazla bilgi için bkz . Gerçek zamanlı çıkarım için yeni dağıtımları güvenli bir şekilde dağıtma.

Analiz

Microsoft Power BI, veri analizi için makine öğrenmesi modellerinin kullanılmasını destekler. Daha fazla bilgi için bkz . Power BI'da Azure Machine Learning tümleştirmesi.

MLOps için gereken idare verilerini yakalama

Azure Machine Learning, meta verileri kullanarak tüm makine öğrenmesi varlıklarınızın uçtan uca denetim kaydını izleme olanağı sunar. Örneğin:

  • Azure Machine Learning veri varlıkları , verileri izlemenize, profil oluşturmanıza ve sürüm verilerinizi izlemenize yardımcı olur.
  • Model yorumlanabilirliği modellerinizi açıklamanıza, mevzuat uyumluluğunu karşılamanıza ve modellerin belirli bir giriş için nasıl sonuç elde ettiğinizi anlamanıza olanak tanır.
  • Azure Machine Learning İş geçmişi, modeli eğitmek için kullanılan kodun, verilerin ve işlemlerin anlık görüntüsünü depolar.
  • Azure Machine Learning model kayıt defteri , modelinizle ilişkili tüm meta verileri yakalar. Örneğin, modeli eğiten deneme, modelin dağıtıldığı yer ve modelin dağıtımlarının iyi durumda olup olmadığı.
  • Azure ile tümleştirme, makine öğrenmesi yaşam döngüsünde model kaydı, dağıtım, veri kayması ve eğitim (iş) olayları gibi olaylar üzerinde işlem yapmanızı sağlar.

İpucu

Modeller ve veri varlıklarıyla ilgili bazı bilgiler otomatik olarak yakalanırken, etiketleri kullanarak daha fazla bilgi ekleyebilirsiniz. Çalışma alanınızda kayıtlı modelleri ve veri varlıklarını aradığınızda, etiketleri filtre olarak kullanabilirsiniz.

Makine öğrenmesi yaşam döngüsündeki olayları bildirme, otomatikleştirme ve uyarı verme

Azure Machine Learning, makine öğrenmesi yaşam döngüsündeki olayları bildirmek ve otomatikleştirmek için kullanılabilen önemli olayları Azure Event Grid'de yayımlar. Azure Machine Learning olaylarını temel alarak olay odaklı işlemleri ayarlama hakkında daha fazla bilgi için bkz . Özel CI/CD ve olay temelli iş akışları.

Makine öğrenmesi yaşam döngüsünü otomatikleştirme

Modeli eğiten sürekli bir tümleştirme işlemi oluşturmak için GitHub ve Azure Pipelines'ı kullanabilirsiniz. Tipik bir senaryoda, veri bilimcisi projenin Git deposundaki bir değişikliği denetlediğinde Azure Pipelines bir eğitim işi başlatır. Daha sonra işin sonuçları, eğitilen modelin performans özelliklerini görmek için incelenebilir. Modeli web hizmeti olarak dağıtan bir işlem hattı da oluşturabilirsiniz.

Machine Learning uzantısı, Azure Pipelines ile çalışmayı kolaylaştırır. Uzantı, Azure Pipelines'da aşağıdaki iyileştirmeleri sağlar:

  • Bir hizmet bağlantısı tanımladığınızda çalışma alanı seçimini etkinleştirir.
  • Yayın işlem hatlarının bir eğitim işlem hattında oluşturulan eğitilmiş modeller tarafından tetiklenmelerini sağlar.

Azure Pipelines'ı Machine Learning ile kullanma hakkında daha fazla bilgi için bkz . Azure Pipelines'ı Azure Machine Learning ile kullanma.