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
- Az Azure Machine Tanulás használatához Azure-előfizetéssel kell rendelkeznie. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki ma az Azure Machine ingyenes vagy fizetős verzióját Tanulás.
Telepítse az Azure CLI-t és a bővítményt
ml
. Kövesse a telepítés lépéseit a parancssori felület (v2) telepítése, beállítása és használata során.Hozzon létre egy Azure Machine Tanulás-munkaterületet, ha nincs ilyenje. A munkaterület létrehozásához tekintse meg a parancssori felület (v2) telepítését, beállítását és használatát ismertető témakört.
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 lehetcron
, 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.minute
Lehet ,hour
,day
, ,week
month
.(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, amelyhours
tartalmazza a ,minutes
ésweekdays
.- Ha
frequency
igenday
, a minta megadható ésminutes
megadhatóhours
. - Mikor
frequency
ésweek
month
, a minta megadhatjahours
,minutes
ésweekdays
. 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őlmonday
a következőigsunday
:- Ha
schedule
nincs megadva, a feladat(ok) a ( ésinterval
) logikájastart_time
frequency
szerint lesznek aktiválva.
- Ha
(Nem kötelező)
start_time
a kezdési dátumot és időpontot időzónával írja le. Hastart_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. Haend_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
ésMONTH
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. Hastart_time
nincs megadva, az egyenlő lesz astart_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. Haend_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
A 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.
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
- További információ a CLI (v2) ütemezési YAML-sémájáról.
- Megtudhatja, hogyan hozhat létre folyamatfeladatot a CLI 2-ben.
- Megtudhatja, hogyan hozhat létre folyamatfeladatot az SDK 2-ben.
- További információ a parancssori felület (v2) alapvető YAML-szintaxisáról.
- További információ a folyamatokról.
- További információ az összetevőről.