MLOps: Verilerle model yönetimi, dağıtım, veri Azure Machine Learning
Bu makalede, modellerinizi yaşam döngüsünü Machine Learning için Azure Machine Learning İşlemleri (MLOps) nasıl yönetebilirsiniz? hakkında bilgi edinebilirsiniz. MLOps, makine öğrenmesi çözümlerinizin kalitesini ve tutarlılığını iyiler.
MLOps nedir?
Machine Learning İşlemler (MLOps), DevOps verimliliğini artıran ilkelere ve uygulamalara dayalıdır. Örneğin, sürekli tümleştirme, teslim ve dağıtım. MLOps şu ilkeleri makine öğrenmesi sürecine uygular ve şu hedeflere sahip olur:
- Modelleri daha hızlı deneme ve geliştirme
- Modellerin üretime daha hızlı dağıtımı
- Kalite güvencesi ve 10 2.000'den fazla alan izleme
Azure Machine Learning'de MLOps
Azure Machine Learning aşağıdaki MLOps özelliklerini sağlar:
- İşlem hatlarında yeniden ML 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ğitim ve dağıtma için yeniden kullanılabilir yazılım ortamları oluşturun.
- Modelleri her yerden kaydetme, paketle ve dağıt. Modeli kullanmak için gereken ilişkili meta verileri de izleyebilirsiniz.
- Yaşam döngüsü boyunca uzla uzacak şekilde idare ML yakalama. Günlüğe kaydedilen alan bilgileri modelleri kimin yayımlay olduğunu, neden değişikliklerin yapılmış olduğunu ve modellerin ne zaman dağıtıldığında veya üretimde ne zaman kullanılmaya yönelik olduğunu içerebilir.
- Yaşam döngüsünde olayları bildirme ve ML uyarı verme. Örneğin, deneme tamamlama, model kaydı, model dağıtımı ve veri kayması algılama.
- İşletimsel ML ilgili sorunlar için ML uygulamaları izleme. Eğitim ve çıkarım arasındaki model girişlerini karşılaştırın, modele özgü ölçümleri keşfedin ve altyapınız üzerinde izleme ve ML sağlar.
- Azure Machine Learning ve ML Azure Pipelines ile 20.000.000 Azure Pipelines. İşlem hatlarını kullanmak modelleri sık sık güncelleştirmenize, yeni modelleri test ediyor ve diğer uygulama ve hizmetlerinizin yanı sıra yeni ML sürekli olarak ortaya çıkmanıza olanak sağlar.
MLOps hakkında daha fazla bilgi için bkz. Machine Learning DevOps (MLOps).
İşlem hatları için ML oluşturma
Model ML tüm adımları Azure Machine Learning bir araya Azure Machine Learning farklı işlem hatlarını kullanın.
Bir ML işlem hattı, veri hazırlamadan özellik ayıklamaya, hiperparametre ayarlamadan model değerlendirmesine kadar 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ımcı'yı kullanırsanız, istediğiniz zaman Tasarımcı sayfasının sağ üst kısmında "..." seçeneğine tıklar ve Ardından Kopyala'yı seçin. İşlem hattınızı kopyalamanız, eski sürümlerinizi kaybetmeden işlem hattı tasarımınızı yeniden çalıştırmanıza olanak sağlar.
Yeniden kullanılabilir yazılım ortamları oluşturma
Azure Machine Learning ortamları, geliştikçe projenizin yazılım bağımlılıklarını izlemenizi ve yeniden oluşturmanızı sağlar. Ortamlar, derlemelerin el ile yazılım yapılandırmaları olmadan yeniden edilebilir olmasını sağlar.
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. Ortamlar Azure Machine Learning.
Modelleri her yerden kaydetme, paketle ve dağıtma
ML kaydetme ve izleme
Model kaydı, çalışma alanınıza azure bulut üzerinde modellerinizi depolamanızı ve sürüm oluşturmanızı sağlar. Model kayıt defteri, eğitilen modellerinizi düzenlemeyi ve izlemeyi kolaylaştırır.
İpucu
Kayıtlı model, modelinizi bir veya daha fazla dosya için mantıksal bir kapsayıcıdır. Örneğin, birden çok dosyada depolanan bir modeliniz varsa bunları çalışma alanınıza tek bir model olarak Azure Machine Learning. Kayıt sonrasında, kayıtlı modeli indirebilir veya dağıtabilirsiniz ve kayıtlı olan tüm dosyaları alırsınız.
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ğlanmalıdır. Bu etiketler daha sonra model araması için kullanılır. Azure Machine Learning, Python 3.5.2 veya daha yenisi kullanılarak yüklen herhangi bir modeli destekler.
İpucu
Ayrıca, eğitilen modelleri Azure Machine Learning.
Etkin dağıtımda kullanılan kayıtlı bir modeli silemezsiniz. Daha fazla bilgi için Modelleri dağıtma bölümünün modeli kaydetme bölümüne bakın.
Önemli
TagsAzure Machine Learning Studio'da Modeller sayfasındaki Filtrele seçeneği kullanılırken, müşterilerin kullanımı yerine TagName : TagValue TagName=TagValue (boşluk olmadan)
Profil modelleri
Azure Machine Learning, modelinizi dağıtırken oluşturulacak hizmetin CPU ve bellek gereksinimlerini anlamanıza yardımcı olabilir. Profil oluşturma, modelinizi çalıştıran hizmeti test ediyor ve CPU kullanımı, bellek kullanımı ve yanıt gecikmesi gibi bilgileri döndürmektedir. Ayrıca kaynak kullanımına dayalı bir CPU ve bellek önerisi de sağlar. Daha fazla bilgi için Modelleri dağıtma'nın profil oluşturma bölümüne bakın.
Modelleri paketle ve hata ayıkla
Bir modeli üretime dağıtmadan önce bir Docker görüntüsünde paketlemektedir. Çoğu durumda, görüntü oluşturma işlemi dağıtım sırasında arka planda otomatik olarak gerçekleşir. Görüntüyü el ile belirtebilirsiniz.
Dağıtımla ilgili sorunlarla karşılaşıyorsanı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 Open Neural Network Exchange (ONNX) dönüştürmek performansı geliştirebilir. OnNX'e dönüştürme ortalama olarak 2 kat performans artışına neden olabilir.
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 hizmeti olarak dağıtılır. Dağıtımlar çıkarım için CPU, GPU veya alan tarafından programlanabilir kapı dizilerini (FPGA) kullanır. Ayrıca modellerden de Power BI.
Modeli web hizmeti olarak kullanırken aşağıdaki öğeleri sağlarsanız:
- Hizmete/cihaza gönderilen verileri puanlarken kullanılan model(ler).
- Giriş betiği. Bu betik istekleri kabul eder, verileri puan almak için modellerini kullanır ve bir yanıt geri döner.
- Model Azure Machine Learning giriş betiği için gereken pip ve Conda bağımlılıklarını açıklayan bir ortamdır.
- Model 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, vm ailesi türü, kullanılabilir bellek ve sanal makineye dağıtımda çekirdek sayısı Azure Kubernetes Service.
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, işlem hatları ML de destekler. Daha fazla bilgi için bkz. Büyük verilerde toplu tahminler.
Gerçek zamanlı web hizmetleri
Modellerinizi web hizmetlerinde aşağıdaki işlem hedefleriyle kullanabilirsiniz:
- Azure Container Örneği
- Azure Kubernetes Service
- Yerel geliştirme ortamı
Modeli web hizmeti olarak dağıtmak için aşağıdaki öğeleri sağlanız gerekir:
- Model veya model grubu.
- Modeli kullanmak için gereken bağımlılıklar. Örneğin, istekleri kabul eden ve modeli çağıran bir betik, conda bağımlılıkları vb.
- Modelin nasıl ve nereye dağıtılımlarını açıklayan dağıtım yapılandırması.
Daha fazla bilgi için bkz. Modelleri dağıtma.
Denetimli rollout
Dağıtım dağıtımı Azure Kubernetes Service, aşağıdaki senaryoları etkinleştirmek için denetimli dağıtım kullanabilirsiniz:
- Dağıtım için uç noktanın birden çok sürümünü oluşturma
- Trafiği uç noktanın farklı sürümlerine yönlendirerek A/B testi gerçekleştirin.
- Uç nokta yapılandırmasında trafik yüzdesini güncelleştirerek uç nokta sürümleri arasında geçiş yapmak.
Daha fazla bilgi için bkz. Denetimli ML.
Analiz
Microsoft Power BI, veri analizi için makine öğrenmesi modellerini kullanmayı destekler. Daha fazla bilgi için bkz. Azure Machine Learning tümleştirmesi Power BI (önizleme).
MLOps için gereken idare verilerini yakalama
Azure ML, meta verileri kullanarak tüm kaynak varlıklarınızı 1.000 ML izleme olanağı sunar.
- Azure ML, kodunuzun hangi depodan/ daldan/ işlemeden geldiğine ilişkin bilgileri izlemek için Git ile tümleştirilmiştir.
- Azure ML Veri Kümeleri verileri izleme, profil ve sürüm verilerine yardımcı olur.
- Yorumlanabilirlik, modellerinizi açıklamanıza, mevzuat uyumluluğunu karşılamanıza ve modellerin belirli bir giriş için nasıl bir sonuç elde ettiyine anlamanıza olanak sağlar.
- Azure ML Çalıştırma geçmişi, modeli eğitmek için kullanılan kodun, verilerin ve hesaplamaların anlık görüntüsünü depolar.
- Azure ML Model Kayıt Defteri, modeliniz ile ilişkili tüm meta verileri yakalar (bu meta veriler modeli eğitti, dağıtıldı olduğu yerde, dağıtımları iyi görünüyorsa).
- Azure ile tümleştirme, yaşam döngüsünde olaylar üzerinde işlem ML sağlar. Örneğin model kaydı, dağıtım, veri kayması ve eğitim (çalıştırma) olayları.
İpucu
Modeller ve veri kümeleri hakkında bazı bilgiler otomatik olarak yakalanır, ancak etiketlerini kullanarak ek bilgiler ebilirsiniz. Çalışma alanınıza kayıtlı modelleri ve veri kümelerini arıyorken etiketleri filtre olarak kullanabilirsiniz.
Bir veri kümesiyle kayıtlı modelle isteğe bağlı bir adımdır. Model kaydında veri kümesine başvuru hakkında bilgi için bkz. Model sınıfı başvurusu.
Yaşam döngüsünde olayları bildirme, otomatikleştirme ve ML uyarı verme
Azure ML, önemli olayları Azure EventGrid'de yayımlar. Bu olaylar, yaşam döngüsünde olaylara bildirim ML kullanılabilir. Daha fazla bilgi için lütfen bu belgeye bakın.
İşletimsel sorunlar & ML izleme
İzleme, modelinize gönderilen verileri ve döndüren tahminleri anlamanızı sağlar.
Bu bilgiler, modelinizin nasıl kullanılmaya devam etmekte olduğunu anlamanıza yardımcı olur. Toplanan giriş verileri, modelin gelecek sürümlerini eğitmada da yararlı olabilir.
Daha fazla bilgi için bkz. Model veri toplamayı etkinleştirme.
Modelinizi yeni verilerde yeniden eğitin
Yeni bilgiler alırken modelinizi doğrulamak, güncelleştirmek ve hatta sıfırdan yeniden eğitebilirsiniz. Bazen, yeni veri almak etki alanının beklenen bir bölümü olur. Diğer durumlarda, veri kümelerinde veri kaymalarını algılama (önizleme)konusunda da tartıştığımız 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 özelliklerle olan ilişkilerinde değişiklik yapan özellikler gibi durumlarla karşılaşarak düşebilir.
"Yeniden eğitim Nasıl yaparım? biliyor musunuz?" sorusunun evrensel bir yanıtı yoktur. ancak azure ML olay ve izleme araçları otomasyon için iyi başlangıç noktalarıdır. Yeniden eğitime karar verdiktan sonra şunları yapmak gerekir:
- Yinelenebilir, otomatik bir işlem kullanarak verilerinizi önceden işleme
- Yeni modelinizi eğitin
- Yeni modelinizin çıkışlarını eski modelinizin çıkışları ile karşılaştırın
- Eski modelinizi değiştirip değiştirmeyeceklerini seçmek için önceden tanımlanmış ölçütleri kullanın
Yukarıdaki adımların teması, yeniden eğiterek geçici değil otomatikleştirmeniz 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 bir yeniden eğitma senaryosuna nasıl uyum Azure Machine Learning için modelleri bir tasarımcıyla yeniden eğitin makalesini okuyun.
Uygulama yaşam ML otomatikleştirme
Model eğiten GitHub Azure Pipelines sürekli tümleştirme süreci oluşturmak için GitHub ve Azure Pipelines'leri kullanabilirsiniz. Tipik bir senaryoda, bir Veri Bilimci git depoda bir değişiklik denetiminde olduğunda, Azure Pipeline bir eğitim çalıştırması başlatacak. Daha sonra çalıştırmanın sonuçları, eğitilen modelin performans özelliklerini görmek için denetlenebilir. Modeli web hizmeti olarak dağıtan bir işlem hattı da oluşturabilirsiniz.
Azure Machine Learning uzantısı, yeni uzantılarla daha kolay Azure Pipelines. Bu hizmet, aşağıdaki geliştirmeleri Azure Pipelines:
- Hizmet bağlantısı tanımlarken çalışma alanı seçimini sağlar.
- Yayın işlem hatlarının bir eğitim işlem hattında oluşturulan eğitilmiş modeller tarafından tetiklenene olanak sağlar.
Azure Pipelines ile Azure Machine Learning daha fazla bilgi için aşağıdaki bağlantılara bakın:
- ML ile ML tümleştirme ve Azure Pipelines
- Azure Machine Learning MLOps deposu
- Azure Machine Learning MLOpsPython deposu
Verileri eğitimle Azure Data Factory hazırlayacak bir veri alımı işlem hattı oluşturmak için de Azure Data Factory'i kullanabilirsiniz. Daha fazla bilgi için bkz. Veri alımı işlem hattı.
Sonraki adımlar
Aşağıdaki kaynakları okuyarak ve araştırarak daha fazla bilgi edinebilirsiniz:
& modellerini nasıl dağıtabilirsiniz Azure Machine Learning
Dağıtılan bir modeli tüketen istemciler oluşturma
Azure Yapay Zeka en iyi yöntemler temsilcisi & başvuru mimarileri