Modell üzembehelyezési mintái
Ez a cikk két gyakori mintát ismertet az ML-összetevők átmeneti és éles környezetbe történő áthelyezéséhez. A modellek és a kód változásainak aszinkron jellege azt jelenti, hogy az ML-fejlesztési folyamat több lehetséges mintát is követhet.
A modelleket kód hozza létre, de az eredményül kapott modellösszetevők és a létrehozott kód aszinkron módon működhetnek. Vagyis előfordulhat, hogy az új modellverziók és kódmódosítások nem egyszerre történnek. Vegyük például a következő forgatókönyveket:
- A hamis tranzakciók észleléséhez olyan ML-folyamatot fejleszthet ki, amely hetente újratanul egy modellt. Előfordulhat, hogy a kód nem változik túl gyakran, de előfordulhat, hogy a modellt hetente újratanulják, hogy új adatokat foglaljanak bele.
- Létrehozhat egy nagy, mély neurális hálózatot a dokumentumok besorolásához. Ebben az esetben a modell betanítása számításilag költséges és időigényes, és a modell újratanítása valószínűleg ritkán történik meg. A modell üzembe helyezését, kiszolgálását és figyelését szolgáló kód azonban a modell újratanítása nélkül frissíthető.
A két minta abban különbözik, hogy a modellösszetevő vagy a modellösszetevőt előállító betanítási kód elő van-e léptetve az éles környezetbe.
Kód üzembe helyezése (ajánlott)
A legtöbb esetben a Databricks a "kód üzembe helyezése" megközelítést javasolja. Ez a megközelítés be van építve az ajánlott MLOps-munkafolyamatba.
Ebben a mintában a modellek betanítása kódot a fejlesztési környezetben fejlesztik ki. Ugyanez a kód átkerül az előkészítésre, majd az éles környezetbe. A modell minden környezetben be van tanítva: kezdetben a fejlesztési környezetben a modellfejlesztés részeként, az előkészítésben (az adatok korlátozott részhalmazán) az integrációs tesztek részeként, valamint az éles környezetben (a teljes éles adatokon) a végső modell létrehozásához.
Előnyök:
- Azokban a szervezetekben, ahol az éles adatokhoz való hozzáférés korlátozott, ez a minta lehetővé teszi a modell betanítása az éles környezetben lévő éles adatokon.
- Az automatizált modell újratanítása biztonságosabb, mivel a betanítási kódot áttekintik, tesztelik és jóváhagyják az éles környezetben.
- A támogató kód ugyanazt a mintát követi, mint a modell betanítási kódja. Mindkettő integrációs teszteken megy keresztül az előkészítés során.
Hátrányok:
- Az adattudósok tanulási görbéje, amely kódot ad át a közreműködőknek, meredek lehet. Az előre definiált projektsablonok és munkafolyamatok hasznosak.
Ebben a mintában az adattudósoknak is képesnek kell lenniük az éles környezetből származó betanítási eredmények áttekintésére, mivel rendelkeznek az ML-specifikus problémák azonosítására és megoldására vonatkozó ismeretekkel.
Ha a helyzet megköveteli, hogy a modellt betanítsa a teljes éles adatkészleten való előkészítésbe, hibrid megközelítést használhat a kód üzembe helyezésével az előkészítéshez, a modell betanításához, majd a modell éles környezetben való üzembe helyezéséhez. Ez a módszer az éles környezetben megtakarítja a betanítási költségeket, de az előkészítés során további üzemeltetési költséget ad hozzá.
Modellek üzembe helyezése
Ebben a mintában a modellösszetevőt a fejlesztési környezetben lévő betanítási kód hozza létre. A rendszer ezután teszteli az összetevőt az előkészítési környezetben, mielőtt üzembe helyeznénk az éles környezetben.
Ezt a lehetőséget akkor érdemes megfontolni, ha az alábbiak közül egy vagy több érvényes:
- A modell betanítása nagyon költséges vagy nehezen reprodukálható.
- Minden munka egyetlen Azure Databricks-munkaterületen történik.
- Nem külső adattárakkal vagy CI/CD-folyamattal dolgozik.
Előnyök:
- Egyszerűbb átadás az adattudósok számára
- Olyan esetekben, amikor a modell betanítása költséges, csak egyszer kell betanítást igényelni.
Hátrányok:
- Ha az éles adatok nem érhetők el a fejlesztési környezetből (ami biztonsági okokból igaz lehet), akkor előfordulhat, hogy ez az architektúra nem lesz működőképes.
- Ebben a mintában az automatizált modell újratanítása trükkös. Automatizálhatja az újratanítást a fejlesztési környezetben, de előfordulhat, hogy a modell éles környezetben való üzembe helyezéséért felelős csapat nem fogadja el az eredményül kapott modellt üzemkészként.
- A támogató kódot, például a szolgáltatásfejlesztéshez, következtetéshez és monitorozáshoz használt folyamatokat külön kell üzembe helyezni az éles környezetben.
A környezetek (fejlesztés, előkészítés vagy éles környezet) általában a Unity Katalógus katalógusának felelnek meg. A minta implementálásával kapcsolatos részletekért tekintse meg a frissítési útmutatót.
Az alábbi ábra a fenti üzembehelyezési minták kódéletciklusát hasonlítja össze a különböző végrehajtási környezetekben.
A diagramon látható környezet az a végső környezet, amelyben egy lépés fut. Az üzembe helyezési modellek mintájában például a végső egység és az integrációs tesztelés a fejlesztési környezetben történik. Az üzembe helyezési kódmintában az egységtesztek és az integrációs tesztek a fejlesztési környezetekben futnak, a végső egység és integrációs tesztelés pedig az előkészítési környezetben történik.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: