Kötegelt pontozás mélytanulási modellekhez az Azure Machine Tanulás-folyamatokkal

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

Ez a referenciaarchitektúra bemutatja, hogyan alkalmazhat neurális stílusú átvitelt egy videóra az Azure Machine Tanulás használatával. A stílusátvitel egy olyan mélytanulási technika, amely egy meglévő képet egy másik kép stílusában alkot. Ezt az architektúrát minden olyan forgatókönyv esetében általánosíthatja, amely a kötegelt pontozást mély tanulással használja.

Architektúra

Architektúradiagram az Azure Machine Tanulás használó mélytanulási modellekhez.

Töltse le az architektúra Visio-fájlját.

Munkafolyamat

Az architektúra az alábbi összetevőkből áll.

Compute

Az Azure Machine Tanulás folyamatokat használ reprodukálható és könnyen kezelhető számítási sorozatok létrehozásához. Emellett egy felügyelt számítási célt is kínál (amelyen egy folyamatszámítás futtatható) azure machine Tanulás Compute néven gépi tanulási modellek betanításához, üzembe helyezéséhez és pontozásához.

Tárolás

Az Azure Blob Storage tárolja az összes képet (bemeneti képeket, stílusképeket és kimeneti képeket). Az Azure Machine Tanulás integrálható a Blob Storage szolgáltatással, így a felhasználóknak nem kell manuálisan áthelyezni az adatokat a számítási platformok és a blobtárolók között. A Blob Storage a számítási feladat által igényelt teljesítmény szempontjából is költséghatékony.

Eseményindító

Az Azure Logic Apps elindítja a munkafolyamatot. Amikor a logikai alkalmazás észleli, hogy egy blob lett hozzáadva a tárolóhoz, aktiválja az Azure Machine Tanulás folyamatot. A Logic Apps kiválóan alkalmas erre a referenciaarchitektúrára, mivel könnyen észlelheti a blobtároló változásait, és egyszerűen módosíthatja az eseményindítót.

Az adatok előfeldolgozása és utófeldolgozása

Ez a referenciaarchitektúra egy fán lévő orangután videofelvételeit használja.

  1. Az FFmpeg használatával kinyerheti a hangfájlt a videofelvételekből, hogy a hangfájl később újra összefűzhető legyen a kimeneti videóban.
  2. Az FFmpeg használatával a videót különálló keretekre bonthatja. A keretek feldolgozása egymástól függetlenül, párhuzamosan történik.
  3. Ezen a ponton az egyes keretekre párhuzamosan alkalmazhat neurális stílusátvitelt.
  4. Miután az egyes kereteket feldolgozta, az FFmpeg használatával újra összezárhatja a kereteket.
  5. Végül helyezze újra a hangfájlt a restitched felvételhez.

Összetevők

Megoldás részletei

Ez a referenciaarchitektúra olyan számítási feladatokhoz készült, amelyeket új médiatartalmak jelenléte vált ki az Azure Storage-ban.

A feldolgozás a következő lépéseket foglalja magában:

  1. Videofájl feltöltése az Azure Blob Storage-ba.
  2. A videófájl aktiválja az Azure Logic Appst, hogy kérést küldjön az Azure Machine Tanulás-folyamat közzétett végpontjának.
  3. A folyamat feldolgozza a videót, stílusátvitelt alkalmaz az MPI-vel, és feldolgozza a videót.
  4. A kimenet a folyamat befejezése után vissza lesz mentve a Blob Storage-ba.

Lehetséges használati esetek

Egy médiaszervezetnek van egy videója, amelynek stílusát módosítani szeretné, hogy egy adott festményhez hasonlítson. A szervezet ezt a stílust a videó minden képkockájára időben és automatizált módon szeretné alkalmazni. A neurális stílusátviteli algoritmusokkal kapcsolatos további háttérért lásd: Képstílusátvitel konvolúciós neurális hálózatok használatával (PDF).

Megfontolások

Ezek a szempontok implementálják az Azure Well-Architected Framework alappilléreit, amely a számítási feladatok minőségének javítására használható vezérelvek halmaza. További információ: Microsoft Azure Well-Architected Framework.

Teljesítmény hatékonysága

A teljesítménybeli hatékonyság lehetővé teszi, hogy a számítási feladatok hatékonyan méretezhetők legyenek a felhasználók igényei szerint. További információ: Teljesítményhatékonysági pillér áttekintése.

GPU és CPU

A mélytanulási számítási feladatok esetében a GPU-k általában jelentős mértékben nem teljesítenek processzorokat, olyannyira, hogy általában nagy méretű processzorfürtre van szükség az összehasonlítható teljesítmény eléréséhez. Bár ebben az architektúrában csak CPU-kat használhat, a GPU-k sokkal jobb költség- és teljesítményprofilt biztosítanak. Javasoljuk, hogy a legújabb NCv3 gpu-optimalizált virtuális gépeket használja.

A GPU-k alapértelmezés szerint nem minden régióban engedélyezettek. Győződjön meg arról, hogy olyan régiót jelöl ki, amelyben engedélyezve van a GPU-k engedélyezése. Emellett az előfizetések alapértelmezett nulla magos kvótával rendelkeznek a GPU-optimalizált virtuális gépekhez. Ezt a kvótát támogatási kérelem megnyitásával emelheti. Győződjön meg arról, hogy az előfizetés rendelkezik elegendő kvótával a számítási feladat futtatásához.

Párhuzamosítás virtuális gépek és magok között

Amikor kötegelt feladatként futtat stílusátviteli folyamatot, az elsősorban GPU-kon futó feladatokat párhuzamosan kell futtatni a virtuális gépek között. Két módszer lehetséges: Létrehozhat egy nagyobb fürtöt egyetlen GPU-val rendelkező virtuális gépek használatával, vagy létrehozhat egy kisebb fürtöt több GPU-val rendelkező virtuális gépekkel.

Ehhez a számítási feladathoz ez a két lehetőség összehasonlítható teljesítménnyel rendelkezik. Ha kevesebb virtuális gépet használ több GPU-val virtuális gépenként, azzal csökkentheti az adatáthelyezést. A számítási feladatonkénti adatmennyiség azonban nem nagy, ezért a Blob Storage nem fog sok szabályozást megfigyelni.

MPI-lépés

Az Azure Machine Tanulás-folyamat létrehozásakor a párhuzamos számítások végrehajtásának egyik lépése az MPI(üzenetfeldolgozó felület) lépés. Az MPI lépés segít egyenletesen felosztani az adatokat az elérhető csomópontok között. Az MPI-lépés csak akkor fut, ha az összes kért csomópont készen áll. Ha egy csomópont meghibásodik vagy előre ki van adva (ha alacsony prioritású virtuális gépről van szó), az MPI-lépést újra kell futtatni.

Biztonság

A biztonság biztosítékokat nyújt a szándékos támadások és az értékes adatokkal és rendszerekkel való visszaélés ellen. További információ: A biztonsági pillér áttekintése. Ez a szakasz a biztonságos megoldások létrehozásának szempontjait tartalmazza.

Az Azure Blob Storage-hoz való hozzáférés korlátozása

Ebben a referenciaarchitektúrában az Azure Blob Storage a fő tárolási összetevő, amelyet védeni kell. A GitHub-adattárban látható alapkonfiguráció tárfiókkulcsokkal fér hozzá a blobtárolóhoz. A további szabályozás és védelem érdekében fontolja meg inkább a közös hozzáférésű jogosultságkód (SAS) használatát. Ez korlátozott hozzáférést biztosít a tárban lévő objektumokhoz anélkül, hogy a fiókkulcsokat keményen kellene kódolni vagy egyszerű szövegként menteni. Ez a megközelítés különösen hasznos, mert a fiókkulcsok egyszerű szövegben láthatók a logikai alkalmazás tervezőfelületén belül. Az SAS használata azt is segíti, hogy a tárfiók megfelelő irányítással rendelkezzen, és hogy a hozzáférés csak azoknak a személyeknek legyen biztosítva, akiknek rendelkezniük kell vele.

Bizalmasabb adatokkal rendelkező forgatókönyvek esetén győződjön meg arról, hogy az összes tárkulcs védett, mivel ezek a kulcsok teljes hozzáférést biztosítanak a számítási feladat összes bemeneti és kimeneti adatához.

Adattitkosítás és adatáthelyezés

Ez a referenciaarchitektúra stílusátvitelt használ egy kötegelt pontozási folyamat példájaként. Az adatérzékenyebb forgatókönyvek esetén a tárolóban lévő adatokat inaktív állapotban kell titkosítani. Minden alkalommal, amikor az adatok egyik helyről a másikra kerülnek, a Transport Layer Security (TSL) használatával biztonságossá teheti az adatátvitelt. További információt az Azure Storage biztonsági útmutatójában talál.

Számítás biztonságossá tétele virtuális hálózaton

A számítógép Tanulás számítási fürt üzembe helyezésekor konfigurálhatja, hogy a fürt ki legyen építve egy virtuális hálózat alhálózatán belül. Ez az alhálózat lehetővé teszi, hogy a fürt számítási csomópontjai biztonságosan kommunikáljanak más virtuális gépekkel.

Védelem a rosszindulatú tevékenységek ellen

Olyan helyzetekben, ahol több felhasználó is van, győződjön meg arról, hogy a bizalmas adatok védettek a rosszindulatú tevékenységekkel szemben. Ha más felhasználók hozzáférést kapnak ehhez az üzembe helyezéshez a bemeneti adatok testreszabásához, vegye figyelembe az alábbi óvintézkedéseket és szempontokat:

  • Az Azure szerepköralapú hozzáférés-vezérlésével (RBAC) csak a szükséges erőforrásokhoz korlátozhatja a felhasználók hozzáférését.
  • Két különálló tárfiók kiépítése. A bemeneti és kimeneti adatok tárolása az első fiókban. A külső felhasználók hozzáférést kaphatnak ehhez a fiókhoz. Végrehajtható szkripteket és kimeneti naplófájlokat tárol a másik fiókban. A külső felhasználók nem férhetnek hozzá ehhez a fiókhoz. Ez az elkülönítés biztosítja, hogy a külső felhasználók ne módosíthassák a végrehajtható fájlokat (rosszindulatú kód beszúrásához), és ne férhessenek hozzá a naplófájlokhoz, amelyek bizalmas információkat tárolhatnak.
  • A rosszindulatú felhasználók DDoS-támadást hajthatnak végre a feladatsoron, vagy helytelenül formázott mérgező üzeneteket szúrhatnak be a feladatsorba, ami a rendszer zárolását vagy lekérdezési hibákat okoz.

Költségoptimalizálás

A költségoptimalizálás a szükségtelen kiadások csökkentésének és a működési hatékonyság javításának módjairól szól. További információ: A költségoptimalizálási pillér áttekintése.

A tárolási és ütemezési összetevőkhöz képest az ebben a referenciaarchitektúrában használt számítási erőforrások messze uralják a költségeket. Az egyik fő kihívás a gpu-kompatibilis gépek fürtöinek hatékony párhuzamosítása.

Az Azure Machine Tanulás Számítási fürt mérete automatikusan fel- és leskálázható az üzenetsor feladataitól függően. Az automatikus skálázást programozott módon engedélyezheti a minimális és maximális csomópontok beállításával.

Az azonnali feldolgozást nem igénylő munkák esetében konfigurálja az automatikus skálázást, hogy az alapértelmezett állapot (minimum) nulla csomópontból álló fürt legyen. Ezzel a konfigurációval a fürt nulla csomóponttal indul, és csak akkor skálázható fel, ha feladatokat észlel az üzenetsorban. Ha a kötegpontozási folyamat naponta csak néhány alkalommal vagy kevesebb alkalommal történik, ez a beállítás jelentős költségmegtakarítást eredményez.

Előfordulhat, hogy az automatikus skálázás nem megfelelő olyan kötegelt feladatokhoz, amelyek túl közel történnek egymáshoz. A fürt elindításához és lepörgéséhez szükséges idő szintén költséggel jár, így ha egy kötegelt számítási feladat csak néhány perccel az előző feladat befejeződése után kezdődik, költséghatékonyabb lehet a fürt futtatása a feladatok között.

Az Azure Machine Tanulás Compute támogatja az alacsony prioritású virtuális gépeket is, amelyek lehetővé teszik, hogy a számításokat kedvezményes virtuális gépeken futtassa, azzal a kikötéssel, hogy bármikor elő lesznek kapcsolva. Az alacsony prioritású virtuális gépek ideálisak nem kritikus kötegpontozási számítási feladatokhoz.

Kötegelt feladatok figyelése

A feladat futtatása során fontos figyelni az előrehaladást, és ellenőrizni, hogy a feladat a várt módon működik-e. Azonban kihívást jelenthet az aktív csomópontok fürtöinek monitorozása.

A fürt általános állapotának ellenőrzéséhez nyissa meg a Machine Tanulás szolgáltatást az Azure Portalon a fürt csomópontjainak állapotának ellenőrzéséhez. Ha egy csomópont inaktív, vagy egy feladat meghiúsult, a hibanaplók a Blob Storage-ba lesznek mentve, és az Azure Portalon is elérhetők.

A figyelés tovább bővíthető, ha naplókat csatlakoztat az Application Elemzések-hez, vagy külön folyamatokat futtatva lekérdezi a fürt állapotát és feladatait.

Log with Azure Machine Tanulás

Az Azure Machine Tanulás automatikusan naplózza az összes stdout/stderrt a társított Blob Storage-fiókba. Ha másként nincs megadva, az Azure Machine Tanulás-munkaterület automatikusan kiépít egy tárfiókot, és a naplókat bele fogja dobni. Használhat egy tárolónavigációs eszközt is, például az Azure Storage Explorert, amely megkönnyíti a naplófájlok közötti navigálást.

A forgatókönyv üzembe helyezése

A referenciaarchitektúra üzembe helyezéséhez kövesse a GitHub-adattárban leírt lépéseket.

Az Azure Kubernetes Service használatával kötegelt pontozási architektúrát is üzembe helyezhet mélytanulási modellekhez. Kövesse az ebben a GitHub-adattárban leírt lépéseket.

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerző:

A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.

Következő lépések