Az Azure Machine Learning működése: Architektúra és fogalmak (v1)
ÉRVÉNYES:Azure CLI ml-bővítmény v1
Python SDK azureml v1
Ez a cikk az Azure Machine Learning CLI & SDK első (v1) verziójára vonatkozik. A második verzió (v2) az Azure Machine Learning működése (v2) című témakörben olvasható.
Megismerheti az Azure Machine Learning architektúráját és fogalmait. Ez a cikk a gépi tanulási modellek létrehozásának, üzembe helyezésének és karbantartásának folyamatában segítséget nyújtó összetevőket és azok együttműködését ismerteti.
Munkaterület
A gépi tanulási munkaterület az Azure Machine Learning legfelső szintű erőforrása.
A munkaterület a központosított hely:
- A modellek( például számítások) betanításához és üzembe helyezéséhez használt erőforrások kezelése
- Az Azure Machine Learning használatakor létrehozott eszközök tárolása, beleértve a következőket:
A munkaterület más Azure-erőforrásokat is tartalmaz, amelyeket a munkaterület használ:
- Azure Container Registry (ACR): Regisztrálja a betanítás során és a modell üzembe helyezésekor használt Docker-tárolókat. A költségek minimalizálása érdekében az ACR csak az üzembehelyezési rendszerképek létrehozásakor jön létre.
- Azure Storage-fiók: A munkaterület alapértelmezett adattáraként szolgál. Az Azure Machine Learning számítási példányaival használt Jupyter-jegyzetfüzetek is itt vannak tárolva.
- Azure-alkalmazás Insights: A modellekkel kapcsolatos monitorozási információkat tárolja.
- Azure Key Vault: A számítási célok által használt titkos kulcsokat és a munkaterület által igényelt egyéb bizalmas információkat tárolja.
A munkaterületeket megoszthatja másokkal.
Számítások
A számítási cél bármely gép vagy gépcsoport, amelyet a betanítási szkript futtatásához vagy a szolgáltatás üzembe helyezésének üzemeltetéséhez használ. Használhatja a helyi gépet vagy egy távoli számítási erőforrást számítási célként. Számítási célok esetén elindíthatja a betanítást a helyi gépen, majd felskálázhatja a felhőbe anélkül, hogy módosítaná a betanítási szkriptet.
Az Azure Machine Learning két teljes körűen felügyelt felhőalapú virtuális gépet vezet be, amelyek gépi tanulási feladatokhoz vannak konfigurálva:
Számítási példány: A számítási példány olyan virtuális gép, amely több, gépi tanuláshoz telepített eszközt és környezetet tartalmaz. A számítási példányok elsődleges használata a fejlesztői munkaállomáson történik. A mintajegyzetfüzeteket úgy is elkezdheti futtatni, hogy nincs szükség beállításra. A számítási példányok számítási célként is használhatók betanítási és következtetési feladatokhoz.
Számítási fürtök: A számítási fürtök többcsomópontos méretezési képességekkel rendelkező virtuálisgép-fürtök. A számítási fürtök jobban megfelelnek a nagy feladatok és az éles környezet számítási céljainak. A fürt automatikusan felskálázódik egy feladat elküldésekor. Használható betanítási számítási célként vagy fejlesztési/tesztelési üzembe helyezéshez.
További információ a számítási célok betanításáról: Számítási célok betanítása. Az üzembehelyezési számítási célokról további információt az üzembehelyezési célok című témakörben talál.
Adatkészletek és adattárak
Az Azure Machine Learning-adathalmazok megkönnyítik az adatok elérését és kezelését. Egy adatkészlet létrehozásával az adatforrás helyére mutató hivatkozást és annak metaadatainak másolatát hozza létre. Mivel az adatok a meglévő helyen maradnak, nem jár többlet tárolási költséggel, és nem kockáztatja az adatforrások integritását.
További információ: Azure Machine Learning-adathalmazok létrehozása és regisztrálása. Az adathalmazokat használó további példákért tekintse meg a mintajegyzetfüzeteket.
Az adathalmazok adattárat használnak az Azure Storage-szolgáltatásokhoz való biztonságos csatlakozáshoz. Az adattárak a hitelesítési hitelesítő adatok és az eredeti adatforrás integritásának veszélyeztetése nélkül tárolják a kapcsolati adatokat. A kapcsolati adatokat, például az előfizetés azonosítóját és a jogkivonat-engedélyezést a munkaterülethez társított Key Vaultban tárolják, így biztonságosan elérheti a tárterületet anélkül, hogy a szkriptben meg kellene őket kódolnia.
Környezetek
Munkaterületi>környezetek
A környezet annak a környezetnek a beágyazása, ahol a gépi tanulási modell betanítása vagy pontozása történik. A környezet meghatározza a Python-csomagokat, a környezeti változókat és a szoftverbeállításokat a betanítási és pontozási szkriptek körül.
A kódmintákért lásd a Környezetek kezelése című szakaszt a környezetek használatáról.
Kísérletek
Munkaterületi>kísérletek
A kísérlet egy adott szkriptből származó számos futtatás csoportosítása. Mindig egy munkaterülethez tartozik. Futtatás elküldésekor meg kell adnia egy kísérlet nevét. A futtatásra vonatkozó információk a kísérlet alatt lesznek tárolva. Ha a név nem létezik a kísérlet elküldésekor, a rendszer automatikusan létrehoz egy új kísérletet.
Egy kísérlet használatára példa: Oktatóanyag: Az első modell betanítása.
Futtatások
Munkaterület-kísérletek>>futtatása
A futtatás egy betanítási szkript egyetlen végrehajtása. Egy kísérlet általában több futtatásból fog futni.
Az Azure Machine Learning az összes futtatás rekordját rögzíti, és a kísérletben a következő információkat tárolja:
- Metaadatok a futtatásról (időbélyeg, időtartam stb.)
- A szkript által naplózott metrikák
- A kísérlet által automatikusan létrehozott vagy ön által explicit módon feltöltött kimeneti fájlok
- Pillanatkép a szkripteket tartalmazó könyvtárról a futtatás előtt
Futtatás akkor jön létre, amikor elküld egy szkriptet egy modell betanítása gombra. A futtatásokhoz nulla vagy több gyermekfuttatás is tartozhat. A legfelső szintű futtatásnak például két gyermekfuttatása lehet, amelyek mindegyike saját gyermekfuttatást futtathat.
Konfigurációk futtatása
Munkaterület-kísérletek>>futtatási>konfigurációja
A futtatási konfiguráció határozza meg, hogyan kell futtatni egy szkriptet egy adott számítási célban. A konfigurációval megadhatja a szkriptet, a számítási célt és az Azure Machine Learning-környezetet, az elosztott feladatspecifikus konfigurációkat és néhány további tulajdonságot. További információ a futtatások konfigurálható beállításainak teljes készletéről: ScriptRunConfig.
A futtatási konfiguráció a betanítási szkriptet tartalmazó könyvtárban lévő fájlba is megőrizhető. Vagy létrehozható memórián belüli objektumként, és futtatás elküldéséhez használható.
Például a futtatási konfigurációkat lásd : Betanítási futtatás konfigurálása.
Pillanatképek
Munkaterület-kísérletek>>– Pillanatkép futtatása>
Futtatás elküldésekor az Azure Machine Learning tömöríti a szkriptet tartalmazó könyvtárat zip-fájlként, és elküldi a számítási célnak. A zip-fájl ezután ki lesz nyerve, és a szkript ott lesz futtatva. Az Azure Machine Learning a zip-fájlt pillanatképként is tárolja a futtatási rekord részeként. A munkaterülethez hozzáféréssel rendelkezők tallózhatnak egy futtatási rekordban, és letölthetik a pillanatképet.
Naplózás
Az Azure Machine Learning automatikusan naplózza a szabványos futtatási metrikákat. A Python SDK-val azonban tetszőleges metrikákat is naplózhat.
A naplók többféleképpen is megtekinthetők: a futtatás állapotának valós idejű monitorozása vagy az eredmények megtekintése a befejezés után. További információ: Az ML-futtatási naplók monitorozása és megtekintése.
Feljegyzés
Ha meg szeretné akadályozni, hogy a szükségtelen fájlok bekerüljenek a pillanatképbe, hozzon létre egy figyelmen kívül hagyott fájlt (.gitignore
vagy .amlignore
) a könyvtárban. Adja hozzá a kizárni kívánt fájlokat és könyvtárakat ehhez a fájlhoz. A fájlban használandó szintaxissal kapcsolatos további információkért lásd a szintaxist és a minták helyét .gitignore
. A .amlignore
fájl ugyanazt a szintaxist használja. Ha mindkét fájl létezik, a rendszer a .amlignore
fájlt használja, és a .gitignore
fájl nincs használatban.
Git nyomon követése és integrációja
Amikor elindít egy betanítási futtatásokat, ahol a forráskönyvtár egy helyi Git-adattár, a rendszer a futtatási előzményekben tárolja az adattár adatait. Ez szkriptfuttatási konfigurációval vagy ML-folyamattal elküldött futtatásokkal működik. Az SDK-ból vagy a Machine Learning CLI-ből elküldött futtatásokhoz is használható.
További információ: Git-integráció az Azure Machine Learninghez.
Betanítási munkafolyamat
Amikor kísérletet futtat egy modell betanítása érdekében, a következő lépések történnek. Ezeket az alábbi betanítási munkafolyamat-diagram szemlélteti:
Az Azure Machine Learning meghívása az előző szakaszban mentett kódpillanatkép pillanatkép-azonosítójával történik.
Az Azure Machine Learning létrehoz egy futtatási azonosítót (nem kötelező) és egy Machine Learning-szolgáltatási jogkivonatot, amelyet később olyan számítási célok használnak, mint a Machine Learning Compute/VM-ek a Machine Learning szolgáltatással való kommunikációhoz.
A betanítási feladatok futtatásához választhat felügyelt számítási cél (például Machine Learning Compute) vagy nem felügyelt számítási cél (például virtuális gépek) közül. A két forgatókönyv adatfolyamai a következők:
- Virtuális gépek/HDInsight, amelyeket SSH-hitelesítő adatok érnek el a Microsoft-előfizetés egyik kulcstartójában. Az Azure Machine Learning a következő számítási célon futtatja a felügyeleti kódot:
- Előkészíti a környezetet. (A Docker lehetőség virtuális gépekhez és helyi számítógépekhez. A Machine Learning Compute következő lépéseiből megtudhatja, hogyan működnek a Kísérletek a Docker-tárolókon.)
- Letölti a kódot.
- Környezeti változók és konfigurációk beállítása.
- Felhasználói szkripteket futtat (az előző szakaszban említett kódpillanatkép).
- Machine Learning Compute, amely egy munkaterület által felügyelt identitáson keresztül érhető el. Mivel a Machine Learning Compute egy felügyelt számítási cél (azaz a Microsoft felügyeli), a Microsoft-előfizetése alatt fut.
- A Távoli Docker-építést szükség esetén elindítják.
- A felügyeleti kód a felhasználó Azure Files-megosztására van írva.
- A tároló egy kezdeti paranccsal kezdődik. Vagyis a felügyeleti kód az előző lépésben leírtak szerint.
A futtatás befejezése után lekérdezheti a futtatásokat és a metrikákat. Az alábbi folyamatábra ezt a lépést akkor hajtja végre, amikor a betanítási számítási cél visszaírja a futtatási metrikákat az Azure Machine Learningbe az Azure Cosmos DB-adatbázis tárolójából. Az ügyfelek meghívhatják az Azure Machine Learninget. A Machine Learning viszont lekéri a metrikákat az Azure Cosmos DB-adatbázisból, és visszaküldi őket az ügyfélnek.
Modellek
A legegyszerűbb esetben a modell egy kódrészlet, amely bemenetet fogad, és kimenetet hoz létre. A gépi tanulási modell létrehozása magában foglalja egy algoritmus kiválasztását, az adatok biztosítását és a hiperparaméterek finomhangolását. A betanítás egy iteratív folyamat, amely egy betanított modellt hoz létre, amely a betanítási folyamat során tanultakat foglalja magában.
Az Azure Machine Learningen kívül betanított modellt is létrehozhat. A modellek betanításához elküldhet egy kísérlet futtatását egy számítási célnak az Azure Machine Learningben. Miután rendelkezik egy modellel, regisztrálja a modellt a munkaterületen.
Az Azure Machine Learning keretrendszer-agnosztikus. Modell létrehozásakor bármilyen népszerű gépi tanulási keretrendszert használhat, például Scikit-learn, XGBoost, PyTorch, TensorFlow és Chainer.
Példa egy modell Scikit-learn használatával történő betanítására: Oktatóanyag: Képbesorolási modell betanítása az Azure Machine Learning használatával.
Modellregisztrációs adatbázis
A modellregisztrációs adatbázis segítségével nyomon követheti az Azure Machine Learning-munkaterület összes modelljét.
A modelleket név és verzió alapján azonosítjuk. Minden alkalommal, amikor egy meglévővel azonos nevű modellt regisztrál, a beállításjegyzék feltételezi, hogy az egy új verzió. A verzió növekszik, és az új modell azonos néven van regisztrálva.
A modell regisztrálásakor további metaadatcímkéket adhat meg, majd a modellek keresésekor használhatja a címkéket.
Tipp.
A regisztrált modell a modellt alkotó egy vagy több fájl logikai tárolója. Ha például több fájlban tárolt modellel rendelkezik, 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.
Az aktív üzembe helyezés által használt regisztrált modellek nem törölhetők.
Modell regisztrálására példa: Képosztályozási modell betanítása az Azure Machine Learning használatával.
Telepítés
Egy regisztrált modell üzembe helyezése szolgáltatásvégpontként. A következő összetevőkre van szüksége:
- Környezet. Ez a környezet a modell következtetéshez való futtatásához szükséges függőségeket foglalja magában.
- Pontozási kód. Ez a szkript fogadja a kéréseket, pontozza a kéréseket a modell használatával, és visszaadja az eredményeket.
- Következtetés konfigurálása. A következtetési konfiguráció a modell szolgáltatásként való futtatásához szükséges környezetet, beviteli szkriptet és egyéb összetevőket határozza meg.
További információ ezekről az összetevőkről: Modellek üzembe helyezése az Azure Machine Learning használatával.
Végpontok
A végpont a modell példányosítása egy felhőben üzemeltethető webszolgáltatásba.
Webszolgáltatás-végpont
A modell webszolgáltatásként való üzembe helyezésekor a végpont üzembe helyezhető az Azure Container Instances vagy az Azure Kubernetes Service szolgáltatásban. A szolgáltatást a modellből, a szkriptből és a kapcsolódó fájlokból hozhatja létre. Ezek egy alaptároló lemezképébe kerülnek, amely a modell végrehajtási környezetét tartalmazza. A rendszerkép terheléselosztásos HTTP-végponttal rendelkezik, amely a webszolgáltatásnak küldött pontozási kérelmeket fogadja.
Engedélyezheti az Application Insights telemetriáját vagy a modell telemetriáját a webszolgáltatás figyeléséhez. A telemetriai adatok csak Ön számára érhetők el. A rendszer az Application Insightsban és a tárfiókpéldányokban tárolja. Ha engedélyezte az automatikus skálázást, az Azure automatikusan skálázza az üzembe helyezést.
Az alábbi ábra egy webszolgáltatás-végpontként üzembe helyezett modell következtetési munkafolyamatát mutatja be:
A részletek a következők:
- A felhasználó egy olyan ügyféllel regisztrálja a modellt, mint az Azure Machine Learning SDK.
- A felhasználó létrehoz egy képet egy modell, egy pontszámfájl és más modellfüggőségek használatával.
- A Docker-rendszerkép létrehozása és tárolása az Azure Container Registryben történik.
- A webszolgáltatás a számítási célon (Container Instances/AKS) van üzembe helyezve az előző lépésben létrehozott rendszerkép használatával.
- A pontozási kérelmek adatait az Application Insights tárolja, amely a felhasználó előfizetésében található.
- A telemetriát a Rendszer a Microsoft Azure-előfizetésbe is leküldi.
Modell webszolgáltatásként való üzembe helyezésére példa: Oktatóanyag: Modell betanítása és üzembe helyezése.
Valós idejű végpontok
Ha betanított modellt helyez üzembe a tervezőben, valós idejű végpontként is üzembe helyezheti a modellt. A valós idejű végpontok általában egyetlen kérést kapnak a REST-végponton keresztül, és valós időben ad vissza előrejelzést. Ez ellentétben áll a kötegelt feldolgozással, amely egyszerre több értéket dolgoz fel, és a befejezés után menti az eredményeket egy adattárba.
Folyamatvégpontok
A folyamatvégpontok segítségével programozott módon hívhatja meg az ML-folyamatokat egy REST-végponton keresztül. A folyamatvégpontok lehetővé teszik a folyamat-munkafolyamatok automatizálását.
A folyamatvégpontok közzétett folyamatok gyűjteményei. Ezzel a logikai szervezettel több folyamatot is felügyelhet és hívhat meg ugyanazzal a végponttal. A folyamatvégpontokban közzétett folyamatok mindegyike verziószámozott. Kiválaszthat egy alapértelmezett folyamatot a végponthoz, vagy megadhat egy verziót a REST-hívásban.
Automation
Azure Machine Learning CLI
Az Azure Machine Learning CLI 1-es verziója az Azure CLI bővítménye, amely az Azure-platform platformfüggetlen parancssori felülete. Ez a bővítmény parancsokat biztosít a gépi tanulási tevékenységek automatizálásához.
ML-folyamatok
Gépi tanulási folyamatokkal olyan munkafolyamatokat hozhat létre és kezelhet, amelyek összefűzik a gépi tanulási fázisokat. Egy folyamat például tartalmazhat adatelőkészítést, modellbetanítást, modelltelepítést és következtetési/pontozási fázisokat. Minden fázis több lépést is magában foglalhat, amelyek mindegyike felügyelet nélkül futtatható különböző számítási célokban.
A folyamatlépések újrafelhasználhatók, és futtathatók az előző lépések újrafuttatása nélkül, ha a lépések kimenete nem változott. Például újrataníthat egy modellt anélkül, hogy újrafuttathatja a költséges adat-előkészítési lépéseket, ha az adatok nem változtak. A folyamatok lehetővé teszik, hogy az adattudósok együttműködjenek, miközben a gépi tanulási munkafolyamatok különböző területein dolgoznak.
Monitorozás és naplózás
Az Azure Machine Learning a következő monitorozási és naplózási képességeket biztosítja:
- A adattudós a kísérleteket és a naplóadatokat a betanítási futtatásokból figyelheti. További információkért lásd a következő cikkeket:
- A rendszergazdák számára az Azure Monitor használatával figyelheti a munkaterületre, a kapcsolódó Azure-erőforrásokra és eseményekre, például az erőforrások létrehozására és törlésére vonatkozó információkat. További információ: Az Azure Machine Learning monitorozása.
- A DevOps vagy az MLOps esetében figyelheti a webszolgáltatásként üzembe helyezett modellek által létrehozott információkat, hogy azonosítsa az üzembe helyezésekkel kapcsolatos problémákat, és összegyűjtse a szolgáltatásnak küldött adatokat. További információ: Modelladatok gyűjtése és monitorozás az Application Insights használatával.
A munkaterület kezelése
Stúdió
Az Azure Machine Learning Studio webes nézetet biztosít a munkaterület összes összetevőjéről. Megtekintheti az adathalmazok, kísérletek, folyamatok, modellek és végpontok eredményeit és részleteit. A stúdióban számítási erőforrásokat és adattárakat is kezelhet.
A stúdióban az Azure Machine Learning részét képező interaktív eszközöket is elérheti:
- Azure Machine Learning-tervező a munkafolyamat lépéseinek végrehajtásához kód írása nélkül
- Webes felület automatizált gépi tanuláshoz
- Azure Machine Learning-jegyzetfüzetek saját kód írásához és futtatásához integrált Jupyter-notebook-kiszolgálókon.
- Képek vagy szövegek címkézésére szolgáló projektek létrehozásához, kezeléséhez és figyeléséhez használt adatcímkézési projektek.
Programozási eszközök
Fontos
Az alábbi (előzetes verzióban) megjelölt eszközök 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, és é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.
- Bármely Python-környezetben használhatja a szolgáltatást a Pythonhoz készült Azure Machine Learning SDK-val.
- Az Azure Machine Learning Designer használatával kódírás nélkül hajthatja végre a munkafolyamat lépéseit.
- Az Azure Machine Learning CLI használata automatizáláshoz.
Következő lépések
Az Azure Machine Learning használatának megkezdéséhez lásd:
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: