Megosztás a következőn keresztül:


Fogalmak – Gépi tanulási műveletek (MLOps) mi- és gépi tanulási munkafolyamatokhoz

Ebben a cikkben megismerheti a gépi tanulási műveleteket (MLOps), beleértve az érintett eljárások és eszközök típusait, valamint azt, hogy hogyan egyszerűsítheti és felgyorsíthatja az AI- és gépi tanulási munkafolyamatokat az Azure Kubernetes Service-ben (AKS).

Mi az az MLOps?

A gépi tanulási műveletek (MLOps) olyan eljárásokat foglalnak magukban, amelyek elősegítik az adattudósok, az informatikai műveletek és az üzleti érdekelt felek közötti együttműködést, biztosítva a gépi tanulási modellek hatékony fejlesztésének, üzembe helyezésének és karbantartásának biztosítását. Az MLOps DevOps-alapelveket alkalmaz a gépi tanulási projektekre, amelyek célja a teljes körű gépi tanulási életciklus automatizálása és egyszerűsítése. Ez az életciklus magában foglalja a betanítási, csomagolási, érvényesítési, üzembe helyezési, monitorozási és újratanítási modelleket.

Az MLOps több szerepkört és eszközt igényel a hatékony együttműködéshez. Az adattudósok a modell betanításával kapcsolatos feladatokra összpontosítanak, amelyet belső huroknak neveznek. A gépi tanulási mérnökök és az informatikai üzemeltetési csapatok kezelik a külső hurkot, ahol DevOps-eljárásokat alkalmaznak a modellek csomagolására, érvényesítésére, üzembe helyezésére és monitorozására. Ha a modell finomhangolást vagy újratanítást igényel, a folyamat visszalép a belső hurokba.

MLOps-folyamat

Az MLOps-folyamat különböző, egymás után vagy párhuzamosan üzembe helyezett eszközöket és mikroszolgáltatásokat használhat. Az alábbiakban példákat talál a folyamat kulcsfontosságú összetevőire, amelyek az alábbi ajánlott eljárások végrehajtásával csökkentik a többletterhelést, és lehetővé teszik a gyorsabb iterációt:

  • Strukturálatlan adattár az alkalmazásba áramló új adatokhoz
  • Vektoradatbázis strukturált, előre feldolgozott adatok tárolására és lekérdezésére
  • Adatbetöltési és indexelési keretrendszer
  • Vektorbetöltési és/vagy modell-újratanítási munkafolyamatok
  • Metrikák gyűjtésére és riasztására szolgáló eszközök (modell teljesítményének nyomon követése, betöltött adatok mennyisége stb.)
  • Életciklus-felügyeleti eszközök

DevOps és MLOps

A DevOps olyan eszközök és eljárások kombinációja, amelyekkel robusztus és reprodukálható alkalmazásokat hozhat létre. A DevOps használatának célja, hogy gyorsan értéket biztosítson a végfelhasználóknak. Az MLOps elsődleges célja robusztus és reprodukálható modellek létrehozása, üzembe helyezése és monitorozása, hogy értéket teremtsen a végfelhasználók számára.

Az MLOpshoz három folyamat elengedhetetlen:

  • Olyan gépi tanulási számítási feladatok , amelyekért az adatelemzők felelősek, beleértve a feltáró adatelemzést (EDA), a funkciófejlesztést, valamint a modell betanítását és finomhangolását.
  • Szoftverfejlesztési eljárások , beleértve a modell üzembe helyezéséhez szükséges tervezést, fejlesztést, tesztelést és csomagolást.
  • A modell éles környezetben való üzembe helyezésének és karbantartásának működési szempontjai, beleértve az erőforrások kiadását, konfigurálását és a modell monitorozását.

Az MLOpsra vonatkozó DevOps-alapelvek

Az MLOps a DevOps számos alapelvét használja a gépi tanulási életciklus javítására, például az automatizálásra, a folyamatos integrációra és teljesítésre (CI/CD), a forráskövetésre, az Agilis tervezésre és az infrastruktúra kódként (IaC).

Automation

A feladatok automatizálásával csökkentheti a manuális hibákat, növelheti a hatékonyságot, és konzisztenciát biztosíthat az ML életciklusa során. Az automatizálás különböző szakaszokra alkalmazható, beleértve az adatgyűjtést, a modell betanítását, az üzembe helyezést és a monitorozást. Az automatizálás révén proaktív intézkedéseket is alkalmazhat az AI-folyamatban, hogy biztosítsa a szervezet házirendjeinek való adatmegfelelőségét.

A folyamat például automatizálható:

  • A modell finomhangolása/újratanítása rendszeres időközönként, vagy ha bizonyos mennyiségű új adatot gyűjt az alkalmazásban.
  • A teljesítménycsökkenés észlelése az adatok egy másik részhalmazának finomhangolásához vagy újratanításához.
  • Gyakori biztonsági rések és expozíciós (CVE) vizsgálat külső tárolóregisztrációs adatbázisokból lekért alapkonténer-rendszerképeken a biztonságos biztonsági eljárások biztosítása érdekében.

Folyamatos integráció (CI)

A folyamatos integráció magában foglalja a modellfejlesztési folyamat létrehozásának és ellenőrzésének szempontjait. A CI célja a kód létrehozása és a kód és a modell minőségének ellenőrzése az üzembe helyezés előtt. Ez magában foglalja a mintaadatkészleteken végzett tesztelést is, amelyek biztosítják, hogy a modell a várt módon teljesítsen, és megfeleljen a minőségi szabványoknak.

Az MLOpsban a CI a következőket vonhatja maga után:

  • Feltáró kód újrabontása Jupyter-jegyzetfüzetekben Python- vagy R-szkriptekké.
  • Új bemeneti adatok ellenőrzése hiányzó vagy hibaértékek esetén.
  • Egységtesztelés és integrációs tesztelés a végpontok közötti folyamatban.

A linting és az egységtesztelés végrehajtásához olyan automatizálási eszközöket használhat, mint az Azure Pipelines az Azure DevOpsban vagy a GitHub Actionsben.

Folyamatos teljesítés (CD)

A folyamatos teljesítés magában foglalja a modellek biztonságos üzembe helyezéséhez szükséges lépéseket az éles környezetben. Az első lépés a modell csomagolása és üzembe helyezése éles üzem előtti környezetekben, például fejlesztői és tesztelési környezetekben. A paraméterek, hiperparaméterek és más modellösszetevők hordozhatósága fontos szempont a kód ezen környezeteken keresztül történő előléptetése során. Ez a hordozhatóság különösen fontos a nagy nyelvi modellek (LLM-ek) és a stabil diffúziós modellek esetében. Miután a modell megfelelt az egységteszteken és a minőségbiztosítási (QA-) teszteken, jóváhagyhatja azt az éles környezetben való üzembe helyezéshez.

Verziókövetés

A forrásvezérlés vagy verziókövetés elengedhetetlen a kód- és modellmódosítások kezeléséhez. Az ml-rendszerekben ez az adatok verziószámozására, a kódverziók és a modellek verziószámozására vonatkozik, amelyek lehetővé teszik a többfunkcionális csapatok számára a hatékony együttműködést és a változások nyomon követését az idő múlásával. Egy Git-alapú forrásvezérlő rendszer, például az Azure DevOpsban vagy a GitHub-adattárban található Azure Repos használatával programozott módon kezelheti a változások előzményeit, visszaállíthatja a korábbi verziókat, és kezelheti a különböző kísérletek ágait.

Agilis tervezés

Az agilis tervezés magában foglalja a munka futamokra való elkülönítését, amelyek rövid időkeretek adott feladatok elvégzéséhez. Ezzel a módszerrel a csapatok gyorsan alkalmazkodhatnak a változásokhoz, és növekményes fejlesztéseket végezhetnek a modellen. A modell betanítása folyamatos folyamat lehet, és az agilis tervezés segíthet a projekt hatókörének kiterjesztésében és a csapat jobb igazításában.

Az Agilis tervezés kezeléséhez használhat olyan eszközöket, mint az Azure Boards az Azure DevOpsban vagy a GitHub-problémák.

Infrastruktúra kódként (IaC)

Az infrastruktúra kódként való használatával megismételheti és automatizálhatja a modellek betanítása, üzembe helyezése és kiszolgálása érdekében szükséges infrastruktúrát. Egy ML-rendszerben az IaC segít leegyszerűsíteni és meghatározni a kód adott feladattípusához szükséges Azure-erőforrásokat, és a kód egy adattárban van fenntartva. Ez lehetővé teszi az infrastruktúra verziókövetését, és szükség szerint módosíthatja az erőforrás-optimalizálást, a költséghatékonyságot stb.

Következő lépések

Tekintse meg az alábbi cikkeket, amelyekből megismerheti az MLOps ajánlott eljárásait az intelligens alkalmazásokban az AKS-en: