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:
Azure Kubernetes Service