bu başvuru mimarisi, Azure DevOps ve Azure Machine Learningkullanarak bir aı uygulaması için sürekli tümleştirme (cı), sürekli teslim (CD) ve yeniden eğitim işlem hattının nasıl uygulanacağını gösterir. Çözüm, scikit-diabetes veri kümesini öğrenir, ancak her bir AI senaryosu ve Jenkins veya Travis gibi diğer popüler derleme sistemleri için kolayca uyarlanmıştır.
Bu mimari için bir başvuru uygulama GitHubkullanılabilir.

Mimari
Bu mimari aşağıdaki bileşenlerden oluşur:
Azure Pipelines. bu derleme ve test sistemi Azure DevOps tabanlıdır ve derleme ve yayın işlem hatları için kullanılır. Azure Pipelines, bu işlem hatlarını görevler adlı mantıksal adımlara ayırır. Örneğin, Azure CLI görevi Azure kaynaklarıyla çalışmayı kolaylaştırır.
Azure Machine Learning , makine öğrenimi modellerini ölçeklendirirken eğitim, puanlama, dağıtma ve yönetme için bir bulut hizmetidir. bu mimari, bir çalışma alanı, işlem kaynakları, makine öğrenimi ardışık düzeni ve puanlama görüntüsü oluşturmak için Python SDK Azure Machine Learning kullanır. Azure Machine Learning çalışma alanı , makine öğrenimi modellerini denemek, eğmek ve dağıtmak için gereken alanı sağlar.
Azure Machine Learning işlem , otomatik ölçeklendirme ve GPU ve CPU düğüm seçenekleriyle isteğe bağlı sanal makinelerin bir kümesidir. Eğitim işi bu kümede yürütülür.
Azure Machine Learning işlem hatları , senaryolar genelinde yeniden kullanılabilen yeniden kullanılabilir makine öğrenimi iş akışlarını sağlar. Eğitim, model değerlendirmesi, model kaydı ve resim oluşturma, bu kullanım örneği için bu işlem hatları içindeki ayrı adımlarda oluşur. İşlem hattı derleme aşamasının sonunda yayımlanır veya güncelleştirilir ve yeni veri gelişini tetiklenmiştir.
Azure Blob Depolama. Blob kapsayıcıları, günlükleri Puanlama hizmetinden depolamak için kullanılır. Bu durumda, hem giriş verileri hem de model tahmini toplanır. Bazı dönüşümlerden sonra, bu Günlükler model yeniden eğitimi için kullanılabilir.
Azure Container Registry. Puanlama Python betiği, kayıt defterinde bir Docker görüntüsü ve sürümü oluşturulmuş olarak paketlenmiştir.
Azure Container Instances. Yayın işlem hattının bir parçası olarak, bir kapsayıcıyı çalıştırmak için kolay ve sunucusuz bir yol sağlayan, Puanlama ve hazırlama ortamı Container Instances.
Azure Kubernetes hizmeti. Puanlama Web hizmeti görüntüsü, QA ortamında kapsamlı bir şekilde test edildikten sonra, yönetilen bir Kubernetes kümesinde üretim ortamına dağıtılır.
Azure Application Insights. Bu izleme hizmeti performans anormalilerini algılamak için kullanılır.
MLOps işlem hattı
Bu çözümde, zaten yazılım mühendislerine alışkın olan araçları kullanarak bir AI projesinin çeşitli aşamalarının uçtan uca Otomasyonu gösterilmektedir. machine learning sorunu, odağı DevOps işlem hattına karşı korumak için basittir. Çözüm, tüpler 'in bir kısmını tahmin etmek için scikit-, diabetes veri kümesini öğrenir ve bir Ridge doğrusal regresyon modeli oluşturur. Bkz. Python scikit eğitimi-Ayrıntılar için modeller öğrenme .
Bu çözüm, aşağıdaki üç işlem hattına dayalıdır:
- Derleme işlem hattı. Kodu oluşturur ve bir test paketi çalıştırır.
- Yeniden eğitim işlem hattı. Modeli bir zamanlamaya göre veya yeni veriler kullanılabilir hale geldiğinde geri çeker.
- Yayın işlem hattı. İşlem Puanlama görüntüsünü çıkarır ve farklı ortamlarda güvenli bir şekilde yükseltir.
Sonraki bölümlerde bu işlem hatlarının her biri açıklanır.
Derleme işlem hattı
Kod her iade edildiğinde CI işlem hattı tetiklenir. Kodu oluşturduktan ve bir test paketi çalıştırdıktan sonra güncelleştirilmiş bir Azure Machine Learning işlem hattı yayımlar. Yapı işlem hattı aşağıdaki görevlerden oluşur:
Kod kalitesi. Bu sınamalar, kodun ekibin standartlarına uyduğundan emin olmanızı sağlar.
Birim testi. Bu sınamalar kodun çalıştığından, yeterli kod kapsamına sahip olduğundan ve kararlı olduğundan emin olur.
Veri testi. Bu sınamalar, veri örneklerinin beklenen şemaya ve dağıtıma uygun olduğunu doğrular. Bu testi diğer kullanım örnekleri için özelleştirin ve yeni veri geldiğinde tetiklenen ayrı bir veri sağlamlık işlem hattı olarak çalıştırın. Örneğin, daha önce test edebilmeniz için veri testi görevini bir veri alma ardışık düzenine taşıyın.
Not
makine öğrenimi modellerini eğitmek için kullanılan veriler için DevOps uygulamalarını etkinleştirmeyi düşünmelisiniz, ancak bu makalede ele alınmamalıdır. veri alma işlem hattının cı/CD 'si için mimari ve en iyi uygulamalar hakkında daha fazla bilgi için bkz. veri alma işlem hattı için DevOps.
Azure Machine Learning ve Python SDK için altyapıyı ayarlarken aşağıdaki tek seferlik görevler oluşur:
- Azure Machine Learning ile ilgili tüm kaynakları barındıran çalışma alanını oluşturun.
- Eğitim işini çalıştıran işlem kaynaklarını oluşturun.
- Güncelleştirilmiş eğitim betiği ile makine öğrenimi işlem hattı oluşturun.
- Eğitim iş akışını düzenlemek için makine öğrenimi ardışık düzenini bir REST uç noktası olarak yayımlayın. Sonraki bölümde bu adım açıklanmaktadır.
Yeniden eğitim işlem hattı
Machine Learning işlem hattı, modeli zaman uyumsuz bir şekilde yeniden eğitme sürecini düzenler. Yeniden eğitme işlemi bir zamanlamaya göre veya yeni veriler kullanılabilir olduğunda, önceki adımdan yayımlanmış işlem hattı REST uç noktası çağrılarak tetiklenebilir.
Bu işlem hattı aşağıdaki adımları içerir:
Modeli eğitme. eğitim Python betiği, çalışma geçmişindesaklanan yeni bir model dosyası almak için Azure Machine Learning işlem kaynağında yürütülür. eğitim, bir aı projesindeki en yoğun işlem yoğunluğu görevi olduğundan, çözüm Azure Machine Learning işlemkullanır.
Modeli değerlendirin. Basit bir değerlendirme testi, yeni modeli mevcut modelle karşılaştırır. Yalnızca yeni model yükseltildiyse daha iyi hale gelir. Aksi takdirde, model kayıtlı değildir ve işlem hattı iptal edilir.
Modeli kaydedin. geri çekme modeli, Azure ML modeli kayıt defterinekaydedilir. Bu hizmet, modellerle birlikte, kolayca yeniden üretibilecekleri şekilde meta veri etiketleriyle ilgili sürüm denetimi sağlar.
Yayın işlem hattı
Bu işlem hattı, Puanlama görüntüsünü nasıl kullanıma hazır hale getirebileceğiniz ve farklı ortamlarda güvenle nasıl yükseltileceğini gösterir. Bu işlem hattı iki ortama, QA 'e ve üretime bölünmüştür:
QA ortamı
Model yapıt tetikleyicisi. Yayın işlem hatları, her yeni yapıt kullanılabilir her seferinde tetiklenir. Azure Machine Learning Model Yönetimi kayıtlı yeni bir model, yayın yapıtı olarak değerlendirilir. Bu durumda, her yeni model için bir işlem hattı tetiklenir.
Puanlama görüntüsü oluşturun. Kayıtlı model, bir Puanlama betiği ve Python bağımlılıkları (Conda YAML dosyası) ile bir işlemleştirme Docker görüntüsüne birlikte paketlenir. Görüntünün sürümü, Azure Container Registry aracılığıyla otomatik olarak belirlenir.
Container Instances dağıtın. Bu hizmet, üretim dışı bir ortam oluşturmak için kullanılır. Puanlama resmi de buraya dağıtılır ve bu genellikle test için kullanılır. Container Instances Docker görüntüsünü test etmenin kolay ve hızlı bir yolunu sağlar.
Web hizmetini test edin. Basit bir API testi görüntünün başarıyla dağıtıldığından emin olmanızı sağlar.
Üretim ortamı
Azure Kubernetes hizmetinde dağıtın. Bu hizmet, bir değerlendirme görüntüsünü bir Web hizmeti olarak bir üretim ortamında ölçeklendirerek dağıtmak için kullanılır.
Web hizmetini test edin. Basit bir API testi görüntünün başarıyla dağıtıldığından emin olur.
Ölçeklenebilirlik konusunda dikkat edilmesi gerekenler
Bir derleme işlem Azure DevOps herhangi bir boyuttaki uygulamalar için ölçeklendir olabilir. Derleme işlem hatları, üzerinde çalıştıracakları aracıya bağlı olarak değişiklikli en fazla zaman aşımına sahip olur. Derlemeler, kendi içinde barındırılan aracılarda (özel aracılar) sonsuza kadar çalışmasına neden olabilir. Genel bir proje için Microsoft tarafından barındırılan aracılar için derlemeler altı saat boyunca çalışmasına izin. Özel projeler için sınır 30 dakikadır.
Maksimum zaman aşımını kullanmak için yaml dosyanıza aşağıdaki Azure Pipelines ayarlayın:
jobs:
- job: <job_name>
timeoutInMinutes: 0
İdeal olarak derleme işlem hattınızı hızla tamamlar ve yalnızca birim testlerini ve diğer testlerin bir alt kümesini yürütün. Bu sayede değişiklikleri hızla doğrular ve sorunlar ortaya çıkarsa bunları düzeltin. Çalışma saatleri dışı sırasında uzun süre çalışan testler çalıştırın.
Yayın işlem hattı, gerçek zamanlı bir puanlama web hizmeti yayımlar. QA ortamının sürümü kolaylık Container Instances kullanılarak yapılır, ancak QA/hazırlama ortamında çalışan başka bir Kubernetes kümesi kullanabilirsiniz.
Üretim ortamını kümenizin boyutuna göre Azure Kubernetes Service ölçeklendirin. Kümenin boyutu, dağıtılan puanlama web hizmeti için beklediğiniz yüke bağlıdır. Gerçek zamanlı puanlama mimarileri için aktarım hızı önemli bir iyileştirme ölçümü olur. Derin öğrenme olmayan senaryolarda CPU yükü işlemek için yeterli olmalıdır; ancak, derin öğrenme iş yükleri için hız bir performans sorunu olduğunda GPU'lar genellikle CPU'lara kıyasla daha iyi performans sağlar. Azure Kubernetes Service hem CPU hem de GPU düğüm türlerini destekler. Bu nedenle bu çözüm bunu görüntü dağıtımı için kullanır. Daha fazla bilgi için bkz. Derin öğrenme modellerinin dağıtımı için GPU'lar ile CPU'lar karşılaştırması.
İşlem kaynağınız için yeniden eğitilen işlem hattının ölçeğini Azure Machine Learning ölçeğini genişletin ve kümeyi yönetmek için otomatik ölçeklendirme seçeneğini kullanın. Bu mimari CPU'ları kullanır. Derin öğrenme iş yükleri için GPU'lar daha iyi bir seçenektir ve İşlem Azure Machine Learning de desteklemektedir.
Yönetime ilişkin konular
Yeniden eğitma işini izleme. Makine öğrenmesi işlem hatları, bir makine kümesinde yeniden eğitimi kolaylaştırır ve bunları izlemek için kolay bir yol sağlar. Azure Machine Learning kullanıcı arabirimini kullanın ve günlükler için işlem hatları bölümüne bakın. Alternatif olarak, bu günlükler bloba da yazılır ve blob gibi araçlar kullanılarak buradan Azure Depolama Gezgini.
Günlüğü. Azure Machine Learning, makine öğrenmesi yaşam döngüsünün her adımını günlüğe almak için kolay bir yol sağlar. Günlükler bir blob kapsayıcısı içinde depolanır. Daha fazla bilgi için bkz. Azure Machine Learning. Daha zengin izleme için Application Analizler'yi günlükleri kullanmak üzere yapılandırabilirsiniz.
Güvenlik'i seçin. Tüm gizli diziler ve kimlik bilgileri, Azure Key Vault grupları kullanılarak Azure Pipelines içinde depolanır ve erişilir.
Maliyetle ilgili konular
Azure DevOps açık kaynak projeler ve en fazla beş kullanıcıya sahip küçük projeler için ücretsizdir. Daha büyük takımlar için, kullanıcı sayısına göre bir plan satın alın.
İşlem, bu mimarideki en büyük maliyettir ve kullanım durumuna bağlı olarak maliyeti değişir. Bu mimaride Azure Machine Learning İşlem 2018'de 2018'de 2018'de 2018'de 2018'de 2 Azure Machine Learning, işlem kümenizi destekleye sanal makinelerin maliyetine ek ücret eklemez. İşlem kümenizi en az 0 düğüme sahip olacak şekilde yapılandırarak kullanım dışı bırakıldığında ölçeği 0 düğüme düşürenin ve herhangi bir maliyete neden olmaz. İşlem maliyeti düğüm türüne, bir dizi düğüme ve sağlama moduna (düşük öncelikli veya ayrılmış) bağlıdır. Azure fiyatlandırma hesaplayıcısını kullanarak Machine Learning ve diğer hizmetlerin maliyetini tahmin edebilirsiniz.
Çözümü dağıtma
Bu başvuru mimarisini dağıtmak için, Başlarken GitHubizleyin.
Sonraki adımlar
- Daha fazla bilgi almak ister misiniz? İlgili Öğrenme yolunu göz at: Microsoft Learn MLOps ile makine öğrenmesi yaşam döngüsünü başlatma