Machine Learning-folyamatfeladatok ütemezése

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Ebből a cikkből megtudhatja, hogyan ütemezhet programozott módon egy folyamatot az Azure-ban való futtatáshoz, és hogyan használhatja az ütemezés felhasználói felületét is. Ütemezést hozhat létre az eltelt idő alapján. Az időalapú ütemezések olyan rutinfeladatok kezelésére használhatók, mint például a modellek újratanítása vagy a kötegelt előrejelzések rendszeres végrehajtása a naprakészen tartás érdekében. Az ütemezések létrehozásának elsajátítása után megtanulhatja, hogyan szerezheti be, frissítheti és inaktiválhatja őket a parancssori felület, az SDK és a studio felhasználói felületén keresztül.

Tipp.

Ha a feladatokat külső vezénylővel , például az Azure Data Factory vagy a Microsoft Fabric használatával kell ütemeznie, fontolja meg a folyamatfeladatok Batch-végponton történő üzembe helyezését. További információ arról , hogyan helyezhet üzembe feladatokat kötegelt végpontok alatt, és hogyan lehet kötegelt végpontokat használni a Microsoft Fabricből.

Előfeltételek

Folyamatfeladat ütemezése

Ha ismétlődően szeretne futtatni egy folyamatfeladatot, létre kell hoznia egy ütemezést. Egy Schedule feladat és egy eseményindító társítása. Az eseményindító lehet cron az, amely cron kifejezéssel írja le a futtatások közötti várakozást, vagy recurrence azt, hogy milyen gyakorisággal aktiválja a feladatot. Minden esetben először meg kell határoznia egy folyamatfeladatot, lehet meglévő folyamatfeladat vagy egy folyamatfeladat, amely beágyazottként definiálható, tekintse meg a folyamatfeladat létrehozását a parancssori felületen , és hozzon létre egy folyamatfeladatot az SDK-ban.

A yaml folyamatfeladatot helyi vagy meglévő folyamatfeladatként ütemezheti a munkaterületen.

Ütemezés létrehozása

Időalapú ütemezés létrehozása ismétlődési mintával

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: simple_recurrence_job_schedule
display_name: Simple recurrence job schedule
description: a simple hourly recurrence job schedule

trigger:
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 #every day
  schedule:
    hours: [4,5,10,11,12]
    minutes: [0,30]
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

create_job: ./simple-pipeline-job.yml
# create_job: azureml:simple-pipeline-job

trigger a következő tulajdonságokat tartalmazza:

  • (Kötelező)type azt adja meg, hogy az ütemezés típusa .recurrence Ez is lehet cron, lásd a részleteket a következő szakaszban.

A lista alább folytatódik.

Feljegyzés

A parancssori felületre és az SDK-ra az alábbi tulajdonságokat kell megadni.

  • (Kötelező)frequency az ütemezési tűzesetek gyakoriságát leíró időegységet adja meg. minuteLehet , hour, day, , weekmonth.

  • (Kötelező)interval Meghatározza, hogy az ütemezés milyen gyakran aktiválódik a gyakoriság alapján, azaz hány időegységet kell várni, amíg az ütemezés újra kigyullad.

  • (Nem kötelező) schedule Az ismétlődési mintát határozza meg, amely hourstartalmazza a , minutesés weekdays.

    • Ha frequency igenday, a minta megadható és minutesmegadhatóhours.
    • Mikor frequency és weekmonth, a minta megadhatja hours, minutes és weekdays.
    • hours 0 és 23 közötti egész számnak vagy listának kell lennie.
    • minutes 0 és 59 közötti egész számnak vagy listának kell lennie.
    • weekdays lehet sztring vagy lista a következőtől monday a következőig sunday:
    • Ha schedule nincs megadva, a feladat(ok) a ( és interval) logikája start_timefrequency szerint lesznek aktiválva.
  • (Nem kötelező) start_time a kezdési dátumot és időpontot időzónával írja le. Ha start_time nincs megadva, start_time egyenlő lesz a létrehozott feladattal. Ha a kezdési időpont a múltban van, az első feladat a következő számított futtatási időpontban fog futni.

  • (Nem kötelező) end_time a befejezési dátumot és időt időzónával írja le. Ha end_time nincs megadva, az ütemezés mindaddig aktiválja a feladatokat, amíg manuálisan le nem tiltja az ütemezést.

  • (Nem kötelező) time_zone az ismétlődés időzónáját adja meg. Ha nincs megadva, alapértelmezés szerint UTC. Az időzónák értékeiről további információt az időzóniaértékek függelékében talál.

Időalapú ütemezés létrehozása cron-kifejezéssel

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: simple_cron_job_schedule
display_name: Simple cron job schedule
description: a simple hourly cron job schedule

trigger:
  type: cron
  expression: "0 * * * *"
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

# create_job: azureml:simple-pipeline-job
create_job: ./simple-pipeline-job.yml

A trigger szakasz az ütemezés részleteit határozza meg, és a következő tulajdonságokat tartalmazza:

  • (Kötelező)type azt adja meg, hogy az ütemezés típusa .cron

A lista alább folytatódik.

  • (Kötelező)expression a standard crontab kifejezéssel ismétlődő ütemezést fejez ki. Egyetlen kifejezés öt szóközzel tagolt mezőből áll:

    MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK

    • Egyetlen helyettesítő karakter (*), amely a mező összes értékét lefedi. Tehát a * napok a hónap minden napját jelentik (ami hónaptól és évtől függően változik).

    • A expression: "15 16 * * 1" fenti mintában szereplő érték minden hétfőn 16:15-kor lesz látható.

    • Az alábbi táblázat az egyes mezők érvényes értékeit sorolja fel:

      Mező Tartomány Megjegyzés
      MINUTES 0-59 -
      HOURS 0-23 -
      DAYS - Nem támogatott. Az érték figyelmen kívül lesz hagyva, és a rendszer a következőképpen kezeli: *.
      MONTHS - Nem támogatott. Az érték figyelmen kívül lesz hagyva, és a rendszer a következőképpen kezeli: *.
      DAYS-OF-WEEK 0-6 A nulla (0) vasárnapot jelent. A napok neve is elfogadott.
    • A Crontab-kifejezés használatáról további információt a Crontab Expression wikijében talál a GitHubon .

    Fontos

    DAYS és MONTH nem támogatottak. Ha egy értéket ad át, az figyelmen kívül lesz hagyva, és a rendszer a következőképpen kezeli.*

  • (Nem kötelező) start_time A kezdési dátumot és időpontot az ütemezés időzónájával adja meg. start_time: "2022-05-10T10:15:00-04:00" azt jelenti, hogy az ütemezés 2022.05.10-én 10:15:00-tól kezdődik UTC-4 időzónában. Ha start_time nincs megadva, az egyenlő lesz a start_time létrehozási idő ütemezésével. Ha a kezdési időpont a múltban van, az első feladat a következő számított futtatási időpontban fog futni.

  • (Nem kötelező) end_time a befejezési dátumot és időt időzónával írja le. Ha end_time nincs megadva, az ütemezés mindaddig aktiválja a feladatokat, amíg manuálisan le nem tiltja az ütemezést.

  • (Nem kötelező) time_zoneA kifejezés időzónáját adja meg. Ha nincs megadva, alapértelmezés szerint UTC. Az időzónák értékeit lásd a függelékben.

Korlátozások:

  • Az Azure Machine Tanulás v2-ütemezés jelenleg nem támogatja az eseményalapú eseményindítót.
  • Az Azure Machine Tanulás SDK/CLI v2 használatával több eseményindító időbélyeget tartalmazó összetett ismétlődési mintát adhat meg, míg a felhasználói felület csak az összetett mintát jeleníti meg, és nem támogatja a szerkesztést.
  • Ha minden hónap 31. napjaként állítja be az ismétlődést, 31 napnál rövidebb hónapokban az ütemezés nem indít el feladatokat.

Futtatókörnyezet-beállítások módosítása az ütemezés meghatározása során

Ha egy ütemezést egy meglévő feladattal határoz meg, módosíthatja a feladat futtatókörnyezeti beállításait. Ezzel a módszerrel többütemezést is meghatározhat ugyanazzal a feladattal, különböző bemenetekkel.

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: cron_with_settings_job_schedule
display_name: Simple cron job schedule
description: a simple hourly cron job schedule

trigger:
  type: cron
  expression: "0 * * * *"
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

create_job: 
  type: pipeline
  job: ./simple-pipeline-job.yml
  # job: azureml:simple-pipeline-job
  # runtime settings
  settings:
    #default_compute: azureml:cpu-cluster
    continue_on_step_failure: true
  inputs:
    hello_string_top_level_input: ${{name}} 
  tags: 
    schedule: cron_with_settings_schedule

Az ütemezés meghatározásakor az alábbi tulajdonságok módosíthatók:

Tulajdonság Leírás
beállítások A folyamatfeladat futtatásakor használandó beállítások szótára.
Bemenetek A folyamatfeladat futtatásakor használandó bemenetek szótára.
Kimenetek A folyamatfeladat futtatásakor használandó bemenetek szótára.
experiment_name Az aktivált feladat kísérletneve.

Feljegyzés

A Studio felhasználói felület felhasználói csak ütemezés létrehozásakor módosíthatják a bemeneti, kimeneti és futtatókörnyezeti beállításokat. experiment_name csak a parancssori felület vagy az SDK használatával módosítható.

Támogatott kifejezések az ütemezésben

Az ütemezés meghatározásakor támogatjuk a következő kifejezést, amely valós értékre lesz feloldva a feladat futásideje során.

Expression Leírás Támogatott tulajdonságok
${{creation_context.trigger_time}} Az ütemezés aktiválásának időpontja. A folyamatfeladat sztring típusú bemenetei
${{name}} A feladat neve. outputs.path of pipeline job

Ütemezés kezelése

Ütemezés létrehozása

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

Az ütemezési yaml létrehozása után az alábbi paranccsal hozhat létre ütemezést a parancssori felületen keresztül.

# This action will create related resources for a schedule. It will take dozens of seconds to complete.
az ml schedule create --file cron-schedule.yml --no-wait

Ütemezések listázása egy munkaterületen

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

az ml schedule list

Ütemezés részleteinek ellenőrzése

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

az ml schedule show -n simple_cron_job_schedule

Ütemezés frissítése

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

az ml schedule update -n simple_cron_job_schedule  --set description="new description" --no-wait

Feljegyzés

Ha nem csak címkéket/leírásokat szeretne frissíteni, javasoljuk, hogy használja a az ml schedule create --file update_schedule.yml

Ütemezés letiltása

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

az ml schedule disable -n simple_cron_job_schedule --no-wait

Ütemezés engedélyezése

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

az ml schedule enable -n simple_cron_job_schedule --no-wait

Lekérdezés által aktivált feladatok ütemezésből

Az ütemezés által aktivált feladatok összes megjelenítendő neve <>schedule_name-YYYYYMMDDThhmmssZ néven jelenik meg. Ha például egy névvel ellátott ütemezést 12 óránként, 2021. január 1-jén 6 órától kezdődő ütemezett futtatással hoz létre, akkor a létrehozott feladatok megjelenítendő neve a következő lesz:

  • named-schedule-20210101T060000Z
  • named-schedule-20210101T180000Z
  • named-schedule-20210102T060000Z
  • named-schedule-20210102T180000Z stb.

Képernyőkép az Azure Machine Tanulás studio szűrési lapjának feladatmegjelenítési neve alapján történő szűréséről.

Azure CLI JMESPath-lekérdezést is alkalmazhat az ütemezési név által aktivált feladatok lekérdezésére.

# query triggered jobs from schedule, please replace the simple_cron_job_schedule to your schedule name
az ml job list --query "[?contains(display_name,'simple_cron_schedule')]"

Feljegyzés

Az ütemezés által aktivált összes feladat egyszerűbb megtalálásához tekintse meg a Feladatok előzményeit az ütemezés részletei oldalon a studio felhasználói felületén.


Ütemezés törlése

Fontos

Ahhoz, hogy törölni lehessen, az ütemezést le kell tiltani. A törlés helyreállíthatatlan művelet. Az ütemezés törlése után soha nem érheti el és nem állíthatja helyre.

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

az ml schedule delete -n simple_cron_job_schedule

RBAC (szerepköralapú hozzáférés-vezérlés) támogatása

Mivel az ütemezéseket általában éles környezetben használják, a hibás működés hatásának csökkentése érdekében a munkaterület rendszergazdái korlátozhatják a munkaterületen belüli ütemezések létrehozásához és kezeléséhez való hozzáférést.

Jelenleg három műveleti szabály kapcsolódik az ütemezésekhez, amelyeket az Azure Portalon konfigurálhat. További információ az Azure Machine Tanulás-munkaterülethez való hozzáférés kezeléséről.

Művelet Leírás Szabály
Olvasás Ütemezések lekérése és listázása a Machine Tanulás munkaterületen Microsoft.Machine Tanulás Szolgáltatások/munkaterületek/ütemezések/olvasás
Írás Ütemezések létrehozása, frissítése, letiltása és engedélyezése a Machine Tanulás munkaterületen Microsoft.Machine Tanulás Szolgáltatások/munkaterületek/ütemezések/írás
Törlés Ütemezés törlése a Machine Tanulás munkaterületen Microsoft.Machine Tanulás Szolgáltatások/munkaterületek/ütemezések/törlés

Költségekkel kapcsolatos szempontok

  • Az ütemezések számlázása az ütemezések számától függ, minden ütemezés létrehoz egy Azure Machine-Tanulás alalkalmazást a felhasználó nevében (HOBO).
  • A logikai alkalmazások költsége visszavált a felhasználó Azure-előfizetésére, és megtalálhatja a HOBO-erőforrások költségeit az eredeti RP által kibocsátott mérőszám alapján. Ezek a gazdagéperőforrás (a munkaterület) alatt jelennek meg.

Gyakori kérdések

  • Miért nem jelennek meg az SDK által létrehozott ütemezések a felhasználói felületen?

    Az ütemezések felhasználói felülete v2-es ütemezésekhez készült. Ezért a v1-es ütemezések nem lesznek felsorolva, és nem érhetők el a felhasználói felületen keresztül.

    A v2-ütemezések azonban támogatják az 1. verziós folyamatfeladatokat is. Nem kell először közzétennie a folyamatot, és közvetlenül beállíthat ütemezéseket egy folyamatfeladathoz.

  • Miért nem aktiválják az ütemezésem a korábban beállított időpontban?

    • Alapértelmezés szerint az ütemezések az UTC időzónát használják a triggeridő kiszámításához. A létrehozási varázslóban megadhatja az időzónát, vagy frissítheti az időzónát az Ütemezés részletei lapon.
    • Ha minden hónap 31. napjaként állítja be az ismétlődést, 31 napnál rövidebb hónapokban az ütemezés nem indít el feladatokat.
    • Cron-kifejezések használata esetén a MONTH nem támogatott. Ha átad egy értéket, a rendszer figyelmen kívül hagyja, és *-ként kezeli. Ez egy ismert korlátozás.
  • Támogatottak az eseményalapú ütemezések?

    • Nem, a V2-ütemezés nem támogatja az eseményalapú ütemezéseket.

Következő lépések