A többmodelles architektúra megközelítésének használata a gépi tanulási modellek méretezéséhez
Ez a cikk az Azure Machine Learning- és számítási fürtöket használó modellek architektúráját ismerteti. A többmodelles architektúra sokoldalúságot biztosít az összetett beállításokat igénylő helyzetekhez.
Architektúra
Töltse le az architektúra Visio-fájlját.
Adatfolyam
Az alábbi adatfolyam az előző diagramnak felel meg:
adatbetöltés:
Az Azure Data Factory lekéri az adatokat egy forrásadatbázisból, és átmásolja azOkat az Azure Data Lake Storage-ba.
Az adatok ezután táblázatos adathalmazként egy Machine Learning-adattárban lesznek tárolva.
Modellbetanítási folyamat:
Adatok előkészítése:
A betanítási folyamat lekéri az adatokat az adattárból, és szükség szerint átalakítja azokat.
Az adatok adatkészletekbe lesznek csoportosítva a modellek betanításához.
Modellek betanítása:
A folyamat az adatelőkészítés során létrehozott összes adathalmazhoz betanít modelleket.
A
ParallelRunStep
osztály használatával több modellt tanít be párhuzamosan.A modellek betanítása után a folyamat regisztrálja a modelleket és azok tesztelési metrikáit a Machine Learningben.
Modell-előléptetési folyamat:
Modellek kiértékelése:
Az előléptetési folyamat kiértékeli a betanított modelleket, mielőtt éles környezetbe helyezi őket.
A DevOps-folyamat üzleti logikát alkalmaz annak meghatározására, hogy egy modell megfelel-e az üzembe helyezés feltételeinek. Például ellenőrizheti, hogy a tesztelési adatok pontossága meghaladja-e a 80%.
Modellek regisztrálása:
- Az előléptetési folyamat regisztrálja a jogosult modelleket az éles Machine Learning-munkaterületen.
Kötegpontozási folyamat modellje:
Adatok előkészítése:
A kötegelt pontozási folyamat adatokat kér le az adattárból, és szükség szerint átalakítja az egyes fájlokat.
Az adatok pontozás céljából adatkészletekbe lesznek csoportosítva.
Pontszámmodellek:
A folyamat a
ParallelRunStep
osztályt használja több adathalmaz egyidejű pontozására.Modellcímkék keresésével azonosítja a Machine Learning egyes adathalmazainak megfelelő modellt.
A modell letöltődik, és az adathalmaz pontozására szolgál.
A
DataTransferStep
osztály visszaírja az eredményeket az Azure Data Lake-be.Az előrejelzések az Azure Data Lake-ből a Synapse SQL-be kerülnek kézbesítésre.
A felügyelt online végpont valós idejű pontozást biztosít.
A nagy számú modell miatt az előre betöltött modellek helyett igény szerint töltődnek be.
Eredmények:
Előrejelzések: A kötegelt pontozási folyamat az előrejelzéseket a Synapse SQL-be menti.
Metrikák: A Microsoft Power BI a modell előrejelzéseihez csatlakozva lekéri és összesíti a bemutató eredményeit.
Összetevők
Azure Data Factory egy felhőalapú adatintegrációs szolgáltatás, amely lehetővé teszi adatvezérelt munkafolyamatok létrehozását az adatáthelyezés és -átalakítás vezényléséhez és automatizálásához. Ebben az architektúrában az Azure Data Factory betölti a vállalati adatokat és a külső metaadatokat a Data Lake Storage-ba.
Az Azure DevOps olyan fejlesztői szolgáltatások készlete, amelyek átfogó alkalmazás- és infrastruktúra-életciklus-felügyeletet biztosítanak. Tartalmazza a folyamatos integrációs és folyamatos kézbesítési (CI/CD) folyamatokhoz, a munkakövetéshez, a forráskövetéshez, a folyamatok összeállításához, a csomagkezeléshez és a tesztelési megoldásokhoz szükséges eszközöket. Ebben az architektúrában az Azure DevOps a CI/CD-folyamatok kezelésére szolgál a modellek előléptetésének, tesztelésének és éles környezetekben való üzembe helyezésének automatizálásához.
Azure SQL Database egy teljes mértékben felügyelt relációs felhőadatbázis. Ebben az architektúrában az SQL Database olyan strukturált adatok tárolására szolgál, amelyek lekérdezhetők vagy elemezhetők az adatfolyam részeként.
Azure Stream Analytics egy valós idejű elemzési és összetett eseményfeldolgozó szolgáltatás, amely nagy mennyiségű gyors streamelési adat elemzésére és feldolgozására szolgál. Ebben az architektúrában a Stream Analytics valós idejű adatfeldolgozásra használható.
Az Azure Synapse Analytics egy olyan elemzési szolgáltatás, amely egyesíti az adatintegrációt, a nagyvállalati adattárházakat és a big data elemzéseket. Ebben az architektúrában kötegelt pontozási eredmények tárolására szolgál. Ez a módszer lehetővé teszi az előrejelzések hatékony lekérdezését és lekérését jelentéskészítéshez vagy elemzéshez. A Synapse SQL az alsóbb rétegbeli alkalmazások előrejelzéseinek kiszolgálására szolgál, és lehetővé teszi a Power BI-hoz hasonló vizualizációs eszközök számára az összesített eredmények elérését.
A Data Lake Storage egy nagymértékben skálázható és biztonságos tárolási szolgáltatás a nagy teljesítményű elemzési számítási feladatokhoz. Ebben az architektúrában a Data Lake Storage a nyers és átalakított adathalmazok elsődleges tárolási rétege, valamint a pontozási folyamatok eredményeinek tárolására szolgál.
Machine Learning egy nagyvállalati szintű gépi tanulási szolgáltatás modellek gyors létrehozásához és üzembe helyezéséhez. Minden készségszinten biztosít a felhasználóknak olyan eszközöket, mint az alacsony kódszámú tervező, az automatizált gépi tanulás és egy üzemeltetett Jupyter notebook-környezet, amely támogatja a különböző integrált fejlesztési környezeteket. Ebben az architektúrában a Machine Learning a modellek életciklusának kezelésére szolgál, beleértve a betanítást, az értékelést és az üzembe helyezést. Emellett folyamatokat is vezényel olyan feladatokhoz, mint a betanítás, az előléptetés és a pontozás.
felügyelt online végpontok a Machine Learning valós idejű pontozáshoz használt funkciója. Ebben az architektúrában egy felügyelt online végpont skálázható és biztonságos módot biztosít az előrejelzések közel valós idejű kiszolgálásához, ha igény szerint betölti a gépi tanulási modelleket.
A ParallelRunStep osztály a Machine Learning-folyamatok azon összetevői, amelyeket a párhuzamos feladatok hatékony futtatásához használnak. Lehetővé teszi a kötegelt feladatok skálázható feldolgozását, például betanítást vagy több modell egyidejű pontozását. Ebben az architektúrában a
ParallelRunStep
osztály a modellbetanítási és kötegelt pontozási folyamatokban is használható több adathalmaz vagy modell párhuzamos betanítására vagy pontozására, ami jelentősen csökkenti ezeknek a műveleteknek a futásidejét.
Power BI olyan szoftverszolgáltatások, alkalmazások és összekötők gyűjteménye, amelyek együttműködve koherens, vizuálisan magával ragadó és interaktív elemzésekké alakítják a nem kapcsolódó adatforrásokat. Ebben az architektúrában a Power BI a Synapse SQL-hez csatlakozva interaktív irányítópultokon keresztül lekéri és bemutatja az előrejelzéseket és az összesített metrikákat.
Alternatívák
A forrásadatokhoz bármilyen adatbázist használhat.
Az Azure Kubernetes Service (AKS) használatával valós idejű következtetést végezhet felügyelt online végpontok helyett. Az AKS lehetővé teszi a tárolóalapú modellek üzembe helyezését, és nagyobb felügyeletet biztosít az üzembe helyezés felett. Ezek a képességek lehetővé teszik a modellek dinamikus betöltését a bejövő kérések kezeléséhez az erőforrások kimerítése nélkül.
Forgatókönyv részletei
Sok gépi tanulási probléma túl összetett ahhoz, hogy egyetlen gépi tanulási modell megoldódjon. Akár minden üzlet minden eleméhez előrejelzi az értékesítést, akár több száz olajkút karbantartását modellezi, az egyes példányokhoz tartozó modell számos gépi tanulási probléma eredményeit javíthatja. Ez a számos modellminta számos iparágban gyakori, és számos valós használati esetet kínál. A Machine Learning használatával egy végpontok közötti számos modellfolyamat tartalmazhat modellbetanítást, kötegelt következtetéses üzembe helyezést és valós idejű üzembe helyezést.
Számos modellmegoldáshoz eltérő adatkészletre van szükség minden modellhez a betanítás és a pontozás során. Ha például a feladat az értékesítések előrejelzése minden egyes üzletben, minden adatkészlet egy egyedi elemtároló-kombinációnak felel meg.
Lehetséges használati esetek
Kiskereskedelmi: Egy élelmiszerboltláncnak külön bevétel-előrejelzési modellt kell létrehoznia minden egyes üzlethez és tételhez, összesen több mint 1000 modellt kell létrehoznia az egyes áruházakhoz.
Ellátási lánc: A raktár és a termék minden egyes kombinációjához a disztribúciós vállalatnak optimalizálnia kell a készletet.
Éttermek: Egy több ezer franchise-t tartalmazó láncnak előre kell jeleznie az egyes franchise-ok iránti keresletet.
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 készlete. További információ: Well-Architected Keretrendszer.
adatpartíciók: az adatok partíciókra való felosztása elengedhetetlen a számos modellminta implementálához. Ha minden tárolóhoz egy modellt szeretne, minden adatkészlet egyetlen tároló összes adatát tartalmazza, így annyi adatkészlet van, mint amennyi tároló található. Ha áruházak szerint szeretné modelleztetni a termékeket, a termék és a tároló minden kombinációjához van adatkészlet. A forrásadat-formátumtól függően előfordulhat, hogy könnyen particionálható az adatok particionálása, vagy kiterjedt adatelkülönítést és átalakítást igényelhet. A Spark és a Synapse SQL jól méretezhető ezekhez a feladatokhoz, míg a Python pandas nem azért, mert egyetlen csomóponton és folyamaton fut.
Modellkezelés: A betanítási és pontozási folyamatok azonosítják és meghívják az egyes adathalmazok megfelelő modelljét. Ezt úgy hajtják végre, hogy kiszámolják az adathalmazt jellemző címkéket, majd a címkék használatával megkeresik az egyező modellt. A címkék azonosítják az adatpartíciós kulcsot és a modellverziót, és egyéb információkat is tartalmazhatnak.
Válassza ki a megfelelő architektúrát:
A Spark akkor alkalmas, ha a betanítási folyamat összetett adatátalakítási és csoportosítási követelményekkel rendelkezik. Rugalmas felosztási és csoportosítási technikákat biztosít az adatok csoportosításához olyan jellemzők kombinációjával, mint például a terméktároló vagy a helyalapú termék. Az eredmények egy Spark DataFrame-ben helyezhetők el a következő lépésekben való használatra.
Ha a gépi tanulási betanítási és pontozási algoritmusok egyszerűek, előfordulhat, hogy képes lesz az adatok particionálására olyan kódtárakkal, mint a scikit-learn. Ebben a forgatókönyvben előfordulhat, hogy nincs szüksége Sparkra, így elkerülheti az Azure Synapse Analytics vagy az Azure Databricks telepítésekor felmerülő esetleges összetettségeket.
Ha a betanítási adatkészletek már létre lettek hozva, például ha külön fájlokban vannak tárolva, vagy különálló sorokba vagy oszlopokba vannak rendezve, akkor nincs szükség Sparkra az összetett adatátalakításokhoz.
A Machine Learning és a számítási fürtök megoldása sokoldalúságot biztosít az összetett beállításokat igénylő helyzetekhez. Használhat például egyéni Docker-tárolót, fájlokat vagy előre betanított modelleket. A számítógépes látás és a természetes nyelvfeldolgozás mély tanulása olyan alkalmazások példája, amelyek ezt a sokoldalúságot igényelhetik.
Különálló modelladattárak: Az üzembe helyezett modellek védelméhez fontolja meg, hogy a betanítási és tesztelési folyamatok nem férnek hozzá a saját adattárukban.
ParallelRunStep osztály: A Python ParallelRunStep osztály számos modell betanítására és következtetésére használható. Az adatok különböző módokon particionálhatók, majd a gépi tanulási szkriptet párhuzamosan alkalmazhatja a partíció elemeire. A Machine Learning-betanítás más formáihoz hasonlóan megadhat egy egyéni betanítási környezetet, amely hozzáfér a Python Package Index -csomagokhoz (PyPI-csomagokhoz), vagy egy fejlettebb egyéni Docker-környezetet az olyan konfigurációkhoz, amelyekhez a szokásos PyPI-nál többre van szükség. Számos CPU és GPU közül választhat.
Online következtetés: Ha egy folyamat kezdettől fogva betölti és gyorsítótárazza az összes modellt, a modellek kimerülhetnek a tároló memóriájában. Ezért a futtatási módszerben igény szerint töltse be a modelleket, annak ellenére, hogy kissé növelheti a késést.
Költségoptimalizálás
A költségoptimalizálás a szükségtelen kiadások csökkentésére és a működési hatékonyság javítására összpontosít. További információt a Költségoptimalizálás tervezési felülvizsgálati ellenőrzőlistájában talál.
A forgatókönyv Azure-beli futtatásának költségeinek jobb megértéséhez használja a díjkalkulátort. A következőket kell feltételeznie:
A kiszolgáló modelleket naponta tanítjuk be, hogy naprakészek maradjanak.
Egy 40 millió sort tartalmazó, 10 ezer egyedi áruház-termék kombinációt tartalmazó adathalmaz feldolgozásához körülbelül 30 perc szükséges. Az adatkészlet egy 12 virtuális géppel (virtuális gépekkel) kiépített fürttel edz az Azure Databricksen, amely Ls16_v2 példányokat használ. Az azonos adatkészlettel rendelkező kötegelt pontozás körülbelül 20 percet vesz igénybe.
A Machine Learning használatával valós idejű következtetést helyezhet üzembe. A kérelem mennyiségétől függően válasszon megfelelő típusú virtuális gépet és fürtméretet.
Az AKS-fürtök szükség szerint automatikusan skálázódnak, ami havonta átlagosan két aktív csomópontot eredményez.
Annak megtekintéséhez, hogy miben különbözik a díjszabás a használati esethez, módosítsa a díjszabási kalkulátor változóit a várt adatméretnek és a terhelési követelmények kiszolgálásának megfelelően. Nagyobb vagy kisebb betanítási adatméretek esetén növelje vagy csökkentse az Azure Databricks-fürt méretét. Ha több egyidejű felhasználót szeretne kezelni a modellszolgáltatás során, növelje az AKS-fürt méretét.
Közreműködők
A Microsoft fenntartja ezt a cikket. A következő közreműködők írták ezt a cikket.
Fő szerző:
- James Nguyen | Fő felhőmegoldás-tervező
A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.
Következő lépések
- Kubernetes-fürt konfigurálása Machine Learning-
- Számos modelles megoldásgyorsító GitHub-adattár
- ParallelRunStep osztály
- DataTransferStep osztály
- Adattárak létrehozása
- Mi az az Azure Synapse Analytics?
- Modell üzembe helyezése AKS-fürtben