MLOps: Modellkezelés, üzembe helyezés, életút és monitorozás az Azure Machine Learning 1-es verzióval
A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v1Python SDK azureml v1
Ebből a cikkből megtudhatja, hogyan alkalmazhat gépi tanulási műveleteket (MLOps) az Azure Machine Learningben a modellek életciklusának kezelése céljából. Az MLOps-eljárások alkalmazása javíthatja a gépi tanulási megoldások minőségét és konzisztenciáját.
Fontos
A cikkben "előzetes verzióként" megjelölt elemek jelenleg nyilvános előzetes verzióban érhetők el. Az előzetes verzió szolgáltatásszint-szerződés nélkül érhető el, éles számítási feladatokhoz nem ajánlott. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.
Mi az az MLOps?
A Machine Learning Operations (MLOps) a munkafolyamatok hatékonyságát növelő DevOps-alapelveken és gyakorlatokon alapul. Például folyamatos integráció, teljesítés és üzembe helyezés. Az MLOps ezeket az alapelveket alkalmazza a gépi tanulási folyamatra, amelynek célja:
- Modellek gyorsabb kísérletezése és fejlesztése
- Modellek gyorsabb üzembe helyezése éles környezetben
- Minőségbiztosítás és a végpontok közötti életút nyomon követése
MLOps az Azure Machine Learningben
Az Azure Machine Learning a következő MLOps-képességeket biztosítja:
- Reprodukálható ML-folyamatok létrehozása. A Machine Learning-folyamatok lehetővé teszik az adat-előkészítési, betanítási és pontozási folyamatok megismételhető és újrafelhasználható lépéseinek meghatározását.
- Újrafelhasználható szoftverkörnyezetek létrehozása modellek betanításához és üzembe helyezéséhez.
- Modellek regisztrálása, csomagolása és üzembe helyezése bárhonnan. A modell használatához szükséges társított metaadatokat is nyomon követheti.
- Rögzítse a teljes körű ml-életciklus szabályozási adatait. A naplózott életút-információk közé tartozhatnak a modellek közzétételének, a módosítások okainak, valamint a modellek üzembe helyezésének vagy éles környezetben való felhasználásának.
- Értesítés és riasztás az ml-életciklus eseményeiről. Ilyen például a kísérlet befejezése, a modellregisztráció, a modell üzembe helyezése és az adatelsodrási észlelés.
- Az ML-alkalmazások monitorozása az üzemeltetési és az ML-hez kapcsolódó problémák esetén. Hasonlítsa össze a modell bemeneteit a betanítás és a következtetés között, vizsgálja meg a modellspecifikus metrikákat, és biztosítson monitorozást és riasztásokat az ML-infrastruktúrán.
- Automatizálja a teljes ml-életciklust az Azure Machine Learning és az Azure Pipelines használatával. A folyamatok használatával gyakran frissítheti a modelleket, tesztelheti az új modelleket, és folyamatosan új ML-modelleket hozhat létre a többi alkalmazással és szolgáltatással együtt.
Az MLOpsról további információt a Machine Learning DevOps (MLOps) című témakörben talál.
Reprodukálható ML-folyamatok létrehozása
Az Azure Machine Learning ml-folyamatainak használatával összefűzheti a modell betanítási folyamatának összes lépését.
Az ML-folyamatok az adat-előkészítéstől a funkciókinyerésen át a hiperparaméter-finomhangoláson át a modell kiértékelésig tartalmazhatnak lépéseket. További információ: ML-folyamatok.
Ha a Tervező használja az ML-folyamatok létrehozásához, bármikor rákattinthat a Tervező lap jobb felső sarkában található "..." elemre, majd válassza a Klónozás lehetőséget. A folyamat klónozása lehetővé teszi a folyamatterv iterálását a régi verziók elvesztése nélkül.
Újrafelhasználható szoftverkörnyezetek létrehozása
Az Azure Machine Learning-környezetekkel nyomon követheti és reprodukálhatja a projektek szoftverfüggőségeit a fejlődésük során. A környezetek lehetővé teszik a buildek reprodukálhatóságát manuális szoftverkonfigurációk nélkül.
A környezetek a projektek pip- és Conda-függőségeit írják le, és a modellek betanításához és üzembe helyezéséhez egyaránt használhatók. További információ: Mik azok az Azure Machine Learning-környezetek?
Modellek regisztrálása, csomagolása és üzembe helyezése bárhonnan
Ml-modellek regisztrálása és nyomon követése
A modellregisztráció lehetővé teszi a modellek tárolását és verzióját az Azure-felhőben, a munkaterületen. A modellregisztrációs adatbázis megkönnyíti a betanított modellek rendszerezését és nyomon követését.
Tipp
A regisztrált modell a modellt alkotó egy vagy több fájl logikai tárolója. Ha például egy modell több fájlban van tárolva, regisztrálhatja őket egyetlen modellként az Azure Machine Learning-munkaterületen. A regisztráció után letöltheti vagy üzembe helyezheti a regisztrált modellt, és megkaphatja az összes regisztrált fájlt.
A regisztrált modelleket a név és a verziószám azonosítja. Ha egy modellt egy már létező néven regisztrál, a beállításjegyzék megnöveli annak verziószámát. A regisztráció során további metaadatcímkéket is megadhat. Ezeket a címkéket ezután a rendszer a modell keresésekor használja. Az Azure Machine Learning minden olyan modellt támogat, amely a Python 3.5.2-s vagy újabb verziójával tölthető be.
Tipp
Az Azure Machine Learningen kívül betanított modelleket is regisztrálhat.
Aktív üzemelő példányban használt regisztrált modell nem törölhető. További információ: A modellek üzembe helyezése című szakasz regisztrációs modellje.
Fontos
Ha az Azure Machine Learning Studio Modellek lapján a Filter by (Szűrés) Tags
lehetőséget használja, ahelyett, hogy az ügyfeleket használták TagName : TagValue
TagName=TagValue
volna (szóköz nélkül)
Csomagok és hibakeresési modellek
Mielőtt üzembe helyeznénk egy modellt éles környezetben, a rendszer egy Docker-lemezképbe csomagolja. A legtöbb esetben a rendszerképek létrehozása automatikusan történik a háttérben az üzembe helyezés során. A rendszerképet manuálisan is megadhatja.
Ha problémákba ütközik az üzembe helyezéssel kapcsolatban, üzembe helyezheti a helyi fejlesztési környezetet hibaelhárítás és hibakeresés céljából.
További információ: Modellek üzembe helyezése és üzembe helyezések hibaelhárítása.
Modellek konvertálása és optimalizálása
Ha a modellt Open Neural Network Exchange (ONNX) értékre konvertálja, az javíthatja a teljesítményt. Az ONNX-re konvertálás átlagosan 2-szeres teljesítménynövekedést eredményezhet.
Az ONNX és az Azure Machine Learning használatával kapcsolatos további információkért lásd az ML-modellek létrehozása és felgyorsítása című cikket.
Modellek használata
A betanított gépi tanulási modellek webszolgáltatásként vannak üzembe helyezve a felhőben vagy helyileg. Az üzemelő példányok cpu-, GPU- vagy mezőprogramozható kaputömböket (FPGA) használnak a következtetéshez. A Power BI modelljeit is használhatja.
Ha modellt használ webszolgáltatásként, a következő elemeket kell megadnia:
- A szolgáltatásnak/eszköznek küldött adatok pontozásához használt modell(ek).
- Egy bejegyzésparancsfájl. Ez a szkript fogadja a kéréseket, a modell(ek)et használja az adatok pontozásához, és választ ad vissza.
- Egy Azure Machine Learning-környezet, amely leírja a modell(ek) és a belépési szkript által megkövetelt pip- és Conda-függőségeket.
- Minden további adategység, például szöveg, adat stb. a modell(ek) és a belépési szkript által megkövetelt.
Meg kell adnia az üzembe helyezés célplatformjának konfigurációját is. Például a virtuálisgép-család típusa, a rendelkezésre álló memória és a magok száma a Azure Kubernetes Service való üzembe helyezéskor.
A rendszerkép létrehozását követően a rendszer hozzáadja az Azure Machine Learning által igényelt összetevőket is. Például a webszolgáltatás futtatásához szükséges eszközök.
Batch-pontozás
A kötegelt pontozás ml-folyamatokon keresztül támogatott. További információ: Batch-előrejelzések big data-adatokon.
Valós idejű webszolgáltatások
A webszolgáltatásokban használt modelljeit a következő számítási célokkal használhatja:
- Azure Container Instance
- Azure Kubernetes Service
- Helyi fejlesztési környezet
A modell webszolgáltatásként való üzembe helyezéséhez a következő elemeket kell megadnia:
- A modellek modellje vagy együttese.
- A modell használatához szükséges függőségek. Például egy olyan szkript, amely fogadja a kéréseket, és meghívja a modellt, a conda függőségeket stb.
- Üzembehelyezési konfiguráció, amely leírja a modell üzembe helyezésének módját és helyét.
További információ: Modellek üzembe helyezése.
Elemzés
A Microsoft Power BI támogatja a gépi tanulási modellek adatelemzéshez való használatát. További információ: Azure Machine Learning-integráció a Power BI-ban (előzetes verzió).
Az MLOpshoz szükséges szabályozási adatok rögzítése
Az Azure Machine Learning lehetővé teszi, hogy metaadatok használatával nyomon kövesse az összes ML-eszköz teljes körű auditnaplóját.
- Az Azure Machine Learning integrálható a Gittel annak nyomon követéséhez, hogy melyik adattárból/ ágból/véglegesítésből származik a kód.
- Az Azure Machine Learning-adatkészletek segítségével nyomon követheti, profilozhatja és verzióadatait.
- Az értelmezhetőség lehetővé teszi a modellek magyarázatát, a jogszabályi megfelelőség betartását, valamint annak megértését, hogy a modellek hogyan érkeznek az adott bemenethez.
- Az Azure Machine Learning futtatási előzményei egy pillanatképet tárolnak a modell betanítása során használt kódról, adatokról és számításokról.
- Az Azure Machine Learning Model Registry rögzíti a modellhez társított összes metaadatot (amely betanította a kísérletet, ahol üzembe helyezték, ha az üzemelő példányai kifogástalan állapotban vannak).
- Az Azure-ral való integráció lehetővé teszi az ML-életciklus eseményeinek feldolgozását. Például modellregisztráció, üzembe helyezés, adateltolódás és betanítási (futtatási) események.
Tipp
Bár a modellekkel és adatkészletekkel kapcsolatos egyes információk automatikusan rögzítésre kerülnek, címkék használatával további információkat adhat hozzá. Ha regisztrált modelleket és adatkészleteket keres a munkaterületen, címkéket használhat szűrőként.
Az adatkészletek regisztrált modellel való társítása nem kötelező lépés. A modell regisztrálásakor az adatkészletekre való hivatkozással kapcsolatos információkért lásd a Modellosztály referenciáját.
Értesítés, automatizálás és riasztás az ml-életciklus eseményeiről
Az Azure Machine Learning közzéteszi a legfontosabb eseményeket a Azure Event Grid, amelyek az ML-életciklus eseményeinek értesítésére és automatizálására használhatók. További információért tekintse meg ezt a dokumentumot.
Működési gépi & tanulási problémák monitorozása
A monitorozással megismerheti, hogy milyen adatokat küld a rendszer a modellnek, és hogy milyen előrejelzéseket ad vissza.
Ezek az információk segítenek megérteni a modell használatát. Az összegyűjtött bemeneti adatok a modell jövőbeli verzióinak betanításában is hasznosak lehetnek.
További információ: Modelladatok gyűjtésének engedélyezése.
A modell újratanítása új adatokon
Gyakran érdemes ellenőrizni a modellt, frissíteni, vagy akár újra betaníteni az alapoktól, mivel új információkat kap. Előfordulhat, hogy az új adatok fogadása a tartomány várt része. Máskor az Adathalmazok adateltolódásának észlelése (előzetes verzió) című cikkben leírtak szerint a modell teljesítménye csökkenhet az olyan dolgokkal szemben, mint az adott érzékelő változásai, a természetes adatváltozások, például a szezonális hatások vagy a más funkciókhoz való viszonyukban eltolódó funkciók.
Nincs univerzális válasz arra, hogy "Hogyan tudom, hogy újratanulnom kell-e?", de az Azure Machine Learning-esemény és a korábban tárgyalt monitorozási eszközök jó kiindulópontok az automatizáláshoz. Miután úgy döntött, hogy újratanul, a következőt kell tennie:
- Adatok előfeldolgozása megismételhető, automatizált folyamattal
- Az új modell betanítása
- Hasonlítsa össze az új modell kimeneteit a régi modell kimenetével
- Előre definiált feltételek használata a régi modell lecseréléséhez
A fenti lépések egyik témája, hogy az újratanításnak automatizáltnak kell lennie, nem alkalminak. Az Azure Machine Learning-folyamatok jó megoldást jelentenek az adatok előkészítésével, betanításával, érvényesítésével és üzembe helyezésével kapcsolatos munkafolyamatok létrehozására. Olvassa el a Modellek újratanítása az Azure Machine Learning designerrel című cikket, amelyből megtudhatja, hogyan illeszkednek a folyamatok és az Azure Machine Learning-tervező egy újratanítási forgatókönyvbe.
Az ML életciklusának automatizálása
A GitHub és az Azure Pipelines használatával létrehozhat egy folyamatos integrációs folyamatot, amely betanít egy modellt. Egy tipikus forgatókönyvben, amikor egy adattudós ellenőrzi egy projekt Git-adattárának módosítását, az Azure Pipeline betanítási futtatásba kezd. A futtatás eredményei ezután megvizsgálhatók a betanított modell teljesítményjellemzőinek megtekintéséhez. Létrehozhat egy folyamatot is, amely webszolgáltatásként helyezi üzembe a modellt.
Az Azure Machine Learning bővítmény megkönnyíti az Azure Pipelinessal való munkát. A következő fejlesztéseket biztosítja az Azure Pipelineshoz:
- Lehetővé teszi a munkaterület kiválasztását egy szolgáltatáskapcsolat definiálásakor.
- Lehetővé teszi, hogy a kiadási folyamatokat a betanítási folyamatban létrehozott betanított modellek aktiválják.
Az Azure Pipelines azure machine learningtel való használatáról az alábbi hivatkozásokon talál további információt:
- Ml-modellek folyamatos integrációja és üzembe helyezése az Azure Pipelines használatával
- Azure Machine Learning MLOps-adattár
- Azure Machine Learning MLOpsPython-adattár
A Azure Data Factory használatával adatbetöltési folyamatot is létrehozhat, amely előkészíti az adatokat a betanításhoz való használatra. További információ: Adatbetöltési folyamat.
Következő lépések
További információkért olvassa el és fedezze fel a következő erőforrásokat:
Modellek & üzembe helyezése az Azure Machine Learning használatával
Üzembe helyezett modellt használó ügyfelek létrehozása
Azure AI-referenciaarchitektúrák – & ajánlott eljárások – rep