Dávkové bodování pro modely hlubokého učení s využitím kanálů Azure Machine Učení

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

Tato referenční architektura ukazuje, jak použít přenos neurálního stylu na video pomocí služby Azure Machine Učení. Přenos stylu je technika hlubokého učení, která vytvoří existující obrázek ve stylu jiného obrázku. Tuto architekturu můžete generalizovat pro jakýkoli scénář, který používá dávkové vyhodnocování s hloubkovým učením.

Architektura

Architecture diagram for deep learning models using Azure Machine Learning.

Stáhněte si soubor aplikace Visio s touto architekturou.

Workflow

Tato architektura se skládá z následujících komponent.

Compute

Azure Machine Učení používá kanály k vytváření reprodukovatelných a snadno spravovatelných sekvencí výpočtů. Nabízí také spravovaný cílový výpočetní objekt (na kterém se dá spustit výpočet kanálu) označovaný jako Azure Machine Učení Compute pro trénování, nasazování a bodování modelů strojového učení.

Úložiště

Azure Blob Storage ukládá všechny obrázky (vstupní obrázky, stylové obrázky a výstupní obrázky). Azure Machine Učení se integruje se službou Blob Storage, aby uživatelé nemuseli ručně přesouvat data mezi výpočetními platformami a úložišti objektů blob. Blob Storage je také nákladově efektivní pro výkon, který tato úloha vyžaduje.

Trigger

Azure Logic Apps aktivuje pracovní postup. Když aplikace logiky zjistí, že se do kontejneru přidal objekt blob, aktivuje kanál azure machine Učení. Služba Logic Apps je vhodná pro tuto referenční architekturu, protože je to snadný způsob, jak detekovat změny v úložišti objektů blob a snadný proces změny triggeru.

Předběžné zpracování a následné zpracování dat

Tato referenční architektura používá videozáběry orangutanu ve stromu.

  1. Pomocí FFmpeg extrahujte zvukový soubor ze záznamu videa, aby bylo možné zvukový soubor později stehovat zpět do výstupního videa.
  2. Pomocí FFmpeg rozdělte video do jednotlivých snímků. Rámce se zpracovávají nezávisle, paralelně.
  3. V tomto okamžiku můžete použít přenos neurálního stylu na každý jednotlivý rámec paralelně.
  4. Po zpracování každého rámce použijte FFmpeg k obnovení snímků zpět dohromady.
  5. Nakonec znovu připojte zvukový soubor k restitchovaným záběrům.

Součásti

Podrobnosti řešení

Tato referenční architektura je určená pro úlohy aktivované přítomností nových médií v úložišti Azure.

Zpracování zahrnuje následující kroky:

  1. Nahrajte videosoubor do služby Azure Blob Storage.
  2. Videosoubor aktivuje Azure Logic Apps, aby odeslal žádost do publikovaného koncového bodu kanálu Azure Machine Učení.
  3. Kanál zpracuje video, použije přenos stylu pomocí MPI a po zpracování video.
  4. Výstup se po dokončení kanálu uloží zpět do služby Blob Storage.

Potenciální případy použití

Mediální organizace má video, jehož styl chce změnit tak, aby vypadal jako určitý obraz. Organizace chce tento styl použít na všechny snímky videa včas a automaticky. Další informace o algoritmech přenosu neurálních stylů naleznete v tématu Přenos stylu obrázku pomocí konvoluční neurální sítě (PDF).

Důležité informace

Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Efektivita výkonu

Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Další informace najdete v tématu Přehled pilíře efektivity výkonu.

GPU a procesor

V případě úloh hlubokého učení obvykle grafické procesory výrazně odvádějí procesory o značné množství, a to v rozsahu, kdy je k získání srovnatelného výkonu obvykle potřeba velikostovatelný cluster procesorů. I když v této architektuře můžete používat jenom procesory, grafické procesory poskytují mnohem lepší profil nákladů a výkonu. Doporučujeme používat nejnovější řadu NCv3 virtuálních počítačů optimalizovaných pro GPU.

Grafické procesory nejsou ve výchozím nastavení povolené ve všech oblastech. Nezapomeňte vybrat oblast s povolenými grafickými procesory. Předplatná mají navíc výchozí kvótu nulových jader pro virtuální počítače optimalizované pro GPU. Tuto kvótu můžete zvýšit otevřením žádosti o podporu. Ujistěte se, že vaše předplatné má dostatečnou kvótu pro spuštění vaší úlohy.

Paralelizace napříč virtuálními počítači a jádry

Když spustíte proces přenosu stylu jako dávkovou úlohu, úlohy, které běží primárně na gpu, musí být paralelizovány napříč virtuálními počítači. Existují dva přístupy: Větší cluster můžete vytvořit pomocí virtuálních počítačů, které mají jeden GPU, nebo vytvořit menší cluster pomocí virtuálních počítačů s mnoha grafickými procesory.

Pro tuto úlohu mají tyto dvě možnosti srovnatelný výkon. Použití menšího počtu virtuálních počítačů s více grafickými procesory na virtuální počítač může pomoct snížit přesun dat. Objem dat na úlohu pro tuto úlohu ale není velký, takže nebudete sledovat velké omezování službou Blob Storage.

Krok MPI

Při vytváření kanálu Učení počítače Azure je jedním z kroků použitých k provádění paralelních výpočtů krok MPI (rozhraní zpracování zpráv). Krok MPI pomáhá rovnoměrně rozdělit data mezi dostupné uzly. Krok MPI se nespustí, dokud nebudou připravené všechny požadované uzly. Pokud jeden uzel selže nebo dojde k výpadku (pokud se jedná o virtuální počítač s nízkou prioritou), bude nutné krok MPI spustit znovu.

Zabezpečení

Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení. Tato část obsahuje důležité informace o vytváření zabezpečených řešení.

Omezení přístupu ke službě Azure Blob Storage

V této referenční architektuře je Azure Blob Storage hlavní komponentou úložiště, kterou je potřeba chránit. Základní nasazení uvedené v úložišti GitHub používá klíče účtu úložiště pro přístup k úložišti objektů blob. Pro další kontrolu a ochranu zvažte místo toho použití sdíleného přístupového podpisu (SAS). Tím se udělí omezený přístup k objektům v úložišti, aniž byste museli pevně zakódovat klíče účtu nebo je uložit ve formátu prostého textu. Tento přístup je zvlášť užitečný, protože klíče účtu jsou viditelné ve formátu prostého textu v rozhraní návrháře aplikace logiky. Použití SAS také pomáhá zajistit, aby měl účet úložiště správné zásady správného řízení a že přístup je udělen pouze lidem, kteří ho mají mít.

Ve scénářích s citlivějšími daty se ujistěte, že jsou všechny klíče úložiště chráněné, protože tyto klíče udělují úplný přístup ke všem vstupním a výstupním datům z úlohy.

Šifrování dat a přesun dat

Tato referenční architektura používá jako příklad dávkového vyhodnocování přenos stylů. V případě složitějších scénářů s citlivými daty by se neaktivní uložená data měla šifrovat. Pokaždé, když se data přesunou z jednoho umístění do druhého, použijte K zabezpečení přenosu dat protokol TSL (Transport Layer Security). Další informace najdete v průvodci zabezpečením služby Azure Storage.

Zabezpečení výpočtů ve virtuální síti

Při nasazování počítače Učení výpočetního clusteru můžete nakonfigurovat zřízení clusteru v podsíti virtuální sítě. Tato podsíť umožňuje výpočetním uzlům v clusteru bezpečně komunikovat s jinými virtuálními počítači.

Ochrana před škodlivými aktivitami

Ve scénářích, ve kterých je více uživatelů, se ujistěte, že jsou citlivá data chráněná proti škodlivé aktivitě. Pokud mají ostatní uživatelé přístup k tomuto nasazení, aby mohli přizpůsobit vstupní data, poznamenejte si následující opatření a důležité informace:

  • Pomocí řízení přístupu na základě role v Azure (Azure RBAC) omezte přístup uživatelů jenom na prostředky, které potřebují.
  • Zřiďte dva samostatné účty úložiště. Uložte vstupní a výstupní data do prvního účtu. K tomuto účtu můžou mít přístup externí uživatelé. Ukládejte spustitelné skripty a výstupní soubory protokolů v druhém účtu. Externí uživatelé by k tomuto účtu neměli mít přístup. Toto oddělení zajišťuje, aby externí uživatelé nemohli upravovat žádné spustitelné soubory (pro vložení škodlivého kódu) a neměli přístup k souborům protokolů, které by mohly obsahovat citlivé informace.
  • Uživatelé se zlými úmysly můžou na frontu úloh provádět útok DDoS nebo vkládat poškozené zprávy otrávené do fronty úloh, což způsobí, že se systém zamkne nebo způsobí chyby vyřazení z fronty.

Optimalizace nákladů

Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

Ve srovnání s komponentami úložiště a plánování dominují výpočetní prostředky používané v této referenční architektuře, pokud jde o náklady. Jedním z hlavních problémů je efektivní paralelizace práce napříč clusterem počítačů s podporou GPU.

Velikost výpočetního clusteru Azure Učení může automaticky vertikálně navýšit a snížit kapacitu v závislosti na úlohách ve frontě. Automatické škálování můžete povolit programově nastavením minimálního a maximálního počtu uzlů.

Pro práci, která nevyžaduje okamžité zpracování, nakonfigurujte automatické škálování, aby výchozí stav (minimum) byl cluster s nulovými uzly. S touto konfigurací cluster začíná s nulovými uzly a vertikálně navyšuje kapacitu pouze v případě, že detekuje úlohy ve frontě. Pokud se proces dávkového vyhodnocování provede jen několikrát denně nebo méně, výsledkem tohoto nastavení jsou významné úspory nákladů.

Automatické škálování nemusí být vhodné pro dávkové úlohy, ke kterým dochází příliš blízko sebe. Čas potřebný ke spuštění a zprovoznění clusteru také způsobuje náklady, takže pokud dávkové úlohy začínají jenom pár minut po skončení předchozí úlohy, může být cenově výhodnější zachovat cluster spuštěný mezi úlohami.

Azure Machine Učení Compute také podporuje virtuální počítače s nízkou prioritou, které umožňují spouštět výpočty na diskontních virtuálních počítačích s upozorněním, že se můžou kdykoliv předcházet. Virtuální počítače s nízkou prioritou jsou ideální pro méně důležité dávkové vyhodnocování úloh.

Monitorování dávkových úloh

Při spouštění úlohy je důležité sledovat průběh a ujistit se, že úloha funguje podle očekávání. Monitorování v clusteru aktivních uzlů ale může být náročné.

Pokud chcete zkontrolovat celkový stav clusteru, přejděte na webu Azure Portal do služby Machine Učení a zkontrolujte stav uzlů v clusteru. Pokud je uzel neaktivní nebo úloha selhala, protokoly chyb se uloží do služby Blob Storage a jsou také přístupné na webu Azure Portal.

Monitorování je možné dále rozšířit připojením protokolů k aplikačním Přehledy nebo spuštěním samostatných procesů, které se budou dotazovat na stav clusteru a jeho úloh.

Protokolování s využitím služby Azure Machine Učení

Azure Machine Učení automaticky protokoluje všechny stdout/stderr do přidruženého účtu Blob Storage. Pokud není uvedeno jinak, váš pracovní prostor Azure Machine Učení automaticky zřídí účet úložiště a vypíše do něj vaše protokoly. Můžete také použít navigační nástroj úložiště, například Průzkumník služby Azure Storage, což je jednodušší způsob, jak procházet soubory protokolu.

Nasazení tohoto scénáře

Pokud chcete tuto referenční architekturu nasadit, postupujte podle kroků popsaných v úložišti GitHub.

Můžete také nasadit architekturu dávkového bodování pro modely hlubokého učení pomocí služby Azure Kubernetes Service. Postupujte podle kroků popsaných v tomto úložišti GitHubu.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky