Modell üzembehelyezési mintái

Ez a cikk két gyakori mintát ismertet az ML-artefaktumok staging környezetből éles környezetbe való á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ő.

üzembe helyezési minták

A két minta abban különbözik, hogy a modell artefaktum vagy a modell artefaktumot előállító betanítási kód van-e elő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ására szolgáló kódot a fejlesztési környezetben fejlesztik ki. Ugyanez a kód átkerül a tesztkörnyezetbe, 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, hogy a modellt az éles környezetben található éles adatokkal képezzék.
  • Az automatizált modell újratanítása biztonságosabb, mivel a betanítási kódot áttekintik, tesztelik és jóváhagyják a gyártási környezethez.
  • 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.

Ezen minta esetében is az adattudósoknak képesnek kell lenniük az éles környezetben készült 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 a teljes éles adatkészleten való előkészítés során tanítsa be, hibrid megközelítést alkalmazhat a kód előkészítési környezetbe történő telepítésével, a modell betanításával, majd a modell éles környezetbe történő telepítésével. Ez a módszer az éles környezetben megtakarítja a betanítási költségeket, de a tesztkörnyezetben 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. Az artefaktumot ezután az előkészítési környezetben teszteljük, mielőtt az éles környezetben üzembe helyeznénk.

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.
  • Ön 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 szükséges betanítani a modellt.

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 termelés) általában a Unity Katalógusnak 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.

a minták életciklusának üzembe helyezése