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.

Ábra: Egy munkaterület És összetevőinek Azure Machine Learning-architektúrája

A munkaterület a központosított hely:

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:
    1. 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.)
    2. Letölti a kódot.
    3. Beállítja a környezeti változókat és konfigurációkat.
    4. 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.
    1. A távoli Docker-konstrukciót szükség esetén elindítják.
    2. A felügyeleti kód a felhasználó Azure Files megosztására van írva.
    3. 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.

Betanítási munkafolyamat

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.

Következtetési munkafolyamat

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:

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:

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.

Következő lépések

Az Azure Machine Learning használatának első lépéseiért lásd: