Az Azure Machine Learning működése: Architektúra és fogalmak (v1)
A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v1Python SDK azureml v1
Ez a cikk az Azure Machine Learning CLI & SDK első verziójára (v1) vonatkozik. A második verzió (v2) esetében lásd: Az Azure Machine Learning működése (v2).
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ők és azok együttműködésének magas szintű megérté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álata során 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-notebookok is itt vannak tárolva.
- Azure-alkalmazás Insights: A modellek monitorozási információit 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. A számítási célokkal megkezdheti a betanítást a helyi gépen, majd a betanítási szkript módosítása nélkül felskálázhatja a felhőt.
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 egy 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. Megkezdheti a mintajegyzetfüzetek futtatását úgy, 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öbb csomópontos skálázási képességekkel rendelkező virtuális gépek fürtjei. 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. Betanítási számítási célként vagy fejlesztési/tesztelési üzembe helyezéshez használható.
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. További információ az üzembehelyezési számítási célokról: Üzembehelyezési célok.
Adathalmazok és adattárak
Az Azure Machine Learning-adatkészletek megkönnyítik az adatok elérését és a velük való munkát. Adathalmaz létrehozásával az adatforrás helyére mutató hivatkozást és annak metaadatainak másolatát is létrehozhatja. Mivel az adatok a meglévő helyen maradnak, nem jár többletköltséggel, és nem kockáztatja az adatforrások integritását.
További információ: Azure Machine Learning-adatkészletek létrehozása és regisztrálása. Az Adathalmazok használatával kapcsolatos 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 munkaterülethez társított Key Vault tárolják a kapcsolati adatokat, például az előfizetés azonosítóját és a jogkivonat-hitelesítést, így biztonságosan elérheti a tárterületet anélkül, hogy a szkriptbe be kellene írnia őket.
Környezetek
Munkaterület>Környezetben
A környezet annak a környezetnek a beágyazása, amelyben a gépi tanulási modell betanítása vagy pontozása történik. A környezet határozza meg 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.
Kódmintákért tekintse meg a Környezetek kezelése című szakaszt a Környezetek használata című szakaszban.
Kísérletek
Munkaterület>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ás adatait a kísérlet tárolja. Ha a név nem létezik egy 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ás
Munkaterület>Kísérletek>Fuss
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ási adatot rögzíti, és a kísérletben a következő információkat tárolja:
- A futtatás metaadatai (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
- A szkripteket tartalmazó könyvtár pillanatképe a futtatás előtt
Futtatás akkor jön létre, amikor beküld egy szkriptet egy modell betanítása gombra. A futtatásokhoz nulla vagy több gyermekfuttatás is tartozhat. A legfelső szintű futtatás például két gyermekfuttatást tartalmazhat, amelyek mindegyike saját gyermekfuttatást futtathat.
Konfigurációk futtatása
Munkaterület>Kísérletek>Fuss>Konfiguráció futtatása
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 futtatandó 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 található fájlban is megőrizhető. Vagy létrehozható memóriabeli objektumként, és futtatás elküldéséhez használható.
Például futtatási konfigurációk: Betanítási futtatás konfigurálása.
Pillanatképek
Munkaterület>Kísérletek>Fuss>Pillanatkép
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 azt a számítási célnak. Ezután kinyeri a zip-fájlt, és ott futtatja a szkriptet. 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ő felhasználók böngészhetnek egy futtatási rekordban, és letölthetik a pillanatképet.
Naplózás
Az Azure Machine Learning automatikusan naplózza a standard futtatási metrikákat. A Python SDK-val azonban tetszőleges metrikákat naplózhat.
A naplók megtekintésének többféle módja is van: 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ó: Ml-futtatási naplók monitorozása és megtekintése.
Megjegyzés
Ha meg szeretné akadályozni, hogy felesleges fájlok szerepeljenek a pillanatképben, hagyja figyelmen kívül a 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: szintaxis és minták a fájlhoz .gitignore
. A .amlignore
fájl ugyanazt a szintaxist használja. Ha mindkét fájl létezik, a .amlignore
rendszer a fájlt használja, és a .gitignore
fájl nincs használatban.
A 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 működik.
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 az előző szakaszban mentett kódpillanatkép pillanatkép-azonosítójával van meghívva.
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élt (például Machine Learning Compute) vagy nem felügyelt számítási célt (például virtuális gépeket). Mindkét forgatókönyvhöz az alábbi adatfolyamok tartoznak:
- Virtuális gépek/HDInsight, amelyhez SSH-hitelesítő adatok férnek hozzá 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épek és helyi számítógépek számára. A Machine Learning Compute következő lépéseit követve megtudhatja, hogyan működnek a kísérletek a Docker-tárolókon.)
- Letölti a kódot.
- Beállítja a környezeti változókat és konfigurációkat.
- 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-konstrukciót 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 indul el. Ez az előző lépésben leírt felügyeleti kód.
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 modell a legegyszerűbben olyan kódrészlet, amely bemenetet fogad, és kimenetet hoz létre. A gépi tanulási modell létrehozásához ki kell választania egy algoritmust, meg kell adnia az adatokat, és finomhangolnia kell a hiperparamétereket. 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üldheti egy kísérletfuttatását egy számítási célnak az Azure Machine Learningben. Ha már rendelkezik modellel, regisztrálja a modellt a munkaterületen.
Az Azure Machine Learning keretrendszerfüggetlen. 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éposztályozási modell betanítása az Azure Machine Learning használatával.
Modellregisztrációs adatbázis
Munkaterület>Modellek
A modellregisztrációs adatbázissal 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 azt feltételezi, hogy az egy új verzió. A verzió növekményes, és az új modell regisztrálása ugyanazzal a névvel történik.
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 egy 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 üzemelő példányok által használt regisztrált modellek nem törölhetők.
Modell regisztrálására példa: Képbesorolási modell betanítása az Azure Machine Learning használatával.
Üzembe helyezés
Regisztrált modellt helyez üzembe szolgáltatásvégpontként. A következő összetevőkre van szükség:
- 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, pontszámot ad a kéréseknek a modell használatával, és visszaadja az eredményeket.
- Következtetés konfigurálása. A következtetési konfiguráció határozza meg a környezetet, a belépési szkriptet és a modell szolgáltatásként való futtatásához szükséges egyéb összetevőket.
További információ ezekről az összetevőkről: Modellek üzembe helyezése az Azure Machine Learning használatával.
Végpontok
Munkaterület>Végpontok
A végpont a modell példányosítása egy felhőben üzemeltethető webszolgáltatásba.
Webszolgáltatás-végpont
Amikor webszolgáltatásként helyez üzembe egy modellt, a végpont üzembe helyezhető Azure Container Instances, Azure Kubernetes Service vagy FPGA-kon. A szolgáltatást a modellből, a szkriptből és a kapcsolódó fájlokból hozza létre. Ezek egy alaptároló-rendszerképbe 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éréseket fogadja.
Engedélyezheti az Application Insights telemetriát vagy modell telemetriát a webszolgáltatás monitorozásához. A telemetriai adatok csak Ön számára érhetők el. Az Application Insights és a tárfiók példányai tárolják. Ha engedélyezte az automatikus skálázást, az Azure automatikusan skálázza az üzembe helyezést.
Az alábbi ábrán egy webszolgáltatás-végpontként üzembe helyezett modell következtetési munkafolyamata látható:
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ó egy modell, egy pontszámfájl és más modellfüggőségek használatával hoz létre képet.
- A Docker-rendszerképet a rendszer Azure Container Registry hozza létre és tárolja.
- A webszolgáltatás az előző lépésben létrehozott rendszerkép használatával lesz üzembe helyezve a számítási célon (Container Instances/AKS).
- A pontozási kérelmek adatait az Application Insights tárolja, amely a felhasználó előfizetésében található.
- A telemetriai adatokat 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, a modellt valós idejű végpontként is üzembe helyezheti. 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 lehetővé teszik az ML-folyamatok programozott meghívását 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égpont minden közzétett folyamata 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 v1 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
A 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 a költséges adat-előkészítési lépések újrafuttatása nélkül, ha az adatok nem változtak. A folyamatok lehetővé teszik az adattudósok együttműködését, 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:
- Az adatelemzők számára figyelheti a kísérleteket és naplóadatokat a betanítási futtatásokból. További információért tekintse át a következő cikkeket:
- A rendszergazdák számára az Azure Monitor használatával figyelheti a munkaterülettel kapcsolatos információkat, a kapcsolódó Azure-erőforrásokat és eseményeket, például az erőforrások létrehozását és törlését. 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 adatokat gyűjtsön a szolgáltatásnak. További információ: Modelladatok gyűjtése és Monitorozás az Application Insights használatával.
Interakció a munkaterülettel
Studio
Azure Machine Learning stúdió 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 is hozzáférhet az Azure Machine Learning részét képező interaktív eszközökhöz:
- 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-notebookkiszolgálókon.
- Adatcímkézési projektek képek vagyszövegek címkézésére szolgáló projektek létrehozásához, kezeléséhez és figyeléséhez.
Programozási eszközök
Fontos
Az alább megjelölt (előzetes verziójú) eszközök jelenleg nyilvános előzetes verzióban érhetők el. Az előzetes verzió szolgáltatásiszint-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 első lépéseiért lásd: