Bu başvuru mimarisi, Azure Machine Learning kullanarak bir videoya sinir stil aktarımının nasıl uygulanacağını gösterir. Stil aktarımı , var olan bir görüntüyü başka bir görüntünün stilinde oluşturan derin bir öğrenme tekniğidir. Bu mimari, derin öğrenme ile Batch Puanlama kullanan herhangi bir senaryo için genelleştirilemez. Bu çözümü dağıtın.

Senaryo: bir medya kuruluşunda, stili belirli bir boyama gibi görünecek şekilde değiştirmek istedikleri bir video vardır. Kuruluş, bu stili videonun tüm çerçevelerine zamanında ve otomatik bir biçimde uygulamak istiyor. Sinir stil aktarım algoritmaları hakkında daha fazla arka plan için bkz. evsel sinir ağları (PDF) kullanarak görüntü stili aktarma .
Bu başvuru mimarisi, Azure depolama 'da yeni medya varlığı tarafından tetiklenen iş yükleri için tasarlanmıştır.
İşleme aşağıdaki adımları içerir:
- Azure Blob depolama 'ya bir video dosyası Upload.
- video dosyası, Azure Machine Learning ardışık düzen yayımlanmış uç noktasına bir istek göndermek için Azure Logic Apps tetikler.
- İşlem hattı videoyu işler, MPı ile stil aktarımını uygular ve videoyu postprocesses.
- İşlem hattı tamamlandıktan sonra çıkış blob depolamaya geri kaydedilir.
derin öğrenme ML işlem hattı mimarisi
Bu mimari aşağıdaki bileşenlerden oluşur.
İşlem
Azure Machine Learning , işlem hatlarını kullanarak oluşturulabilir ve kolay yönetilebilir sıralar oluşturur. ayrıca, eğitim, dağıtım ve puanlama oluşturma modelleri için Azure Machine Learning işlem olarak adlandırılan yönetilen bir işlem hedefi (bir ardışık düzen hesaplamasının çalışacağı) sağlar.
Depolama
Azure Blob depolama , tüm görüntüleri (giriş görüntüleri, stil görüntüleri ve çıkış görüntüleri) depolamak için kullanılır. Azure Machine Learning, kullanıcıların işlem platformları ve Blob depolarından verileri el ile taşımasına izin vermek için blob depolamayla tümleştirilir. BLOB depolama, bu iş yükünün gerektirdiği performans için de uygun maliyetli bir hesapdır.
Tetikleyici/zamanlama
Azure Logic Apps iş akışını tetiklemek için kullanılır. mantıksal uygulama, kapsayıcıya bir blob eklendiğini algıladığında, Azure Machine Learning işlem hattını tetikler. Logic Apps, bir tetikleyiciyi değiştirmek için kolay bir işlemle blob depolamada yapılan değişiklikleri tespit etmenin kolay bir yolu olduğundan bu başvuru mimarisine uygun bir şekilde uyum sağlar.
Verileri ön işleme ve geri yükleme
Bu başvuru mimarisi, bir ağaçtaki bir portagutan video görüntülerini kullanır.
- Ses dosyasını video filmden ayıklamak için FFmpeg kullanın, böylece ses dosyası daha sonra çıkış videosuna geri alınabilir.
- Videoyu tek tek çerçevelere bölmek için FFmpeg kullanın. Çerçeveler, paralel olarak bağımsız olarak işlenir.
- Bu noktada, sinir stil aktarımını her bir çerçeveye paralel olarak uygulayabiliriz.
- Her bir çerçeve işlendiyse, kareleri birlikte restitch için FFmpeg kullanılması gerekir.
- Son olarak, ses dosyasını yeniden, yeniden birleştirilmiş çekimi yeniden iliştirtik.
Performansla ilgili önemli noktalar
GPU ve CPU
Derin öğrenme iş yükleri için, GPU 'lar genellikle yüksek miktarda CPU gerçekleştirecek ve bu da karşılaştırılabilir bir CPU kümesi, daha fazla performans sağlamak için gereklidir. Bu mimaride yalnızca CPU kullanımı seçeneği olsa da, GPU 'Lar çok daha iyi maliyet/performans profili sağlar. En son GPU iyileştirilmiş VM 'lerin NCv3 serisini kullanmanızı öneririz.
GPU 'Lar tüm bölgelerde varsayılan olarak etkin değildir. GPU 'Ların etkinleştirildiği bir bölge seçtiğinizden emin olun. Ayrıca, aboneliklerde GPU için iyileştirilmiş VM 'Ler için varsayılan sıfır çekirdekli kota kotası vardır. Bu kotayı, bir destek isteği açarak yükseltebilirsiniz. Aboneliğinizin iş yükünüzü çalıştırmak için yeterli kotası olduğundan emin olun.
VM 'lerde çekirdeklere göre paralel hale getirme
Bir stil aktarma işlemini toplu iş olarak çalıştırırken, birincil olarak GPU 'Larda çalışan işlerin VM 'lerde paralelleştirilmesine sahip olması gerekir. İki yaklaşım olasıdır: tek bir GPU 'ya sahip VM 'Leri kullanarak daha büyük bir küme oluşturabilir veya çok sayıda GPU içeren VM 'Ler kullanarak daha küçük bir küme oluşturabilirsiniz.
Bu iş yükü için, bu iki seçenek karşılaştırılabilir performansa sahip olacaktır. VM başına daha fazla GPU ile daha az VM kullanmak veri hareketini azaltmaya yardımcı olabilir. Ancak, bu iş yükü için iş başına veri hacmi büyük değildir, bu nedenle blob depolamaya göre çok fazla azaltmasını gözlemleymezsiniz.
MPı adımı
Azure Machine Learning ardışık düzenioluştururken, paralel hesaplama gerçekleştirmek için kullanılan adımlardan biri (ileti işleme arabirimi) mpı adımdır. MPı adımı, verileri kullanılabilir düğümler arasında eşit olarak bölmeye yardımcı olur. MPı adımı, istenen tüm düğümler hazırlanana kadar yürütülmez. Bir düğüm başarısız olur veya geçersiz hale gelmelidir (düşük öncelikli bir sanal makinese), MPı adımının yeniden çalıştırılması gerekir.
Güvenlik konuları
Azure Blob depolamaya erişimi sınırlandırma
Bu başvuru mimarisinde, Azure Blob depolama korunması gereken ana depolama bileşenidir. GitHub deposunda gösterilen ana hat dağıtımı, blob depolamaya erişmek için depolama hesabı anahtarlarını kullanır. Daha fazla denetim ve koruma için bunun yerine paylaşılan erişim imzası (SAS) kullanmayı düşünün. Bu, hesap anahtarlarını sabit olarak kodlamadan veya düz metin olarak kaydetmeye gerek kalmadan depolamadaki nesnelere sınırlı erişim verir. Bu yaklaşım özellikle, hesap anahtarları mantıksal uygulamanın tasarımcı arabiriminin içinde düz metin olarak göründüğünden yararlıdır. SAS kullanılması, depolama hesabının uygun idare sahibi olmasını ve yalnızca bu erişime sahip olmayı amaçlayan kişilere verilmesini sağlamaya yardımcı olur.
Daha hassas verileri olan senaryolar için, tüm depolama anahtarlarınızın korunduğundan emin olun, çünkü bu anahtarlar iş yükünün tüm giriş ve çıkış verilerine tam erişim izni verir.
Veri şifreleme ve veri taşıma
Bu başvuru mimarisi, toplu Puanlama işlemine örnek olarak stil aktarımını kullanır. Daha fazla veriye duyarlı senaryolar için depolama alanındaki verilerin Rest durumunda şifrelenmesi gerekir. Veriler bir konumdan sonrakine taşındığında, veri aktarımını güvenli hale getirmek için Aktarım Katmanı Güvenliği (TSL) kullanın. daha fazla bilgi için bkz. Azure Depolama güvenlik kılavuzu.
Bir sanal ağda hesapla'nizin güvenliğini sağlama
Machine Learning işlem kümenizi dağıttığınızda, kümenizi bir sanal ağınalt ağı içinde sağlanacak şekilde yapılandırabilirsiniz. Bu alt ağ, kümedeki işlem düğümlerinin diğer sanal makinelerle güvenli bir şekilde iletişim kurmasına olanak tanır.
Kötü amaçlı etkinliğe karşı koruma
Birden çok kullanıcının bulunduğu senaryolarda, hassas verilerin kötü amaçlı etkinliğe karşı korunduğundan emin olun. Giriş verilerini özelleştirmek için başka kullanıcılara bu dağıtıma Erişim verilirse, aşağıdaki önlemleri ve konuları aklınızda bulundurmanız gerekir:
- Kullanıcıların erişimini yalnızca ihtiyaç duydukları kaynaklarla sınırlamak için Azure rol tabanlı erişim denetimi 'ni (Azure RBAC) kullanın.
- İki ayrı depolama hesabı sağlayın. Giriş ve çıkış verilerini ilk hesapta depolayın. Dış kullanıcılara bu hesaba erişim verilebilir. Yürütülebilir betikleri ve çıkış günlüğü dosyalarını diğer hesapta depolayın. Dış kullanıcıların bu hesaba erişimi olmamalıdır. Bu ayrım, dış kullanıcıların herhangi bir yürütülebilir dosyayı (kötü amaçlı kod eklemek için) değiştirememesini ve günlük dosyalarına erişiminin olmamasını sağlar ve bu da hassas bilgileri tutabilir.
- Kötü amaçlı kullanıcılar iş kuyruğu üzerinde DDoS saldırısı gerçekleştirebilir veya iş kuyruğuna hatalı biçimlendirilmiş zarar iletileri ekleyebilir, sistemin bu hataları kilitleme veya kaldırma hatalarına neden olur.
İzleme ve günlüğe kaydetme
Toplu işleri izleme
İşinizi çalıştırırken, ilerlemeyi izlemek ve işin beklendiği gibi çalıştığından emin olmak önemlidir. Bununla birlikte, etkin düğümlerin bir kümesi üzerinde izlenmesi zor olabilir.
kümenin genel durumunu denetlemek için, kümedeki düğümlerin durumunu denetlemek üzere Azure portal Machine Learning hizmetine gidin. Bir düğüm devre dışı bırakılırsa veya bir iş başarısız olduysa, hata günlükleri blob depolamaya kaydedilir ve Azure portal de erişilebilir.
izleme, günlükleri Application Insights bağlantısı kurarak veya kümenin ve işlerinin durumunu yoklamak üzere ayrı işlemler çalıştırarak daha fazla zenginleştirilebilir.
Azure Machine Learning ile günlüğe kaydetme
Azure Machine Learning, tüm stdout/stderr 'yi ilişkili blob depolama hesabına otomatik olarak kaydeder. aksi belirtilmedikçe, Azure Machine Learning çalışma alanınız otomatik olarak bir depolama hesabı sağlayacak ve günlüklerinizin dökümünü oluşturacak. günlük dosyalarında gezinmek daha kolay bir yol olan Azure Depolama Gezginigibi bir depolama gezinti aracı da kullanabilirsiniz.
Maliyetle ilgili konular
Depolama ve zamanlama bileşenleriyle karşılaştırıldığında, bu başvuru mimarisinde kullanılan işlem kaynakları, maliyet açısından çok daha fazla. Ana güçlüklerden biri, bir GPU etkin makineler kümesi genelinde çalışmayı etkili bir şekilde paralelleştirti.
Azure Machine Learning işlem kümesi boyutu kuyruktaki işlere bağlı olarak ölçeği otomatik olarak değiştirebilir ve azaltabilirsiniz. Minimum ve maksimum düğümleri ayarlayarak otomatik ölçeklendirmeyi programlı bir şekilde etkinleştirebilirsiniz.
Anında işleme gerektirmeyen iş için otomatik ölçeklendirmeyi yapılandırın, böylece varsayılan durum (minimum) bir sıfır düğüm kümesi olur. Bu yapılandırmayla, küme sıfır düğümle başlar ve yalnızca kuyruktaki işleri algıladığında ölçeği ölçeklendirir. Toplu işlem Puanlama işlemi yalnızca birkaç kez veya daha az olursa, bu ayar önemli maliyet tasarruflarıyla sonuçlanır.
Otomatik ölçeklendirme, birbirine çok yakın olan toplu işler için uygun olmayabilir. Bir kümenin dönmesi ve dönmesi için gereken süre de bir maliyete neden olur. bu nedenle, bir Batch iş yükü önceki iş bittikten sonra yalnızca birkaç dakika başlıyorsa, kümenin işler arasında çalışmasını sağlamak daha uygun maliyetli olabilir.
Azure Machine Learning işlem, ücretlerinizi indirimli sanal makinelerde çalıştırmanıza olanak tanıyan düşük öncelikli sanal makineleri de destekler, bu da desteklenmediği uyarısıyla herhangi bir zamanda yok edilebilir hale gelebilir. Düşük öncelikli sanal makineler, kritik olmayan toplu Puanlama iş yükleri için idealdir.
Çözümü dağıtma
bu başvuru mimarisini dağıtmak için GitHubdeposunda açıklanan adımları izleyin.
Not
Azure Kubernetes hizmetini kullanarak derin öğrenme modelleri için bir Batch Puanlama mimarisi de dağıtabilirsiniz. bu GitHubdeposunda açıklanan adımları izleyin.