Megosztás a következőn keresztül:


Az Azure Machine Learning 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 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.

Á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-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:
    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 Learning Compute következő lépéseiből 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).
    • 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-é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 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 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

Munkaterület-modellek>

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

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 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.

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, 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 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:

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: