Azure Machine Learning ile MLOps model yönetimi
ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)
Bu makalede, Azure Machine Learning'in modellerinizin yaşam döngüsünü yönetmek için makine öğrenmesi işlemlerini (MLOps) nasıl kullandığı açıklanmaktadır. MLOps uygulamalarını uygulamak, makine öğrenmesi çözümlerinizin kalitesini ve tutarlılığını artırabilir.
MLOps, sürekli tümleştirme, sürekli dağıtım ve sürekli teslim gibi iş akışlarının verimliliğini artıran DevOps ilkelerini ve uygulamalarını temel alır. Bu ilkelerin makine öğrenmesi yaşam döngüsüne uygulanması aşağıdakilere neden olur:
- Daha hızlı deneme ve model geliştirme.
- Modellerin üretime daha hızlı dağıtımı.
- Daha iyi kalite güvencesi ve uçtan uca köken takibi.
MLOps özellikleri
MLOps, makine öğrenmesi işlemi için aşağıdaki özellikleri sağlar:
- Veri hazırlama, eğitim ve puanlama süreçleri için yinelenebilir ve yeniden kullanılabilir adımlar tanımlamak için yeniden üretilebilir makine öğrenmesi işlem hatları oluşturun.
- Modelleri eğitip dağıtmak için yeniden kullanılabilir yazılım ortamları oluşturun.
- Modelleri her yerden kaydedin, paketleyip dağıtın ve model kullanmak için gereken ilişkili meta verileri izleyin.
- Modelleri kimin yayımladığı, değişikliklerin neden yapıldığı ve modellerin üretim ortamında ne zaman dağıtıldığı veya kullanıldığı gibi makine öğrenmesi yaşam döngüsü idaresi için günlük kökeni verileri.
- Deneme tamamlama, model kaydı, model dağıtımı ve veri kayması algılama gibi makine öğrenmesi yaşam döngüsü olaylarını bilgilendirin ve uyarın.
- Model girişlerini karşılaştırarak, modele özgü ölçümleri keşfederek ve makine öğrenmesi altyapısındaki izleme ve uyarıları görüntüleyerek operasyonel ve makine öğrenmesi ile ilgili sorunları izleyin.
- Yeni makine öğrenmesi modellerini sürekli test etmek, güncelleştirmek ve piyasaya çıkarmak için makine öğrenmesi işlem hatlarını ve Azure Pipelines'ı kullanarak uçtan uca makine öğrenmesi yaşam döngüsünü otomatikleştirin.
MLOps hakkında daha fazla bilgi için bkz . Makine öğrenmesi işlemleri.
Yeniden üretilebilir makine öğrenmesi işlem hatları
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ı adımları veri hazırlama, özellik ayıklama, hiper parametre ayarlama ve model değerlendirmeyi içerebilir.
Azure Machine Learning stüdyosu Tasarımcısı'nda, eski sürümlerinizi kaybetmeden tasarımını yinelemek için bir işlem hattını kopyalayabilirsiniz. Tasarımcı'da herhangi bir zamanda bir işlem hattını kopyalamak için üst menü çubuğundan 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ı
Azure Machine Learning ortamları, el ile yazılım yapılandırmaları kullanmadan derlemelerin yeniden üretilebilir olmasını sağlar. Ortamlar projeleriniz için pip ve conda yazılım bağımlılıklarını izleyebilir ve yeniden oluşturabilir.
Model eğitimi ve dağıtımı için ortamları kullanabilirsiniz. Ortamlar hakkında daha fazla bilgi için bkz . Azure Machine Learning ortamları.
Model kaydı, paketleme ve dağıtım
Azure Machine Learning, modelleri kaydetmek, paketlemek ve dağıtmak için MLOps'yi her yerden kullanabilir.
Modelleri kaydetme ve izleme
Model kaydı, modellerinizi Azure bulutundaki Azure Machine Learning çalışma alanınızda depolar ve sürümler. 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, modeliniz birden çok dosyada depolanıyorsa, 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.
Ayrıca Azure Machine Learning dışında eğitilen modelleri de kaydedebilirsiniz. Azure Machine Learning, Python 3.5.2 veya üzeri kullanılarak yüklenebilen tüm modelleri destekler.
Kayıtlı modelleri ada ve sürüme göre tanımlarsınız. 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 aramak için bu etiketleri kullanabilirsiniz.
Önemli
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ğıtmak için önce docker görüntüsüne paketlemeniz gerekir. Çoğu durumda, görüntü oluşturma işlemi dağıtım sırasında otomatik olarak arka planda 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.
Azure Machine Learning ile ONNX hakkında daha fazla bilgi için bkz . Makine öğrenmesi modelleri oluşturma ve hızlandırma.
Modelleri uç nokta olarak dağıtma
Eğitilen makine öğrenmesi modellerini yerel olarak veya bulutta uç nokta olarak dağıtabilirsiniz. Dağıtımlarda çıkarım için CPU'lar ve GPU'lar kullanılır.
Modeli uç nokta olarak dağıtmak için aşağıdaki bilgileri sağlamanız gerekir:
- Hizmete veya cihaza gönderilen verileri puanlarken kullanılan model .
- puanlama betiği olarak da adlandırılan ve istekleri kabul eden, verileri puanlamak için modelleri kullanan ve bir yanıt döndüren bir giriş betiği.
- Modellerin ve giriş betiğinin gerektirdiği pip ve conda bağımlılıklarını açıklayan bir ortam.
- Model ve giriş betiği için gerekli olan metin ve veri gibi diğer varlıklar.
Önemli
Bir MLflow modeli dağıtırken, dağıtım için bir giriş betiği veya ortam sağlamanız gerekmez. MLflow modellerini dağıtma hakkında daha fazla bilgi için bkz . MLflow modellerini dağıtma yönergeleri.
Ayrıca sanal makine (VM) ailesi türü, kullanılabilir bellek ve çekirdek sayısı gibi hedef dağıtım platformunun yapılandırmasını da sağlarsınız. Azure Machine Learning görüntüyü oluşturduğunda, web hizmetini çalıştırmak için gereken varlıklar gibi ihtiyaç duyduğu tüm bileşenleri de ekler.
Toplu iş uç noktalarıyla toplu puanlama
Toplu puanlama toplu iş uç noktaları aracılığıyla desteklenir. Toplu puanlama hakkında daha fazla bilgi için bkz . Batch uç noktaları.
Çevrimiçi uç noktalarla gerçek zamanlı puanlama
Gerçek zamanlı puanlama için modellerinizi çevrimiçi uç noktalarla kullanabilirsiniz. Çevrimiçi uç noktaların işlem hedefleri yerel geliştirme ortamları, yönetilen çevrimiçi uç noktalar veya Azure Kubernetes Service (AKS) olabilir.
Bir modeli çevrimiçi uç noktaya dağıtmak için aşağıdaki bilgileri sağlamanız gerekir:
- Model veya model grubu.
- Modeli kullanmak için gereken bağımlılıklar, örneğin istekleri kabul eden ve model ile conda bağımlılıklarını çağıran bir betik.
- 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 bir uç noktaya dağıttığınızda, 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.
Makine öğrenmesi yaşam döngüsü idaresi için meta veriler
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 iş 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 kaydı , modelinizle ilişkili tüm meta verileri yakalar. Örneğin, modeli eğiten deneme, modelin dağıtıldığı yer ve model dağıtımlarının iyi durumda olup olmadığı.
- Azure ile tümleştirme, makine öğrenmesi yaşam döngüsündeki model kaydı, dağıtım, veri kayması ve eğitim işi olayları gibi olaylar üzerinde işlem yapmanıza olanak tanır.
Modeller ve veri varlıklarıyla ilgili bazı bilgiler otomatik olarak yakalanır, ancak 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.
Not
Azure Machine Learning stüdyosu'in Modeller sayfasındaki Filtre ölçütü seçeneğindeki Etiketler'i kullandığınızda yerine boşluk TagName : TagValue
kullanmadan kullandığınızdan TagName=TagValue
emin olun.
Makine öğrenmesi yaşam döngüsü olay bildirimi ve uyarıları
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ü otomasyonu
Git ve Azure Pipelines'ı kullanarak makine öğrenmesi modelini eğiten sürekli bir tümleştirme işlemi oluşturabilirsiniz. Tipik bir senaryoda, veri bilimcisi projenin Git deposundaki bir değişikliği denetlediğinde Azure Pipelines eğitim işini başlatır.
Eğitilen modelin performans özelliklerini görmek için iş sonuçlarını inceleyebilirsiniz. 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:
- Hizmet bağlantısı tanımladığınızda Azure Machine Learning çalışma alanı seçimini etkinleştirir.
- Azure Pipelines'da bir dağıtımı tetikleyen bir eğitim işlem hattında eğitilmiş model oluşturmayı etkinleştirir.
Azure Machine Learning ile Azure Pipelines'ı kullanma hakkında daha fazla bilgi için bkz . Azure Pipelines'ı Azure Machine Learning ile kullanma.
Analiz
Microsoft Power BI, veri analizi için makine öğrenmesi modellerinin kullanılmasını destekler. Daha fazla bilgi için bkz . Veri akışlarıyla yapay zeka.