Tato referenční architektura ukazuje, jak použít neuronovéý přenos stylu pro video pomocí Azure Machine Learning. Přenos ve stylu je hloubkové učení, které vytváří existující obrázek ve stylu jiného obrázku. Tato architektura se dá zobecnit pro jakýkoli scénář, který využívá dávkové vyhodnocování s hloubkovým učením. Nasaďte toto řešení.

Scénář: mediální organizace má video, jehož styl má být změněn tak, aby vypadal jako konkrétní vykreslování. Organizace chce tento styl použít pro všechny snímky videa včas a automatizovaným způsobem. Další informace o algoritmech přenosu ve stylu neuronové najdete v tématu přenos stylu obrázku pomocí souborů konvoluční neuronové Networks (PDF).
Tato referenční architektura je navržená pro úlohy, které se aktivují v rámci služby Azure Storage na základě přítomnosti nového média.
Zpracování zahrnuje následující kroky:
- Upload videosouboru do úložiště objektů Blob v Azure.
- soubor videa aktivuje Azure Logic Apps k odeslání požadavku do publikovaného koncového bodu kanálu Azure Machine Learning.
- Kanál zpracovává video, aplikuje na něj přenos ve stylu s MPI a postprocesses video.
- Až se kanál dokončí, uloží se výstup zpátky do úložiště objektů BLOB.
architektura pro kanál ML pro hloubkové učení
Tato architektura se skládá z následujících komponent.
Compute
Azure Machine Learning používá kanály k vytváření reprodukovatelných a snadno spravovatelných sekvencí výpočtu. nabízí taky spravovaný výpočetní cíl (na kterém se dá spustit výpočet kanálu) s názvem Azure Machine Learning compute pro školení, nasazování a vyhodnocování modelů strojového učení.
Storage
Úložiště objektů BLOB v Azure slouží k ukládání všech imagí (vstupních imagí, obrázků stylů a výstupních obrázků). Azure Machine Learning se integruje s úložištěm objektů blob, aby uživatelé nemuseli ručně přesouvat data mezi výpočetními platformami a úložišti objektů blob. Úložiště objektů BLOB je také cenově výhodné pro výkon, který tato úloha vyžaduje.
Aktivační událost nebo plánování
Azure Logic Apps slouží ke spuštění pracovního postupu. když aplikace logiky zjistí, že byl do kontejneru přidán objekt blob, aktivuje Azure Machine Learning kanál. 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, což je jednoduchý proces pro změnu triggeru.
Předzpracování a postprocessing našich dat
Tato referenční architektura používá video záběrů orangutan ve stromové struktuře.
- Použijte ffmpeg k extrakci zvukového souboru z záběru videa, aby se zvukový soubor mohl znovu uložit do výstupního videa později.
- Použijte FFmpeg k přerušení videa do jednotlivých snímků. Snímky se zpracují nezávisle, paralelně.
- V tomto okamžiku můžeme souběžně použít neuronovéý přenos stylu do každého jednotlivého snímku.
- Každý snímek je zpracovaný, musíme k opětovnému spojování snímků použít FFmpeg.
- Nakonec znovu připojíme zvukový soubor k znovu vydaným záběrům.
Otázky výkonu
GPU versus procesor
Pro úlohy obsáhlého učení procesory GPU obvykle vykonává CPU značnou velikostí v rozsahu, kdy je obvykle potřeba cluster výraznou procesorů pro dosažení srovnatelného výkonu. I když se jedná o možnost použít jenom procesory v této architektuře, GPU vám poskytne mnohem lepší profil nákladů a výkonu. Doporučujeme použít nejnovější NCv3 řadu optimalizovaných virtuálních počítačů s grafickým procesorem.
GPU nejsou ve výchozím nastavení ve všech oblastech povolené. Ujistěte se, že jste vybrali oblast s povoleným grafickým procesorem. Odběry mají navíc výchozí kvótu s nulovými jádry pro virtuální počítače optimalizované grafickým procesorem. 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í úlohy.
Virtuálního napříč virtuálními počítači versus jádry
Při spuštění procesu převodu stylu jako úlohy služby Batch bude nutné úlohy, které se spouštějí primárně v GPU, provádět paralelně napříč virtuálními počítači. Jsou možné dva přístupy: můžete vytvořit větší cluster pomocí virtuálních počítačů, které mají jeden GPU, nebo vytvořit menší cluster s použitím virtuálních počítačů s mnoha grafickými procesory.
Pro tuto úlohu budou mít tyto dvě možnosti srovnatelný výkon. Použití méně virtuálních počítačů s větším počtem GPU na jeden virtuální počítač může přispět k omezení přesunu dat. Datový svazek na úlohu pro tuto úlohu ale není velký, takže nebudete moct sledovat omezení podle úložiště objektů BLOB.
Krok MPI
při vytváření kanálu Azure Machine Learningje jedním z kroků, které se používají k provedení paralelního výpočtu, i krok MPI (rozhraní pro zpracování zpráv). Krok MPI vám pomůže rovnoměrně rozdělit data napříč dostupnými uzly. Krok MPI se nespustí, dokud nebudou připravené všechny požadované uzly. Pokud selže jeden uzel nebo dojde k jeho přerušení (Pokud se jedná o virtuální počítač s nízkou prioritou), bude nutné MPI krok znovu spustit.
Důležité informace o zabezpečení
Omezení přístupu k úložišti objektů BLOB v Azure
V této referenční architektuře je úložiště objektů BLOB v Azure hlavní součást úložiště, která se musí chránit. základní nasazení zobrazené v úložišti GitHub používá klíče účtu úložiště pro přístup k úložišti objektů blob. Pro lepší kontrolu a ochranu zvažte místo toho použití sdíleného přístupového podpisu (SAS) . Tím se uděluje omezený přístup k objektům v úložišti, aniž byste museli kód účtu zakódovat nebo je uložit ve formátu prostého textu. Tento přístup je obzvlášť užitečný vzhledem k tomu, že klíče účtu jsou viditelné ve formátu prostého textu uvnitř rozhraní návrháře aplikace logiky. Použití SAS taky pomáhá zajistit, aby měl účet úložiště správný zásad správného řízení a aby byl přístup povolen pouze lidem, které ho mají mít.
U scénářů s více citlivými daty se ujistěte, že jsou chráněné všechny klíče úložiště, 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 procesu dávkového vyhodnocování přenos stylu. U více scénářů závislých na datech by měla být data v úložišti zašifrovaná v klidovém stavu. Pokaždé, když se data přesunou z jednoho místa na další, k zabezpečení přenosu dat použijte TSL (Transport Layer Security). další informace najdete v tématu Azure Storage průvodce zabezpečením.
Zabezpečení výpočtu ve virtuální síti
při nasazování Machine Learning výpočetního clusteru můžete nakonfigurovat cluster tak, aby se zřídil v podsíti virtuální sítě. Tato podsíť umožňuje výpočetním uzlům v clusteru zabezpečeně komunikovat s jinými virtuálními počítači.
Ochrana před škodlivou aktivitou
Ve scénářích, kdy existuje více uživatelů, se ujistěte, že jsou citlivá data chráněná před škodlivou aktivitou. Pokud k tomuto nasazení přistupujete jiným uživatelům, abyste mohli přizpůsobit vstupní data, pamatujte na následující bezpečnostní opatření a důležité skutečnosti:
- Pomocí řízení přístupu na základě role Azure (Azure RBAC) omezte přístup uživatelů jenom na prostředky, které potřebují.
- Zřizování dvou samostatných účtů úložiště. Uložte vstupní a výstupní data do prvního účtu. K tomuto účtu se dá dostat externí uživatelé. Spustitelné skripty a výstupní soubory protokolů ukládejte v jiném účtu. Externí uživatelé by neměli mít k tomuto účtu přístup. Toto oddělení zajistí, že externí uživatelé nebudou moci upravovat žádné spustitelné soubory (pro vkládání škodlivého kódu) a nemají přístup k souborům protokolu, které by mohly uchovávat citlivé informace.
- Uživatelé se zlými úmysly mohou provádět útok na DDoS ve frontě úloh nebo vkládat poškozené poškozené zprávy do fronty úloh a způsobit tak, že systém bude uzamknout nebo způsobovat chyby při vyřazování z fronty.
Monitorování a protokolování
Monitorování úloh Batch
Při spuštění úlohy je důležité monitorovat průběh a zajistit, aby úloha fungovala podle očekávání. Může se ale jednat o výzvu k monitorování v clusteru aktivních uzlů.
chcete-li zjistit celkový stav clusteru, v Azure Portal spusťte službu Machine Learning a ověřte stav uzlů v clusteru. Pokud je uzel neaktivní nebo se úloha nezdařila, protokoly chyb budou uloženy do úložiště objektů BLOB a jsou také přístupné v Azure Portal.
monitorování lze dále rozšířit připojením protokolů k Application Insights nebo spuštěním samostatných procesů pro dotazování na stav clusteru a jeho úloh.
Protokolování pomocí Azure Machine Learning
Azure Machine Learning bude automaticky protokolovat všechny stdout/stderr do přidruženého účtu úložiště objektů blob. pokud není uvedeno jinak, v pracovním prostoru Azure Machine Learning se automaticky zřídí účet úložiště a do něj se zapíše do výpisu protokolů. můžete také použít navigační nástroj úložiště, například Průzkumník služby Azure Storage, což je snazší způsob navigace v souborech protokolu.
Důležité informace o nákladech
V porovnání se součástmi úložiště a plánování jsou výpočetní prostředky, které se v této referenční architektuře využívají, zcela v souladu s náklady. Jedním z hlavních výzev je efektivně virtuálního práci napříč clusterem počítačů s podporou GPU.
velikost Azure Machine Learning výpočetního clusteru se dá automaticky škálovat nahoru a dolů v závislosti na úlohách ve frontě. Automatické škálování můžete povolit programově tak, že nastavíte minimální a maximální počet uzlů.
Pro práci, která nevyžaduje okamžité zpracování, nakonfigurujte automatické škálování tak, aby výchozí stav (minimum) byl cluster s nulovými uzly. V této konfiguraci se cluster spouští s nulovými uzly a při zjišťování úloh ve frontě se škáluje. Pokud se proces dávkového vyhodnocování děje jenom několikrát za den nebo méně, toto nastavení vede k výraznému úspory nákladů.
Automatické škálování nemusí být vhodné pro dávkové úlohy, které se navzájem nevyskytují blízko sebe. Čas potřebný ke spuštění clusteru a jeho vypnutí také účtuje náklady, takže pokud úloha Batch začíná jenom několik minut od konce předchozí úlohy, může být cenově výhodnější udržovat cluster spuštěný mezi úlohami.
Azure Machine Learning Výpočetní prostředí podporuje také virtuální počítače s nízkou prioritou, což vám umožňuje spustit výpočet na zlevněných virtuálních počítačích s upozorněním, že je možné kdykoli zakončit. Virtuální počítače s nízkou prioritou jsou ideální pro úlohy dávkového vyhodnocování, které nejsou kritické.
Nasazení řešení
chcete-li nasadit tuto referenční architekturu, postupujte podle kroků popsaných v úložišti GitHub.
Poznámka
Můžete také nasadit architekturu vyhodnocování dávek pro modely hloubkového učení pomocí služby Azure Kubernetes. postupujte podle kroků popsaných v tomto úložišti GitHub.