Kötegelt pontozás R-modellekkel az értékesítés előrejelzéséhez

Azure Batch
Azure Blob Storage
Azure Container Instances
Azure Logic Apps
Azure Machine Learning

Ez a referenciaarchitektúra bemutatja, hogyan végezhet kötegelt pontozást R-modellekkel az Azure Batch használatával. Az Azure Batch jól működik a belsőleg párhuzamos számítási feladatokkal, és magában foglalja a feladatok ütemezését és a számításkezelést. A batch-következtetést (pontozást) széles körben használják az ügyfelek szegmentálására, az értékesítések előrejelzésére, az ügyfelek viselkedésének előrejelzésére, a karbantartás előrejelzésére vagy a kiberbiztonság javítására.

Az Azure-ra vonatkozó R-modellek kötegelt pontozását bemutató architektúradiagram.

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

Munkafolyamat

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

Az Azure Batch párhuzamosan futtatja az előrejelzésgenerálási feladatokat egy virtuális gépek fürtöjén. Az előrejelzések az R-ben implementált előre betanított gépi tanulási modellek használatával készülnek. Az Azure Batch automatikusan skálázhatja a virtuális gépek számát a fürtnek küldött feladatok száma alapján. Minden csomóponton egy R-szkript fut egy Docker-tárolóban az adatok pontszámához és az előrejelzések létrehozásához.

Az Azure Blob Storage tárolja a bemeneti adatokat, az előre betanított gépi tanulási modelleket és az előrejelzési eredményeket. Költséghatékony tárolást biztosít a számítási feladat által igényelt teljesítményhez.

Az Azure Container Instances igény szerint kiszolgáló nélküli számítást biztosít. Ebben az esetben egy tárolópéldány üzembe helyezése ütemezés szerint történik az előrejelzéseket létrehozó Batch-feladatok aktiválásához. A Batch-feladatok egy R-szkriptből aktiválódnak a doAzureParallel csomag használatával. A tárolópéldány a feladatok befejeződése után automatikusan leáll.

Az Azure Logic Apps a tárolópéldányok ütemezés szerinti üzembe helyezésével aktiválja a teljes munkafolyamatot. A Logic Apps Azure Container Instances-összekötője lehetővé teszi egy példány üzembe helyezését számos eseményindító eseményen.

Összetevők

Megoldás részletei

Bár a következő forgatókönyv a kiskereskedelmi üzletek értékesítési előrejelzésén alapul, architektúrája általánosítható minden olyan forgatókönyv esetében, amely az előrejelzés nagyobb léptékben történő létrehozását igényli R-modellek használatával. Az architektúra referencia-implementációja elérhető a GitHubon.

Lehetséges használati esetek

A szupermarketláncnak előre kell jeleznie a termékek értékesítését a következő negyedévben. Az előrejelzés lehetővé teszi a vállalat számára, hogy jobban kezelje az ellátási láncát, és biztosítsa, hogy minden üzletében kielégítse a termékek iránti keresletet. A vállalat minden héten frissíti előrejelzéseit, mivel az előző hét új értékesítési adatai elérhetővé válnak, és a következő negyedévre vonatkozó termékmarketing-stratégia be van állítva. Kvantilis előrejelzések jönnek létre az egyes értékesítési előrejelzések bizonytalanságának becsléséhez.

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

  1. Egy Azure-logikai alkalmazás hetente egyszer aktiválja az előrejelzésgenerálási folyamatot.

  2. A logikai alkalmazás elindít egy Azure Container Instance-példányt, amely a Ütemező Docker-tárolót futtatja, amely aktiválja a pontozási feladatokat a Batch-fürtben.

  3. A pontozási feladatok párhuzamosan futnak a Batch-fürt csomópontjai között. Minden csomópont:

    1. Lekéri a feldolgozó Docker-rendszerképét, és elindít egy tárolót.

    2. Beolvassa a bemeneti adatokat és az előre betanított R-modelleket az Azure Blob Storage-ból.

    3. Az előrejelzések előállításához megadott adatok pontszáma.

    4. Előrejelzési eredményeket ír a Blob Storage-ba.

Az alábbi ábra négy termék (termékváltozat) előrejelzett értékesítését mutatja be egy áruházban. A fekete vonal az értékesítési előzmények, a szaggatott vonal a medián (q50) előrejelzés, a rózsaszín sáv a 25. és a 75. percentilis, a kék sáv pedig az 50. és a 95. percentilis.

Értékesítési előrejelzések kötegelt pontozásból R-modellekkel.

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

Tárolóalapú üzembe helyezés

Ezzel az architektúrával az összes R-szkript Docker-tárolókon belül fut. A tárolók használata biztosítja, hogy a szkriptek minden alkalommal konzisztens környezetben fussanak, ugyanazzal az R-verzióval és csomagverzióval. A rendszer külön Docker-lemezképeket használ az ütemezőhöz és a feldolgozók tárolóihoz, mivel mindegyik más R-csomagfüggőségekkel rendelkezik.

Az Azure Container Instances kiszolgáló nélküli környezetet biztosít az ütemezőtároló futtatásához. Az ütemezőtároló egy R-szkriptet futtat, amely elindítja az Azure Batch-fürtön futó egyes pontozási feladatokat.

A Batch-fürt minden csomópontja futtatja a munkavégző tárolót, amely végrehajtja a pontozási szkriptet.

A számítási feladat párhuzamosítása

Amikor R-modellekkel kötegeli az adatokat, fontolja meg a számítási feladat párhuzamossá tételét. A bemeneti adatokat particionálni kell, hogy a pontozási művelet elosztható legyen a fürtcsomópontok között. Próbálja ki a különböző módszereket, hogy felfedezze a számítási feladatok elosztásának legjobb választását. Eseti alapon fontolja meg a következő szempontokat:

  • Mennyi adat tölthető be és dolgozható fel egyetlen csomópont memóriájában.
  • Az egyes kötegelt feladatok indításának többletterhelése.
  • Az R-modellek betöltésének többletterhelése.

A példában használt forgatókönyvben a modellobjektumok nagyok, és csak néhány másodpercet vesz igénybe az egyes termékekre vonatkozó előrejelzés létrehozása. Ezért csoportosíthatja a termékeket, és csomópontonként egyetlen Batch-feladatot hajthat végre. Az egyes feladatokon belüli hurkok egymás után generálnak előrejelzéseket a termékekhez. Ez a módszer a leghatékonyabb módja ennek a számítási feladatnak a párhuzamosítására. Elkerüli a sok kisebb Batch-feladat elindításának és az R-modellek ismételt betöltésének többletterhelését.

Másik módszerként termékenként egy Batch-feladatot kell aktiválni. Az Azure Batch automatikusan feladatsort hoz létre, és elküldi őket a fürtben a csomópontok elérhetővé válásakor. Az automatikus skálázás használatával a fürt csomópontjainak számát a feladatok számától függően módosíthatja. Ez a módszer akkor hasznos, ha az egyes pontozási műveletek végrehajtása viszonylag hosszú időt vesz igénybe, ami indokolja a feladatok indításának és a modellobjektumok újratöltésének többletterhelését. Ez a megközelítés egyszerűbben implementálható, és rugalmasan használható az automatikus skálázás, ami fontos szempont, ha a teljes számítási feladat mérete előre nem ismert.

Azure Batch-feladatok monitorozása

A Batch-feladatok monitorozása és leállása a Batch-fiók Feladatok paneljén az Azure Portalon. Figyelje a kötegfürtöt, beleértve az egyes csomópontok állapotát a Készletek panelen.

Napló a doAzureParallel használatával

A doAzureParallel csomag automatikusan összegyűjti az összes stdout/stderr naplóját az Azure Batchben elküldött összes feladathoz. Ezek a naplók a beállításkor létrehozott tárfiókban találhatók. Ezek megtekintéséhez használjon egy tárolónavigációs eszközt, például az Azure Storage Explorert vagy az Azure Portalt.

A Batch-feladatok fejlesztés közbeni gyors hibakereséséhez tekintse meg a naplókat a helyi R-munkamenetben. További információt a Betanítási futtatások konfigurálása és elküldése című témakörben talál.

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 ebben a referenciaarchitektúrában használt számítási erőforrások a legköltségesebb összetevők. Ebben az esetben a rendszer rögzített méretű fürtöt hoz létre, amikor a feladat aktiválódik, majd a feladat befejezése után leáll. A költségek csak akkor merülnek fel, ha a fürtcsomópontok elindulnak, futnak vagy leállnak. Ez a megközelítés olyan forgatókönyvekhez használható, ahol az előrejelzések létrehozásához szükséges számítási erőforrások feladatról feladatra viszonylag állandóak maradnak.

Olyan esetekben, amikor a feladat elvégzéséhez szükséges számítási mennyiség nem ismert előre, célszerűbb lehet automatikus skálázást használni. Ezzel a módszerrel a fürt mérete a feladat méretétől függően fel- vagy leskálázható. Az Azure Batch számos automatikus skálázási képletet támogat, amelyeket a fürt doAzureParallel API-val történő definiálásakor állíthat be.

Bizonyos esetekben a feladatok közötti idő túl rövid lehet a fürt leállításához és elindításához. Ezekben az esetekben szükség esetén tartsa a fürt futását a feladatok között.

Az Azure Batch és a doAzureParallel támogatja az alacsony prioritású virtuális gépek használatát. Ezek a virtuális gépek jelentős kedvezménnyel járnak, de más magasabb prioritású számítási feladatok is kockázatnak vannak kitéve. Ezért az alacsony prioritású virtuális gépek használata nem ajánlott kritikus éles számítási feladatokhoz. Kísérleti vagy fejlesztési számítási feladatokhoz azonban hasznosak.

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.

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