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

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v1Python SDK azureml v1

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

Önemli

Bu makaledeki "önizleme" olarak işaretlenmiş öğeler şu anda genel önizleme aşamasındadır. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

MLOps nedir?

Machine Learning İşlemleri (MLOps), iş akışlarının verimliliğini artıran DevOps ilkelerini ve uygulamalarını temel alır. Örneğin, sürekli tümleştirme, teslim ve dağıtım. MLOps, makine öğrenmesi sürecine ş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

Azure Machine Learning'de MLOps

Azure Machine Learning aşağıdaki MLOps özelliklerini sağlar:

  • Yeniden üretilebilir ML işlem hatları oluşturun. Machine Learning işlem hatları, veri hazırlama, eğitim ve puanlama süreçleriniz için yinelenebilir ve yeniden kullanılabilir adımlar tanımlamanıza olanak sağlar.
  • Modelleri eğitip dağıtmak için yeniden kullanılabilir yazılım ortamları oluşturun.
  • Modelleri her yerden kaydedin, paketleyip dağıtın. Modeli kullanmak için gereken ilişkili meta verileri de izleyebilirsiniz.
  • Uçtan uca ML yaşam döngüsü için idare verilerini yakalayın. Günlüğe kaydedilen köken bilgileri, modelleri kimin yayımladığını, değişikliklerin neden yapıldığını ve modellerin üretim ortamında ne zaman dağıtıldığını veya kullanıldığını içerebilir.
  • ML yaşam döngüsündeki olayları bilgilendirin ve uyarın. Örneğin deneme tamamlama, model kaydı, model dağıtımı ve veri kayması algılama.
  • İşletimsel ve ML ile ilgili sorunlar için ML uygulamalarını izleyin. Eğitim ve çıkarım arasındaki model girişlerini karşılaştırın, modele özgü ölçümleri keşfedin ve ML altyapınızda izleme ve uyarılar sağlayın.
  • Azure Machine Learning ve Azure Pipelines ile uçtan uca ML yaşam döngüsünü otomatikleştirin. İşlem hatlarını kullanmak modelleri sık sık güncelleştirmenize, yeni modelleri test etmenizi ve yeni ML modellerini diğer uygulama ve hizmetlerinizle birlikte sürekli olarak kullanıma sunmanızı sağlar.

MLOps hakkında daha fazla bilgi için bkz . Machine Learning DevOps (MLOps).

Yeniden üretilebilir ML işlem hatları oluşturma

Model eğitim sürecinizde yer alan tüm adımları birleştirmek için Azure Machine Learning'deki ML işlem hatlarını kullanın.

ML işlem hattı, veri hazırlamadan özellik ayıklamaya, hiper parametre ayarlamadan model değerlendirmesine kadar olan adımları içerebilir. Daha fazla bilgi için bkz . ML işlem hatları.

ML işlem hatlarınızı oluşturmak için Tasarım Aracı kullanırsanız, istediğiniz zaman Tasarım Aracı sayfasının sağ üst kısmındaki "..." öğesine tıklayıp Kopyala'yı seçebilirsiniz. İşlem hattınızı kopyalama işlemi, eski sürümlerinizi kaybetmeden işlem hattı tasarımınızı yinelemenizi sağlar.

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

Azure Machine Learning ortamları, projelerinizin yazılım bağımlılıklarını geliştikçe izlemenize ve yeniden oluşturmanıza olanak tanır. Ortamlar, derlemelerin el ile yazılım yapılandırmaları olmadan yeniden üretilebilir olduğundan emin olmanıza olanak tanır.

Ortamlar projeleriniz için pip ve Conda bağımlılıklarını açıklar ve modellerin hem eğitimi hem de dağıtımı için kullanılabilir. Daha fazla bilgi için bkz . Azure Machine Learning ortamları nedir?

Modelleri her yerden kaydetme, paketleme ve dağıtma

ML modellerini kaydetme ve izleme

Model kaydı, modellerinizi Azure bulutunda, çalışma alanınızda depolamanıza ve sürüm oluşturmanıza olanak tanır. Model kayıt defteri, eğitilen modellerinizi düzenlemenizi ve izlemenizi kolaylaştırır.

Bahşiş

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, bunları 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 kayıtlı olan tüm dosyaları alabilirsiniz.

Kayıtlı modeller ad ve sürümle tanımlanır. Modeli var olan bir adla her kaydettiğinizde, kayıt defteri sürümü bir artırır. Kayıt sırasında ek meta veri etiketleri sağlanabilir. Bu etiketler daha sonra bir model aranırken kullanılır. Azure Machine Learning, Python 3.5.2 veya üzeri kullanılarak yüklenebilen tüm modelleri destekler.

Bahşiş

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

Etkin bir dağıtımda kullanılan kayıtlı modeli silemezsiniz. Daha fazla bilgi için Modelleri dağıtma'nın model kaydetme bölümüne bakın.

Önemli

Azure Machine Learning Studio'nun Modeller sayfasındaki Filtre ölçütü Tags seçeneğini kullanırken, müşterilerin kullanması TagName : TagValue (alan olmadan) kullanmaları TagName=TagValue gerekir

Modelleri paketleme ve hatalarını ayıklama

Bir modeli üretim ortamına dağıtmadan önce docker görüntüsüne paketlenmiş olur. Çoğu durumda, dağıtım sırasında arka planda otomatik olarak görüntü oluşturma gerçekleşir. Görüntüyü el ile belirtebilirsiniz.

Dağıtımla ilgili sorunlarla karşılaşırsanız, sorun giderme ve hata ayıklama için yerel geliştirme ortamınıza dağıtabilirsiniz.

Daha fazla bilgi için bkz . Modelleri dağıtma ve Dağıtım sorunlarını giderme.

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

Modelinizi Açık Sinir Ağı Değişimi'ne (ONNX) dönüştürmek performansı artırabilir. Ortalama olarak ONNX'e dönüştürmek 2 kat performans artışı sağlayabilir.

Azure Machine Learning ile ONNX hakkında daha fazla bilgi için ML modelleri oluşturma ve hızlandırma makalesine bakın.

Modelleri kullanma

Eğitilen makine öğrenmesi modelleri bulutta veya yerel olarak web hizmetleri olarak dağıtılır. Dağıtımlar çıkarım için CPU, GPU veya alan programlanabilir kapı dizileri (FPGA) kullanır. Power BI modellerini de kullanabilirsiniz.

Bir modeli web hizmeti olarak kullanırken aşağıdaki öğeleri sağlarsınız:

  • Hizmete/cihaza gönderilen verileri puanlarken kullanılan modeller.
  • Giriş betiği. Bu betik istekleri kabul eder, verileri puanlar ve bir yanıt döndürmek için modelleri kullanır.
  • Modellerin ve giriş betiğinin gerektirdiği pip ve Conda bağımlılıklarını açıklayan bir Azure Machine Learning ortamı.
  • Modeller ve giriş betiği için gereken metin, veri vb. ek varlıklar.

Ayrıca hedef dağıtım platformunun yapılandırmasını da sağlarsınız. Örneğin, Azure Kubernetes Service'e dağıtılırken VM ailesi türü, kullanılabilir bellek ve çekirdek sayısı.

Görüntü oluşturulduğunda Azure Machine Learning’e gereken bileşenler de eklenir. Örneğin, web hizmetini çalıştırmak için gereken varlıklar.

Batch puanlama

Toplu puanlama, ML işlem hatları aracılığıyla desteklenir. Daha fazla bilgi için bkz . Büyük verilerle ilgili toplu tahminler.

Gerçek zamanlı web hizmetleri

Modellerinizi web hizmetlerinde aşağıdaki işlem hedefleriyle kullanabilirsiniz:

  • Azure Container Instance
  • Azure Kubernetes Service
  • Yerel geliştirme ortamı

Modeli bir web hizmeti olarak 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. Örneğin, istekleri kabul eden ve modeli, conda bağımlılıklarını vb. çağıran bir betik.
  • Modelin nasıl ve nereye dağıtıldığını açıklayan dağıtım yapılandırması.

Daha fazla bilgi için bkz . Modelleri 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 (önizleme).

MLOps için gereken idare verilerini yakalama

Azure Machine Learning, meta verileri kullanarak tüm ML varlıklarınızın uçtan uca denetim kaydını izleme olanağı sunar.

  • Azure Machine Learning , kodunuzun hangi depodan / daldan / işlemeden geldiği bilgileri izlemek için Git ile tümleştirilir.
  • Azure Machine Learning Veri Kümeleri , verileri izlemenize, profil oluşturmanıza ve sürüm verilerinizi izlemenize yardımcı olur.
  • Yorumlanabilirlik , modellerinizi açıklamanıza, mevzuat uyumluluğunu karşılamanıza ve modellerin belirli bir giriş sonucuna nasıl ulaştığını anlamanıza olanak tanır.
  • Azure Machine Learning Çalıştırma 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 (bu deneme onu eğitmiştir, dağıtımları iyi durumdaysa dağıtıldığı yerdir).
  • Azure ile tümleştirme, ML yaşam döngüsündeki olaylar üzerinde işlem yapmanızı sağlar. Örneğin model kaydı, dağıtım, veri kayma ve eğitim (çalıştırma) olayları.

Bahşiş

Modeller ve veri kümeleri hakkında bazı bilgiler otomatik olarak yakalansa da, etiketleri kullanarak ek bilgiler ekleyebilirsiniz. Çalışma alanınızda kayıtlı modelleri ve veri kümelerini ararken etiketleri filtre olarak kullanabilirsiniz.

Bir veri kümesini kayıtlı bir modelle ilişkilendirmek isteğe bağlı bir adımdır. Model kaydederken veri kümesine başvurma hakkında bilgi için bkz . Model sınıfı başvurusu.

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

Azure Machine Learning, ML yaşam döngüsündeki olayları bildirmek ve otomatikleştirmek için kullanılabilen önemli olayları Azure Event Grid'de yayımlar. Daha fazla bilgi için lütfen bu belgeye bakın.

İşletimsel ve ML sorunlarını izleme

İzleme, modelinize hangi verilerin gönderildiğini ve bu verilerin döndürdüğü tahminleri anlamanıza olanak tanır.

Bu bilgiler, modelinizin nasıl kullanıldığını anlamanıza yardımcı olur. Toplanan giriş verileri, modelin gelecekteki sürümlerini eğiterken de yararlı olabilir.

Daha fazla bilgi için bkz . Model veri toplamayı etkinleştirme.

Modelinizi yeni verilerde yeniden eğitme

Genellikle, yeni bilgiler aldıkça modelinizi doğrulamak, güncelleştirmek, hatta sıfırdan yeniden eğitmek istersiniz. Bazen yeni veri almak, etki alanının beklenen bir parçasıdır. Diğer zamanlarda Veri kümelerinde veri kayması (önizleme) konusunda açıklandığı gibi model performansı, belirli bir algılayıcıda yapılan değişiklikler, mevsimsel etkiler gibi doğal veri değişiklikleri veya diğer özelliklere göre değişen özellikler gibi durumların karşısında düşebilir.

"Nasıl yaparım? yeniden eğitip eğitmememi biliyor musunuz?" sorusunun evrensel bir yanıtı yoktur, ancak daha önce açıklanan Azure Machine Learning olayı ve izleme araçları otomasyon için iyi başlangıç noktalarıdır. Yeniden eğitmeye karar verdikten sonra şunları yapmalısınız:

  • Yinelenebilir, otomatikleştirilmiş bir işlem kullanarak verilerinizi önceden işleme
  • Yeni modelinizi eğitin
  • Yeni modelinizin çıkışlarını eski modelinizin çıkışlarıyla karşılaştırın
  • Eski modelinizin değiştirilip değiştirilmeyeceğini seçmek için önceden tanımlanmış ölçütleri kullanma

Yukarıdaki adımların bir teması, yeniden eğitiminizin geçici değil otomatik olması gerektiğidir. Azure Machine Learning işlem hatları veri hazırlama, eğitim, doğrulama ve dağıtımla ilgili iş akışları oluşturmak için iyi bir yanıttır. İşlem hatlarının ve Azure Machine Learning tasarımcısının yeniden eğitme senaryosuna nasıl uyum sağlayıp sağlamadiğini görmek için Azure Machine Learning tasarımcısıyla modelleri yeniden eğitme bölümünü okuyun.

ML 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, bir Veri Bilimci proje için Git deposundaki bir değişikliği denetlediğinde Azure Pipeline bir eğitim çalıştırması başlatır. Daha sonra çalıştırılan modelin performans özelliklerini görmek için çalıştırmanın sonuçları incelenebilir. Modeli web hizmeti olarak dağıtan bir işlem hattı da oluşturabilirsiniz.

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

  • Hizmet bağlantısı tanımlarken ç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 Machine Learning ile Azure Pipelines'ı kullanma hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:

Ayrıca Azure Data Factory'yi kullanarak verileri eğitimle birlikte kullanıma hazırlayan bir veri alımı işlem hattı oluşturabilirsiniz. Daha fazla bilgi için bkz . Veri alımı işlem hattı.

Sonraki adımlar

Aşağıdaki kaynakları okuyarak ve keşfederek daha fazla bilgi edinin: