Az Azure Machine Tanulás működése: Architektúra és fogalmak (v1)

ÉRVÉNYES:Azure CLI ml-bővítmény v1Python SDK azureml v1

Ez a cikk az Azure Machine Tanulás CLI &SDK első (v1) verziójára vonatkozik. A második verzió (v2) esetében tekintse meg az Azure Machine Tanulás működése (v2) című témakört.

Ismerje meg az Azure Machine Tanulás architektúráját és alapelveit. 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.

Workspace

A gépi tanulási munkaterület az Azure Machine Learning legfelső szintű erőforrása.

Diagram: Azure Machine Learning architecture of a workspace and its components

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-Tanulás számítási példányokkal használt Jupyter-jegyzetfüzetek is itt vannak tárolva.
  • Azure-alkalmazás Elemzések: A modellek monitorozási adatait 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 Tanulás 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 Tanulás-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 Tanulás-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 Tanulás rögzíti az összes futtatás adatait, é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 Tanulás 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 Tanulás tömöríti a szkriptet zip-fájlként tartalmazó könyvtárat, é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 Tanulás 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.

Logging

Az Azure Machine Tanulás automatikusan naplózza a standard 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.

Megjegyzé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 gépi Tanulás parancssori felületről küldött futtatásokhoz is használható.

További információ: Git-integráció az Azure Machine-Tanulás.

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 Tanulás az előző szakaszban mentett kódpillanatkép pillanatkép-azonosítójával hívjuk meg.

  • Az Azure Machine Tanulás létrehoz egy futtatási azonosítót (nem kötelező) és egy Machine Tanulás szolgáltatásjogkivonatot, amelyet később olyan számítási célok használnak, mint a Machine Tanulás Compute/VMs a Gép Tanulás 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 Tanulás Compute) vagy nem felügyelt számítási célt (például virtuális gépeket). 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 Tanulás 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épekhez és helyi számítógépekhez. A Machine Tanulás 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. Környezeti változók és konfigurációk beállítása.
    4. Felhasználói szkripteket futtat (az előző szakaszban említett kódpillanatkép).
    • A machine Tanulás Compute, amely egy munkaterület által felügyelt identitáson keresztül érhető el. Mivel a Machine Tanulás Compute egy felügyelt számítási cél (vagyis a Microsoft felügyeli), a Microsoft-előfizetése alatt fut.
    1. A Távoli Docker-építést 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 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 Tanulás az Azure Cosmos DB-adatbázis tárolójából. Az ügyfelek meghívhatják az Azure Machine Tanulás. A gépi Tanulás viszont lekéri a metrikákat az Azure Cosmos DB-adatbázisból, és visszaküldi őket az ügyfélnek.

Training workflow

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 Tanulás 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 Tanulás. Miután rendelkezik egy modellel, regisztrálja a modellt a munkaterületen.

Az Azure Machine Tanulás 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 Tanulás.

Modellregisztrációs adatbázis

Munkaterület-modellek>

A modellregisztrációs adatbázis segítségével nyomon követheti az Azure Machine Tanulás-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 Tanulás-munkaterületén. 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 Tanulás.

Üzembe helyezé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 Tanulás.

Endpoints

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

A modell webszolgáltatásként való üzembe helyezésekor a végpont üzembe helyezhető az Azure Container Instancesben, az Azure Kubernetes Service-ben vagy az FPGA-kban. 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 alkalmazás-Elemzések telemetriát vagy modell telemetriát a webszolgáltatás figyeléséhez. A telemetriai adatok csak Ön számára érhetők el. Az alkalmazás Elemzések és 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 Tanulás 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 Alkalmazás Elemzések 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.

Inference workflow

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 Tanulás 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

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 Tanulás a következő monitorozási és naplózási képességeket biztosítja:

A munkaterület kezelése

Studio

Az Azure Machine Tanulás 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 Tanulás részét képező interaktív eszközöket is elérheti:

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. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

További lépések

Az Azure Machine Tanulás használatának első lépéseit lásd: