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


Gépi tanulási folyamatok aktiválása

A KÖVETKEZŐKRE VONATKOZIK:Python SDK azureml v1

Ebből a cikkből megtudhatja, hogyan ütemezhet programozott módon egy folyamatot az Azure-ban való futtatásra. Létrehozhat ütemezést az eltelt idő vagy a fájlrendszer változásai alapján. Az időalapú ütemezések olyan rutinfeladatok kezelésére használhatók, mint az adateltolódás monitorozása. A változásalapú ütemezésekkel reagálhat a szabálytalan vagy kiszámíthatatlan változásokra, például az új adatok feltöltésére vagy a régi adatok szerkesztésére. Az ütemezések létrehozásának elsajátítása után megtudhatja, hogyan szerezheti be és inaktiválhatja őket. Végül megtudhatja, hogyan futtathat folyamatokat más Azure-szolgáltatások, az Azure Logic App és a Azure Data Factory használatával. Az Azure Logic App összetettebb logikát vagy viselkedést tesz lehetővé. Azure Data Factory folyamatok lehetővé teszik egy gépi tanulási folyamat meghívását egy nagyobb adatvezénylési folyamat részeként.

Előfeltételek

Folyamatok aktiválása a Pythonhoz készült Azure Machine Learning SDK-val

A folyamatok ütemezéséhez szüksége lesz egy hivatkozásra a munkaterületre, a közzétett folyamat azonosítójára és annak a kísérletnek a nevére, amelyben létre szeretné hozni az ütemezést. Ezeket az értékeket a következő kóddal szerezheti be:

import azureml.core
from azureml.core import Workspace
from azureml.pipeline.core import Pipeline, PublishedPipeline
from azureml.core.experiment import Experiment

ws = Workspace.from_config()

experiments = Experiment.list(ws)
for experiment in experiments:
    print(experiment.name)

published_pipelines = PublishedPipeline.list(ws)
for published_pipeline in  published_pipelines:
    print(f"{published_pipeline.name},'{published_pipeline.id}'")

experiment_name = "MyExperiment" 
pipeline_id = "aaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" 

Ütemezés létrehozása

Ha ismétlődően szeretne futtatni egy folyamatot, létre kell hoznia egy ütemezést. Egy Schedule folyamat, egy kísérlet és egy eseményindító társítása. Az eseményindító lehet olyanScheduleRecurrence, amely leírja a feladatok közötti várakozást, vagy egy adattár elérési útját, amely megadja a módosításokat watch könyvtárat. Mindkét esetben szüksége lesz a folyamatazonosítóra és annak a kísérletnek a nevére, amelyben létre szeretné hozni az ütemezést.

A Python-fájl tetején importálja a és ScheduleRecurrence az Schedule osztályokat:


from azureml.pipeline.core.schedule import ScheduleRecurrence, Schedule

Időalapú ütemezés létrehozása

A ScheduleRecurrence konstruktornak van egy kötelező frequency argumentuma, amelynek a következő sztringek egyikének kell lennie: "Minute", "Hour", "Day", "Week" vagy "Month". Ehhez egy egész szám interval argumentumra is szükség van, amely meghatározza, hogy hány egységnek kell elenie az frequency ütemezés kezdete között. A választható argumentumok lehetővé teszik a kezdési időpontok pontosabb megállapítását a ScheduleRecurrence SDK dokumentációjában leírtak szerint.

Hozzon létre egy Schedule feladatot 15 percenként:

recurrence = ScheduleRecurrence(frequency="Minute", interval=15)
recurring_schedule = Schedule.create(ws, name="MyRecurringSchedule", 
                            description="Based on time",
                            pipeline_id=pipeline_id, 
                            experiment_name=experiment_name, 
                            recurrence=recurrence)

Változásalapú ütemezés létrehozása

A fájlmódosítások által aktivált folyamatok hatékonyabbak lehetnek, mint az időalapú ütemezések. Ha egy fájl módosítása előtt szeretne valamit tenni, vagy ha új fájlt ad hozzá egy adatkönyvtárhoz, előre feldolgozhatja a fájlt. Az adattár módosításait vagy egy adott könyvtáron belüli módosításokat az adattáron belül figyelheti. Ha egy adott könyvtárat figyel, az adott könyvtár alkönyvtárainak módosításai nem indítják el a feladatokat.

Megjegyzés

A változásalapú ütemezések csak az Azure Blob Storage monitorozását támogatják.

Fájlreaktív Schedulelétrehozásához a datastoreschedule.create hívásban be kell állítania a paramétert. Mappa figyeléséhez állítsa be az argumentumot path_on_datastore .

Az polling_interval argumentum segítségével percek alatt megadhatja, hogy az adattár milyen gyakorisággal ellenőrizze a módosításokat.

Ha a folyamat DataPathPipelineParameterrel lett létrehozva, ezt a változót a módosított fájl nevére állíthatja be az data_path_parameter_name argumentum beállításával.

datastore = Datastore(workspace=ws, name="workspaceblobstore")

reactive_schedule = Schedule.create(ws, name="MyReactiveSchedule", description="Based on input file change.",
                            pipeline_id=pipeline_id, experiment_name=experiment_name, datastore=datastore, data_path_parameter_name="input_data")

Nem kötelező argumentumok ütemezés létrehozásakor

A korábban tárgyalt argumentumokon kívül az status argumentumot úgy is beállíthatja, hogy "Disabled" inaktív ütemezést hozzon létre. Végül a continue_on_step_failure lehetővé teszi egy logikai érték átadását, amely felülbírálja a folyamat alapértelmezett meghibásodási viselkedését.

Az ütemezett folyamatok megtekintése

A webböngészőben keresse meg az Azure Machine Learninget. A navigációs panel Végpontok szakaszában válassza a Folyamatvégpontok lehetőséget. Ezzel a munkaterületen közzétett folyamatok listájára kerül.

Az AML folyamatoldala

Ezen a lapon a munkaterület összes folyamatával kapcsolatos összefoglaló információkat tekintheti meg: neveket, leírásokat, állapotokat stb. Részletezés a folyamatba való kattintással. Az eredményül kapott oldalon további részletek találhatók a folyamatról, és részletezheti az egyes feladatokat.

A folyamat inaktiválása

Ha van közzétett Pipeline , de nem ütemezett példánya, letilthatja a következőkkel:

pipeline = PublishedPipeline.get(ws, id=pipeline_id)
pipeline.disable()

Ha a folyamat ütemezve van, először le kell mondania az ütemezést. Kérje le az ütemezés azonosítóját a portálról vagy a következő futtatásával:

ss = Schedule.list(ws)
for s in ss:
    print(s)

Miután megadta a schedule_id letiltani kívánt parancsot, futtassa a következőt:

def stop_by_schedule_id(ws, schedule_id):
    s = next(s for s in Schedule.list(ws) if s.id == schedule_id)
    s.disable()
    return s

stop_by_schedule_id(ws, schedule_id)

Ha ezután újra futtatja Schedule.list(ws) , üres listát kell kapnia.

Azure Logic Apps használata összetett triggerekhez

Összetettebb eseményindító szabályok vagy viselkedés hozható létre egy Azure Logic App használatával.

Ha egy Azure Logic App használatával szeretne aktiválni egy Machine Learning-folyamatot, szüksége lesz egy közzétett Machine Learning-folyamat REST-végpontjára. Hozza létre és tegye közzé a folyamatot. Ezután keresse meg a REST-végpontját PublishedPipeline a folyamatazonosító használatával:

# You can find the pipeline ID in Azure Machine Learning studio

published_pipeline = PublishedPipeline.get(ws, id="<pipeline-id-here>")
published_pipeline.endpoint 

Logikai alkalmazás létrehozása az Azure-ban

Most hozzon létre egy Azure Logic App-példányt . A logikai alkalmazás kiépítése után az alábbi lépésekkel konfigurálhat egy eseményindítót a folyamathoz:

  1. Hozzon létre egy rendszer által hozzárendelt felügyelt identitást , amely hozzáférést biztosít az alkalmazásnak az Azure Machine Learning-munkaterülethez.

  2. Lépjen a Logikai alkalmazás Tervező nézetre, és válassza az Üres logikai alkalmazás sablont.

    Üres sablon

  3. A Tervező keresse meg a blobot. Válassza a Blob hozzáadása vagy módosítása (csak tulajdonságok) eseményindítót, és adja hozzá ezt az eseményindítót a logikai alkalmazáshoz.

    Trigger hozzáadása

  4. Adja meg annak a Blob Storage-fióknak a kapcsolati adatait, amelynél a blob hozzáadását vagy módosítását figyelni szeretné. Válassza ki a monitorozni kívánt tárolót.

    Válassza az Intervallum és gyakoriság lehetőséget az Ön számára működő frissítések lekérdezéséhez.

    Megjegyzés

    Ez az eseményindító figyeli a kijelölt tárolót, de nem figyeli az almappákat.

  5. Adjon hozzá egy HTTP-műveletet, amely új vagy módosított blob észlelésekor fog futni. Válassza az + Új lépés lehetőséget, majd keresse meg és válassza ki a HTTP-műveletet.

HTTP-művelet keresése

A művelet konfigurálásához használja az alábbi beállításokat:

Beállítás Érték
HTTP-művelet POST
URI az előfeltételként talált közzétett folyamat végpontja
Hitelesítési módszer Felügyelt identitás
  1. Állítsa be az ütemezést úgy, hogy beállítsa az esetleges DataPath PipelineParameter-értékek értékét:

    {
      "DataPathAssignments": {
        "input_datapath": {
          "DataStoreName": "<datastore-name>",
          "RelativePath": "@{triggerBody()?['Name']}" 
        }
      },
      "ExperimentName": "MyRestPipeline",
      "ParameterAssignments": {
        "input_string": "sample_string3"
      },
      "RunSource": "SDK"
    }
    

    Használja a DataStoreName munkaterülethez hozzáadott elemet előfeltételként.

    HTTP-beállítások

  2. Válassza a Mentés lehetőséget, és az ütemezés készen áll.

Fontos

Ha azure-beli szerepköralapú hozzáférés-vezérlést (Azure RBAC) használ a folyamathoz való hozzáférés kezeléséhez, állítsa be a folyamatforgatókönyv engedélyeit (betanítás vagy pontozás).

Machine Learning-folyamatok meghívása Azure Data Factory-folyamatokból

Egy Azure Data Factory folyamatban a Machine Learning végrehajtási folyamata egy Azure Machine Learning-folyamatot futtat. Ezt a tevékenységet a Data Factory szerzői oldalán, a Gépi tanulás kategóriában találja:

Képernyőkép az ML-folyamat tevékenységéről a Azure Data Factory szerzői környezetben

Következő lépések

Ebben a cikkben a Pythonhoz készült Azure Machine Learning SDK-t használta egy folyamat ütemezéséhez két különböző módon. Egy ütemezés ismétlődik az eltelt idő alapján. A többi ütemezési feladat, ha egy fájlt módosítanak egy megadott Datastore vagy az adott tárolón belüli könyvtárban. Látta, hogyan használhatja a portált a folyamat és az egyes feladatok vizsgálatához. Megtanulta, hogyan tilthat le egy ütemezést, hogy a folyamat ne fusson. Végül létrehozott egy Azure Logic App-alkalmazást egy folyamat aktiválásához.

További információkért lásd: