Azure Machine Learning işlem hatlarını kullanarak derin öğrenme modelleri için toplu puanlama

Azure Logic Apps
Azure Machine Learning
Azure Role-based access control
Azure Storage

Bu başvuru mimarisi, Azure Machine Learning kullanarak bir videoya sinir stili aktarımı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 bir derin öğrenme tekniğidir. Derin öğrenme ile toplu puanlama kullanan tüm senaryolar için bu mimariyi genelleştirebilirsiniz.

Mimari

Azure Machine Learning kullanan derin öğrenme modelleri için mimari diyagramı.

Bu mimarinin bir Visio dosyasını indirin.

İş Akışı

Bu mimari aşağıdaki bileşenlerden oluşur.

İşlem

Azure Machine Learning , işlem hatlarını kullanarak yeniden üretilebilir ve kolay yönetilebilir işlem dizileri oluşturur. Ayrıca makine öğrenmesi modellerini eğitme, dağıtma ve puanlama için Azure Machine Learning İşlem adlı yönetilen bir işlem hedefi (işlem hattı hesaplamanın çalıştırabileceği) sunar.

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) depolar. Azure Machine Learning, blob Depolama ile tümleştirerek kullanıcıların verileri işlem platformları ve blob depolama alanları arasında el ile taşımasına gerek yoktur. Blob Depolama, bu iş yükünün gerektirdiği performans için de uygun maliyetlidir.

Tetikle

Azure Logic Apps iş akışını tetikler. Mantıksal uygulama kapsayıcıya bir blob eklendiğini algıladığında Azure Machine Learning işlem hattını tetikler. Logic Apps, tetikleyiciyi değiştirmek için kolay bir işlemle blob depolamada yapılan değişiklikleri algılamanın kolay bir yolu olduğundan bu başvuru mimarisine uygundur.

Verileri ön işleme ve son işleme

Bu başvuru mimarisi, ağaçtaki orangutanların video görüntülerini kullanır.

  1. Ses dosyasının daha sonra çıkış videosuna yeniden birleştirilebilmesi için video görüntüsündeki ses dosyasını ayıklamak için FFmpeg kullanın.
  2. Videoyu tek tek karelere bölmek için FFmpeg kullanın. Çerçeveler paralel olarak bağımsız olarak işlenir.
  3. Bu noktada, her bir kareye paralel olarak nöral stil aktarımı uygulayabilirsiniz.
  4. Her çerçeve işlendikten sonra, çerçeveleri yeniden birleştirmek için FFmpeg kullanın.
  5. Son olarak ses dosyasını geri yüklenen görüntüye yeniden ekleyin.

Bileşenler

Çözüm ayrıntıları

Bu başvuru mimarisi, Azure Depolama yeni medyanın varlığıyla tetiklenen iş yükleri için tasarlanmıştır.

İşleme aşağıdaki adımları içerir:

  1. Azure Blob Depolama'a bir video dosyası yükleyin.
  2. Video dosyası, Azure Machine Learning işlem hattı tarafından yayımlanan uç noktaya istek göndermek için Azure Logic Apps'i tetikler.
  3. İşlem hattı videoyu işler, MPI ile stil aktarımı uygular ve videoyu son işler.
  4. İşlem hattı tamamlandıktan sonra çıkış Blob Depolama geri kaydedilir.

Olası kullanım örnekleri

Bir medya kuruluşunda, stilinin belirli bir tablo gibi görünmesini istediği bir video vardır. Kuruluş bu stili videonun tüm karelerine zamanında ve otomatik bir şekilde uygulamak istiyor. Sinir stili aktarım algoritmaları hakkında daha fazla arka plan için bkz . Convolutional Neural Networks Kullanarak Görüntü Stili Aktarımı (PDF).

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

GPU ve CPU karşılaştırması

Derin öğrenme iş yükleri için GPU'lar, genellikle benzer performans elde etmek için büyük boyutlu bir CPU kümesine ihtiyaç duyulduğu ölçüde CPU'ların performansını önemli ölçüde artırır. Bu mimaride yalnızca CPU'ları kullanabilirsiniz ancak GPU'lar çok daha iyi bir maliyet/performans profili sağlar. En son NCv3 serisi GPU için iyileştirilmiş VM'leri kullanmanızı öneririz.

GPU'lar tüm bölgelerde varsayılan olarak etkinleştirilmez. GPU'ların etkin olduğu bir bölge seçtiğinizden emin olun. Ayrıca abonelikler, GPU için iyileştirilmiş VM'ler için varsayılan olarak sıfır çekirdek kotası içerir. Bir destek isteği açarak bu kotayı yükseltebilirsiniz. Aboneliğinizin iş yükünüzü çalıştırmak için yeterli kotaya sahip olduğundan emin olun.

VM'ler ve çekirdekler arasında paralelleştirme

Bir stil aktarım işlemini toplu iş olarak çalıştırdığınızda, öncelikli olarak GPU'larda çalışan işlerin VM'ler arasında paralelleştirilmesi gerekir. İki yaklaşım mümkündür: Tek BIR GPU'ya sahip VM'leri kullanarak daha büyük bir küme oluşturabilir veya birçok GPU'ya sahip VM'leri kullanarak daha küçük bir küme oluşturabilirsiniz.

Bu iş yükü için bu iki seçenek benzer performansa sahiptir. VM başına daha fazla GPU ile daha az VM kullanmak veri taşımayı azaltmaya yardımcı olabilir. Ancak, bu iş yükü için iş başına veri hacmi büyük olmadığından Blob Depolama tarafından çok fazla azaltma gözlemlemezsiniz.

MPI adımı

Azure Machine Learning işlem hattını oluştururken paralel hesaplama gerçekleştirmek için kullanılan adımlardan biri (ileti işleme arabirimi) MPI adımıdır. MPI adımı, verileri kullanılabilir düğümler arasında eşit bir şekilde bölmeye yardımcı olur. İstenen tüm düğümler hazır olana kadar MPI adımı yürütülmüyor. Bir düğüm başarısız olursa veya önceden damgalanırsa (düşük öncelikli bir sanal makineyse), MPI adımının yeniden çalıştırılması gerekir.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış. Bu bölümde güvenli çözümler oluşturmaya yönelik önemli noktalar yer almaktadır.

Azure Blob Depolama erişimi kısıtlama

Bu başvuru mimarisinde, korunması gereken ana depolama bileşeni Azure Blob Depolama. GitHub deposunda gösterilen temel 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 İmzası (SAS) kullanmayı göz önünde bulundurun. Bu, hesap anahtarlarını sabit olarak kodlayıp düz metin olarak kaydetmeye gerek kalmadan depolamadaki nesnelere sınırlı erişim verir. Hesap anahtarları mantıksal uygulamanın tasarımcı arabiriminin içinde düz metin olarak göründüğünden bu yaklaşım özellikle yararlıdır. SAS kullanmak, depolama hesabının uygun idareye sahip olduğundan ve yalnızca bu hesabın sahibi olmasını istediği kişilere erişim verildiğinden emin olmanıza da yardımcı olur.

Daha hassas verilere sahip senaryolar için, bu anahtarlar iş yükündeki tüm giriş ve çıkış verilerine tam erişim sağladığından tüm depolama anahtarlarınızın korunduğundan emin olun.

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ı senaryo için depolamadaki veriler bekleme sırasında şifrelenmelidir. Veriler bir konumdan diğerine her taşındığında, veri aktarımının güvenliğini sağlamak için Aktarım Katmanı Güvenliği'ni (TSL) kullanın. Daha fazla bilgi için bkz. Azure Depolama güvenlik kılavuzu.

Sanal ağda hesaplamanızın güvenliğini sağlama

Machine Learning işlem kümenizi dağıtırken, kümenizi bir sanal ağın alt 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ını sağlar.

Kötü amaçlı etkinliklere karşı koruma

Birden çok kullanıcının bulunduğu senaryolarda hassas verilerin kötü amaçlı etkinliklere karşı korunduğundan emin olun. Giriş verilerini özelleştirmek için diğer kullanıcılara bu dağıtıma erişim verilirse aşağıdaki önlemlere ve dikkat edilmesi gerekenlere dikkat edin:

  • Kullanıcıların erişimini yalnızca ihtiyaç duydukları kaynakla sınırlamak için Azure rol tabanlı erişim denetimini (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 yürütülebilir dosyaları değiştirememesini (kötü amaçlı kod eklemek için) ve hassas bilgileri barındırabilecek günlük dosyalarına erişimi olmamasını sağlar.
  • Kötü amaçlı kullanıcılar, iş kuyruğunda DDoS saldırısı gerçekleştirebilir veya yanlış biçimlendirilmiş zehirli iletileri iş kuyruğuna ekleyebilir ve sistemin kilitlenmesine veya sırayı kaldırma hatalarına neden olabilir.

Maliyet iyileştirme

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını aramaktır. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.

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 baskındır. Önemli zorluklardan biri, GPU özellikli bir makine kümesinde çalışmayı etkili bir şekilde paralel hale getirmedir.

Azure Machine Learning İşlem kümesi boyutu, kuyruktaki işlere bağlı olarak ölçeği otomatik olarak artırıp azaltabilir. En düşük ve en yüksek düğümleri ayarlayarak program aracılığıyla otomatik ölçeklendirmeyi etkinleştirebilirsiniz.

Hemen işleme gerektirmeyen işler için, otomatik ölçeklendirmeyi varsayılan durum (en düşük) sıfır düğüm kümesi olacak şekilde yapılandırın. 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 artırır. Toplu puanlama işlemi günde yalnızca birkaç kez veya daha az gerçekleşirse, bu ayar önemli maliyet tasarrufu sağlar.

Otomatik ölçeklendirme, birbirine çok yakın olan toplu işler için uygun olmayabilir. Kümenin çalışması ve kapanması için geçen süre de bir maliyete neden olur. Bu nedenle, bir toplu iş yükü önceki iş bittikten yalnızca birkaç dakika sonra başlarsa, kümenin işler arasında çalışmasını sağlamak daha uygun maliyetli olabilir.

Azure Machine Learning İşlem, düşük öncelikli sanal makineleri de destekler ve bu sayede hesaplamanızı indirimli sanal makinelerde çalıştırmanıza olanak tanır ve bunların herhangi bir zamanda önalımlı olabileceği uyarısını verir. Düşük öncelikli sanal makineler kritik olmayan toplu puanlama iş yükleri için idealdir.

Toplu işleri izleme

İşinizi çalıştırırken ilerleme durumunu izlemek ve işin beklendiği gibi çalıştığından emin olmak önemlidir. Ancak, bir etkin düğüm kümesi genelinde izlemek zor olabilir.

Kümenin genel durumunu denetlemek için Azure portalında Machine Learning hizmetine giderek kümedeki düğümlerin durumunu denetleyin. Düğüm etkin değilse veya bir iş başarısız olduysa, hata günlükleri Blob Depolama kaydedilir ve Azure portalından da erişilebilir.

İzleme, günlükleri Application Analizler'a bağlayarak veya kümenin durumunu ve işlerini yoklama amacıyla ayrı işlemler çalıştırarak daha da zenginleştirilebilir.

Azure Machine Learning ile oturum açma

Azure Machine Learning tüm stdout/stderr değerlerini otomatik olarak ilişkili Blob Depolama hesabına kaydeder. Aksi belirtilmediği sürece, Azure Machine Learning çalışma alanınız otomatik olarak bir depolama hesabı sağlar ve günlüklerinizi buna döküm eder. Günlük dosyalarında gezinmenin daha kolay bir yolu olan Azure Depolama Gezgini gibi bir depolama gezinti aracı da kullanabilirsiniz.

Bu senaryoyu dağıtın

Bu başvuru mimarisini dağıtmak için GitHub deposunda açıklanan adımları izleyin.

Azure Kubernetes Service'i kullanarak derin öğrenme modelleri için toplu puanlama mimarisi de dağıtabilirsiniz. Bu GitHub deposunda açıklanan adımları izleyin.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar