Python-modellek kötegelt kiértékelése az Azure-on

Azure Container Registry
Azure Event Hubs
Azure Machine Learning
Azure SQL Database
Azure Stream Analytics

Ez az architektúra-útmutató bemutatja, hogyan hozhat létre skálázható megoldást az Azure Machine Tanulás kötegelt pontozási modellekhez. A megoldás sablonként használható, és általánosíthat a különböző problémákra.

Architektúra

Az Azure-beli Python-modellek kötegelt pontozását bemutató architektúradiagram

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

Munkafolyamat

Ez az architektúra-útmutató a streamelési és a statikus adatokra egyaránt alkalmazható, feltéve, hogy a betöltési folyamat az adattípushoz van igazítva. Az alábbi lépések és összetevők a két adattípus betöltését írják le.

Streamelési adatok:

  1. A streamelési adatok az IoT-érzékelőkből származnak, ahol az új eseményeket gyakran streamelik.
  2. A bejövő streamelési események várólistára kerülnek az Azure Event Hubs használatával, majd előre feldolgozzák az Azure Stream Analytics használatával.
    • Azure Event Hubs. Ez az üzenetbetöltési szolgáltatás másodpercenként több millió eseményüzenetet képes fogadni. Ebben az architektúrában az érzékelők adatstreamet küldenek az eseményközpontba.
    • Azure Stream Analytics. Eseményfeldolgozó motor. A Stream Analytics-feladat beolvassa az adatfolyamokat az eseményközpontból, és elvégzi a streamfeldolgozást.

Statikus adatok:

  1. A statikus adatkészletek fájlként tárolhatók az Azure Data Lake Storage-ban, vagy táblázatos formában az Azure Synapse-ban vagy az Azure SQL Database-ben.
  2. Az Azure Data Factory használható a tárolt adatkészlet összesítésére vagy előzetes feldolgozására.

Az adatbetöltés után fennmaradó architektúra egyenlő a streamelési és a statikus adatokkal, és a következő lépésekből és összetevőkből áll:

  1. A betöltött, összesített vagy előre feldolgozott adatok dokumentumként tárolhatók az Azure Data Lake Storage-ban, táblázatos formában az Azure Synapse-ban vagy az Azure SQL Database-ben. Ezeket az adatokat ezután az Azure Machine Tanulás fogja felhasználni.
  2. Az Azure Machine Tanulás a gépi tanulási modellek nagy léptékű betanítására, üzembe helyezésére és kezelésére szolgál. A kötegelt pontozás kontextusában az Azure Machine Tanulás létrehoz egy virtuális gépekből álló fürtöt automatikus skálázási beállítással, ahol a feladatok végrehajtása párhuzamosan történik a Python-szkriptekkel.
  3. A modellek felügyelt Batch-végpontokként vannak üzembe helyezve, amelyek aztán kötegelt következtetést végeznek nagy mennyiségű adaton egy adott időszak alatt. A Batch-végpontok adatokra vonatkozó mutatókat fogadnak és aszinkron módon futtatják a feladatokat az adatok számítási fürtökön való párhuzamos feldolgozásához.
  4. A következtetési eredmények dokumentumként tárolhatók az Azure Data Lake Storage-ban, vagy táblázatos formában az Azure Synapse-ban vagy az Azure SQL Database-ben.
  5. Vizualizáció: A tárolt modell eredményei felhasználhatók felhasználói felületeken, például Power BI-irányítópultokon vagy egyéni webalkalmazásokon keresztül.

Összetevők

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

A standard Python-modellek esetében általánosan elfogadott, hogy a processzorok elegendőek a számítási feladatok kezeléséhez. Ez az architektúra processzorokat használ. A mélytanulási számítási feladatok esetében azonban a grafikus feldolgozási egységek (GPU-k) általában jelentős mértékben felülmúlják a CPU-kat; általában nagy méretű processzorfürtre van szükség az összehasonlítható teljesítmény eléréséhez.

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

Amikor több modell pontozási folyamatait futtatja kötegelt módban, a feladatokat párhuzamosan kell futtatni a virtuális gépek között. Két megközelítés lehetséges:

  • Hozzon létre egy nagyobb fürtöt alacsony költségű virtuális gépek használatával.
  • Hozzon létre egy kisebb fürtöt nagy teljesítményű virtuális gépek használatával, és mindegyiken több mag érhető el.

Általánosságban elmondható, hogy a standard Python-modellek pontozása nem olyan igényes, mint a mélytanulási modellek pontozása, és egy kis fürtnek képesnek kell lennie nagy számú várólistás modell hatékony kezelésére. Az adathalmaz méretének növekedésével növelheti a fürtcsomópontok számát.

Ebben a forgatókönyvben egyetlen pontozási feladatot kell elküldeni egyetlen Azure Machine-Tanulás folyamatlépésen belül. Hatékonyabb lehet azonban több adattömb pontozása ugyanazon a folyamatlépésen belül. Ezekben az esetekben írjon egyéni kódot több adathalmaz olvasásához, és hajtsa végre a pontozási szkriptet egy egylépéses végrehajtás során.

Menedzsment

  • Feladatok monitorozása. Fontos figyelni a futó feladatok előrehaladását. Azonban kihívást jelenthet az aktív csomópontok fürtöinek monitorozása. A fürt csomópontjainak állapotának vizsgálatához használja az Azure Portalt a Gép Tanulás munkaterület kezeléséhez. Ha egy csomópont inaktív, vagy egy feladat meghiúsult, a hibanaplók blobtárolóba vannak mentve, és a Folyamatok szakaszban is elérhetők. A gazdagabb monitorozás érdekében csatlakoztassa a naplókat az Application Elemzések-hoz, vagy futtasson külön folyamatokat a fürt állapotának és feladatainak lekérdezéséhez.
  • Naplózás. A gépi Tanulás naplózza az összes stdout/stderrt a társított Azure Storage-fiókba. A naplófájlok egyszerű megtekintéséhez használjon egy tárolónavigációs eszközt, például az Azure Storage Explorert.

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.

Az architektúra-útmutatóban használt legdrágább összetevők a számítási erőforrások. A számítási fürt mérete az üzenetsorban lévő feladatoktól függően fel- és leskálázható. Engedélyezze az automatikus skálázást programozott módon a Python SDK-val a számítás kiépítési konfigurációjának módosításával. Vagy az Azure CLI használatával állítsa be a fürt automatikus skálázási paramétereit.

Az azonnali feldolgozást nem igénylő munkák esetében konfigurálja az automatikus skálázási képletet, 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 tesz lehetővé.

Előfordulhat, hogy az automatikus skálázás nem megfelelő az egymáshoz túl közel futó kötegelt feladatokhoz. Mivel a fürt üzembe helyezése és lepörgetése költséges, ha egy kötegelt számítási feladat csak néhány perccel az előző feladat befejezése után kezdődik, költséghatékonyabb lehet a fürt futtatása a feladatok között. Ez a stratégia attól függ, hogy a pontozási folyamatok nagy gyakorisággal (például óránként) vagy ritkábban (például havonta egyszer) futnak-e.

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ők:

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

Következő lépések

Termékdokumentáció:

Microsoft Learn-modulok: