рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

MLflow рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП Ultralytics YOLO

MLflow рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░

рдкрд░рд┐рдЪрдп

рдкреНрд░рдпреЛрдЧ рд▓реЙрдЧрд┐рдВрдЧ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓реВ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдореАрдЯреНрд░рд┐рдХреНрд╕, рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдореЙрдбрд▓ рдкреНрд░рдЬрдирди рдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ, рдореБрджреНрджреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдФрд░ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред Ultralytics YOLO, рдЕрдкрдиреА рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдм MLflow рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреВрд░реНрдг рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдЬреАрд╡рдирдЪрдХреНрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИред

рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреГрд╖реНрда рдЖрдкрдХреЗ рд▓рд┐рдП MLflow рд▓реЙрдЧрд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рд╣реИ Ultralytics YOLO рдкрд░рд┐рдпреЛрдЬрдирд╛ред

рдПрдордПрд▓рдлреНрд▓реЛ рдХреНрдпрд╛ рд╣реИ?

MLflow рдПрдВрдб-рдЯреВ-рдПрдВрдб рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИред рдЗрд╕рдореЗрдВ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд░рдиреЛрдВ рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЛрдб рдФрд░ рдореЙрдбрд▓ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдФрд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред MLflow рдХреЛ рдХрд┐рд╕реА рднреА рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реБрд╡рд┐рдзрд╛рдРрдВ

  • рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд▓реЙрдЧрд┐рдВрдЧ: рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред
  • рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЙрдЧрд┐рдВрдЧ: рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред
  • рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд▓реЙрдЧрд┐рдВрдЧ: рд▓реЙрдЧ рдореЙрдбрд▓ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ, рд╡рдЬрди рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕рд╣рд┐рдд, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдЕрдВрдд рдореЗрдВ.

рд╕реЗрдЯрдЕрдк рдФрд░ рдкреВрд░реНрд╡рд╛рд╡рд╢реНрдпрдХрддрд╛рдПрдБ

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ MLflow рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

pip install mlflow

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ MLflow рд▓реЙрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИ Ultralytics рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рдЖрдорддреМрд░ рдкрд░, рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ mflow рдЕрддреНтАНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдгред рджреЗрдЦреЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдаред

рдЖрдзреБрдирд┐рдХреАрдХрд░рдгрдЕ Ultralytics MLflow рд╕реЗрдЯрд┐рдЩрд╣рд░реВ

рднреАрддрд░ Python рдкрд░реНрдпрд╛рд╡рд░рдг, рдХреЙрд▓ рдХрд░реЗрдВ update рд╡рд┐рдзрд┐ рдкрд░ settings рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓рдиреЗ рдкрд░ рдЖрдкрддреНрддрд┐:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ:

# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:

рдЖрджреЗрд╢

  1. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ: рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

рдпрд╛ project=<project> рддрд░реНрдХ рдЬрдм рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдПрдХ YOLO рдореЙрдбрд▓, рдЕрд░реНрдерд╛рддред yolo train project=my_project.

  1. рд░рди рдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ: рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди, рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рди рдирд╛рдо рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    export MLFLOW_RUN=<your_run_name>
    

рдпрд╛ name=<name> рддрд░реНрдХ рдЬрдм рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдПрдХ YOLO рдореЙрдбрд▓, рдЕрд░реНрдерд╛рддред yolo train project=my_project name=my_name.

  1. рд╕реНрдерд╛рдиреАрдп MLflow рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ: рдЯреНрд░реИрдХрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

    mlflow server --backend-store-uri runs/mlflow'
    

рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ http://127.0.0.1:5000 рдкрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рднреА mlflow рд▓реЙрдЧ рдХреЛ 'runs/mlflow' рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдЧрд╛ред рдПрдХ рдЕрд▓рдЧ рдпреВрдЖрд░рдЖрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, MLFLOW_TRACKING_URI рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ред

  1. MLflow рд╕рд░реНрд╡рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдорд╛рд░ рдбрд╛рд▓реЛ: рд╕рднреА рдЪрд▓ рд░рд╣реЗ MLflow рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

рд▓реЙрдЧрд┐рдВрдЧ

рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ on_pretrain_routine_end, on_fit_epoch_endрдФрд░ on_train_end рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдиред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдорд╛рдкрджрдВрдбреЛрдВ, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг

  1. рдХрд╕реНрдЯрдо рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд▓реЙрдЧ рдХрд░рдирд╛: рдЖрдк рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рд▓реЙрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдореАрдЯреНрд░рд┐рдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ trainer.metrics рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рдкрд╣рд▓реЗ on_fit_epoch_end рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

  2. рдкреНрд░рдпреЛрдЧ рджреЗрдЦреЗрдВ: рдЕрдкрдиреЗ рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ MLflow рд╕рд░реНрд╡рд░ (рдЖрдорддреМрд░ рдкрд░ http://127.0.0.1:5000) рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдирд╛ рдкреНрд░рдпреЛрдЧ рдЪреБрдиреЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред YOLO MLflow рдкреНрд░рдпреЛрдЧ

  3. рд░рди рджреЗрдЦреЗрдВ: рд░рди рдПрдХ рдкреНрд░рдпреЛрдЧ рдХреЗ рдЕрдВрджрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбрд▓ рд╣реИрдВред рд░рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдФрд░ рдореЙрдбрд▓ рд╡рдЬрди рд╕рд╣рд┐рдд рд░рди рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВред YOLO рдПрдордПрд▓рдлреНрд▓реЛ рд░рди

MLflow рдЕрдХреНрд╖рдо рдХрд░рдирд╛

MLflow рд▓реЙрдЧрд┐рдВрдЧ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

yolo settings mlflow=False

рд╕рдорд╛рдкреНрддрд┐

MLflow рд▓реЙрдЧрд┐рдВрдЧ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде Ultralytics YOLO рдЖрдкрдХреЗ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдордЬрдмреВрдд рдореЙрдбрд▓ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рджреЗрдЦреЗрдВ MLflow рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг.



рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2023-11-12, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-05-18
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (4), рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ