MLflow og modellregister
Denne siden dokumenterer det bundle-malen setter opp når du svarer yes på
include_ml_workflow: ressurser, variabler, jobben, privilegier og
begrensninger. For bakgrunn, se Maskinlæring på
plattformen .
Oversikt
Type: malvalg i Padda Asset Bundle Templates og bundle-ressurser
Gjelder for: bundles generert med include_ml_workflow: yes
Compute: serverless, miljøversjon 6
Modellregister: Unity Catalog (databricks-uc)
Rammeverk i eksempelet: PyTorch, logget med mlflow.pytorch
Malvalget include_ml_workflow
Egenskap
Verdi
Verdier
no (standard), yes
Spørres når
setup_type er default eller tailored; aldri for minimal
Legger til
Ressursfilene, scripts/upload_ml_wheels.sh, pakken src/<pakke>/ml/, testene tests/test_ml_*.py, avhengighetene mlflow-skinny, numpy, pandas, scikit-learn, torch, entry points ml_generate_data, ml_build_features, ml_train, ml_predict, variablene under, og pandas-stubs som dev-avhengighet
Filer som genereres:
Fil
Innhold
resources/example_ml.schema.yml
Skjemaet bundlen eier, med grants til konsumentgruppen
resources/example_ml.volume.yml
Volumet wheels for tredjepartsbiblioteker
resources/example_ml.experiment.yml
MLflow-eksperimentet
resources/example_ml.registered_model.yml
Den registrerte modellen romledighet, med EXECUTE til konsumentgruppen
resources/example_ml.job.yml
Serverless-jobben example_ml_job
resources/optional/example_ml.serving.yml
Serving-endepunktet. Ikke med i include
scripts/upload_ml_wheels.sh
Laster ned og opp hjul til volumet
src/<pakke>/ml/data.py
Syntetiske bookinger (ren pandas)
src/<pakke>/ml/features.py
Feature-kontrakten FEATURE_COLUMNS og SQL-en som bygger feature-tabellen
src/<pakke>/ml/model.py
Nettverket, treningsløkke og evaluering (ren torch)
src/<pakke>/ml/registry.py
Alias-regelen choose_alias og MLflow-hjelpere
src/<pakke>/ml/train.py
Treningsflyten: MLflow-kjøring, logging, registrering, alias
src/<pakke>/ml/predict.py
Batch-inferens med @padda
src/<pakke>/ml/tasks.py
Entry points for jobben
Variabler
Variabel
Standardverdi
Beskrivelse
ml_schema
ml_example
Skjemaet bundlen oppretter og eier. Tabeller, volum, modell og prediksjoner havner her
ml_consumer_group
account users
Principal som får USE_SCHEMA og SELECT på skjemaet og EXECUTE på modellen
ml_model_version
"1"
Versjonen serving-endepunktet serverer. Leses bare når resources/optional/*.yml er inkludert
catalog fra hovedmalen brukes som katalog for alt.
Bundle-ressurser
Jobben refererer til skjema og modell via ressursnavn, ikke via variabler,
slik at prefiksene i development-modus følger med:
schema : ${resources.schemas.example_ml_schema.name}
model-name : ${var.catalog}.${resources.schemas.example_ml_schema.name}.${resources.registered_models.example_ml_model.name}
experiment-id : ${resources.experiments.example_ml_experiment.id}
schemas
Felt
Type
Beskrivelse
name
string
Skjemanavn
catalog_name
string
Katalog
comment
string
Beskrivelse
grants
list
principal og privileges per mottaker
resources :
schemas :
example_ml_schema :
name : ${var.ml_schema}
catalog_name : ${var.catalog}
grants :
- principal : ${var.ml_consumer_group}
privileges : [ USE_SCHEMA , SELECT ]
experiments
Felt
Type
Beskrivelse
name
string
Full workspace-sti. Foreldremappen må finnes
permissions
list
Tilgang per bruker, gruppe eller service principal
artifact_location
string
Valgfri lagringssti for artefakter
resources :
experiments :
example_ml_experiment :
name : /Users/${workspace.current_user.userName}/${bundle.name}-ml-example
registered_models
Felt
Type
Beskrivelse
name
string
Modellnavn (siste ledd)
catalog_name
string
Katalog
schema_name
string
Skjema
comment
string
Beskrivelse
grants
list
principal og privileges, typisk EXECUTE
resources :
registered_models :
example_ml_model :
name : romledighet
catalog_name : ${var.catalog}
schema_name : ${resources.schemas.example_ml_schema.name}
grants :
- principal : ${var.ml_consumer_group}
privileges : [ EXECUTE ]
Ressursen oppretter selve modellobjektet. Versjoner opprettes av
treningsjobben via registered_model_name i mlflow.pytorch.log_model.
model_serving_endpoints
Felt
Type
Beskrivelse
name
string
Endepunktnavn. Brukes i URL-en
config.served_entities[].entity_name
string
Full modellnavn <katalog>.<skjema>.<modell>
config.served_entities[].entity_version
string
Versjonsnummer. Alias støttes ikke
config.served_entities[].workload_size
string
Small, Medium eller Large
config.served_entities[].scale_to_zero_enabled
bool
Skalerer til null ved inaktivitet
tags
list
key/value-par. Kosttagger settes her
permissions
list
Hvem som kan spørre (CAN_QUERY) eller administrere (CAN_MANAGE) endepunktet
resources :
model_serving_endpoints :
example_ml_endpoint :
name : romledighet
config :
served_entities :
- entity_name : ${var.catalog}.${resources.schemas.example_ml_schema.name}.${resources.registered_models.example_ml_model.name}
entity_version : ${var.ml_model_version}
workload_size : Small
scale_to_zero_enabled : true
tags :
- key : CostTeam
value : padda
- key : CostProcess
value : Serve
Volumet er dokumentert under Unity Catalog
Volumes .
Jobben example_ml_job
Task
Entry point
Parametere
Gjør
generate_data
ml_generate_data
catalog, schema, valgfritt weeks, rooms, seed
Skriver rom og bookinger
build_features
ml_build_features
catalog, schema, valgfritt horizon-days (1–7)
Skriver romledighet_features; rader etter siste bookingdag får er_booket = NULL
train
ml_train
catalog, schema, model-name, experiment-id, valgfritt epochs
Trener, logger, registrerer ny versjon, setter alias
predict
ml_predict
catalog, schema, model-name
Skriver romledighet_prediksjoner for radene uten label
Miljøet:
environments :
- environment_key : ml
spec :
environment_version : "6"
dependencies :
- "--no-index"
- "--find-links /Volumes/${var.catalog}/${resources.schemas.example_ml_schema.name}/${resources.volumes.example_ml_wheels.name}"
- ../dist/*.whl
Triggeren er en ukentlig periodic med pause_status: PAUSED. Tagger:
CostTeam fra teamet og CostProcess: ML.
Tabeller
Tabell
Nøkkel
Innhold
rom
rom_id
bygg, etasje, kapasitet, har_video
bookinger
booking_id
rom_id, start, slutt, enhet, opprettet (lokal tid uten tidssone)
romledighet_features
rom_id, dato, time
Kolonnene i FEATURE_COLUMNS som DOUBLE, og er_booket (1.0, 0.0 eller NULL)
romledighet_prediksjoner
rom_id, dato, time
tidspunkt, sannsynlighet_booket, modellversjon, predikert_tidspunkt
FEATURE_COLUMNS er, i rekkefølge: ukedag, time_num, etasje,
kapasitet, har_video, booket_forrige_uke, andel_booket_siste_4_uker,
og én kolonne bygg_<navn> per bygg.
Privilegier
Rolle
Trenger
Får det fra
Den som deployer bundlen
USE_CATALOG og CREATE_SCHEMA på katalogen
katalogeier
Jobbens run_as
Eierskap til skjema, volum, modell og tabeller
Blir eier ved deploy
Konsument av prediksjoner
USE_CATALOG, USE_SCHEMA, SELECT
ml_consumer_group via bundlen (USE_CATALOG fra katalogeier)
Konsument av modellen (batch fra egen jobb)
USE_CATALOG, USE_SCHEMA, EXECUTE på modellen
ml_consumer_group via bundlen
Den som oppretter endepunktet
EXECUTE på modellversjonen
Eier eller ml_consumer_group
Den som kaller endepunktet
CAN_QUERY på endepunktet
permissions på endepunktet
Navn i development-modus
Ressurs
Navn i development
Navn i production
Skjema
dev_<bruker>_<ml_schema>
<ml_schema>
Registrert modell
dev_<bruker>_romledighet
romledighet
Eksperiment
/Users/<bruker>/[dev <bruker>] <bundle>-ml-example
/Users/<deployer>/<bundle>-ml-example
Jobb
[dev <bruker>] example_ml_job
example_ml_job
databricks bundle summary -t <target> viser de faktiske navnene.
Serverless-miljø
Pakke
I miljøversjon 6
Kilde i jobben
mlflow-skinny 3.12
Ja
Forhåndsinstallert
pandas, numpy, scikit-learn, pyarrow
Ja
Forhåndsinstallert
torch
Nei
Volumet wheels (torch==2.12.0+cpu, Linux x86_64, Python 3.12)
sympy, networkx, mpmath
Nei
Volumet wheels (avhengigheter av torch)
scripts/upload_ml_wheels.sh <target> <profil> laster ned hjulene med
pip download for manylinux_2_28_x86_64 og cp312, og laster dem opp med
databricks fs cp til /Volumes/<katalog>/<skjema>/wheels/.
Feil og advarsler
Library installation failed: ... Unable to find or download the required package
Betydning: pip fikk ikke tak i en pakke.
Når den oppstår: volumet er tomt eller mangler et hjul, eller
jobbmiljøet peker på en pakkeindeks på internett.
Merknad: kjør scripts/upload_ml_wheels.sh og sjekk at dependencies
starter med --no-index. Feiler bare det første forsøket på den første
tasken rett etter en deploy, mens Databricks' automatiske nye forsøk
lykkes, er det ikke noe galt med oppsettet; mønsteret er observert flere
ganger på plattformen.
Parent directory does not exist: /Users/<bruker>/<mappe>
Betydning: eksperimentets foreldremappe finnes ikke.
Når den oppstår: experiments.<navn>.name peker på en undermappe.
Merknad: legg eksperimentet rett under brukermappen.
Invalid base environment ... Only custom base environments ... are currently supported
Betydning: Jobs API-et godtar ikke Databricks-leverte basemiljøer.
Når den oppstår: base_environment: workspace-base-environments/... i
jobbmiljøet.
Merknad: bruk environment_version og hjul fra volumet.
Function '<modell>' is not empty. The function has N model versions(s)
Betydning: en registrert modell med versjoner kan ikke slettes.
Når den oppstår: databricks bundle destroy, eller en deploy som må
gjenskape modellen fordi ressursnøkkelen eller navnet er endret.
Merknad: slett versjonene først med databricks model-versions delete
<modell> <versjon>, og kjør kommandoen på nytt. Bundlen sletter aldri
modellversjoner selv.
CLI-kommandoer
Kommando
Beskrivelse
databricks model-versions get-by-alias <modell> padda
Hvilken versjon aliaset peker på
databricks model-versions set-alias <modell> <alias> <versjon>
Flytt et alias manuelt
databricks model-versions list <modell>
Alle versjoner
databricks model-versions delete <modell> <versjon>
Slett en versjon; nødvendig før modellen eller skjemaet kan slettes
databricks experiments search-runs --experiment-ids <id>
Kjøringer med metrikker
databricks serving-endpoints get <navn>
Status for et endepunkt
databricks environments list-workspace-base-environments
Basemiljøer i workspacet
Begrensninger
Stien dekker CPU på serverless. GPU og klassisk ML-runtime settes ikke opp
av malen.
Databricks-leverte basemiljøer kan ikke velges via base_environment i
jobber ennå.
Serving-endepunkter serverer et versjonsnummer, ikke et alias.
Serverless-miljøet er Python 3.12 selv om prosjektet lokalt bruker en nyere
versjon; hjul til volumet må lastes ned for 3.12.
Relatert innhold