Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Осваиваем и дополняем Data Version Control

Осваиваем и дополняем Data Version Control

Артем Селезнев (МегаФон, аналитик больших данных) @ Moscow Python Meetup 67

"Как часто Вы сталкиваетесь с проблемой повторением ваших экспериментов в Ml? А Вы уже следите за Вашим процессом и его репрезентативностью?
Оказываться, что уже давно существуют инструменты позволяющие контролировать процесс ML, один их этих инструментов - DVC.
Инструмент, которые совместно с GIT может хранить не только Ваш код, но и Ваши данные и обученные модели.
Основывая свой доклад на своей повседневной рабочей деятельности, разберем способы инициализации и первой настройки. Разберем, что нужно знать и как правильно использовать дата пайплайны при помощи DVC, да и как же он хранит данные, не только для повторения процесса, но и для совместной работы".

Видео: http://www.moscowpython.ru/meetup/67/data-version-control/

Avatar for Moscow Python Meetup

Moscow Python Meetup

August 21, 2019
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Когда вы Data Scientist 1. Data Scientist – не программист

    (в основном) 2. Jupyter Notebook – Excel 2.0
  2. Когда вы Data Scientist 1. Data Scientist – не программист

    (в основном) 2. Jupyter Notebook – Excel 2.0 3. Особенный стиль контроля версий
  3. Когда вы Data Scientist 1. Data Scientist – не программист

    (в основном) 2. Jupyter Notebook – Excel 2.0 3. Особенный стиль контроля версий result.csv result_210719.csv result_210719.csv result_25_fin.csv
  4. Когда вы Data Scientist 1. Data Scientist – не программист

    (в основном) 2. Jupyter Notebook – Excel 2.0 3. Особенный (“Восточный”) стиль контроля версий result.csv result_210719.csv result_210719.csv result_25_final.csv result_25_finv1.csv result_25_finv2.csv result_25_finre.csv ….csv
  5. Когда вы Data Scientist 1. Data Scientist – не программист

    (в основном) 2. Jupyter Notebook – Excel 2.0 3. Особенный стиль контроля версий result_25_final.csv result_25_finv1.csv result_25_finv2.csv result_25_finre.csv ….csv
  6. Когда вы Data Scientist 1. Data Scientist – не программист

    (в основном) 2. Jupyter Notebook – Excel 2.0 3. Кризис контроля версий result_25_final.csv result_25_finv1.csv result_25_finv2.csv result_25_finre.csv ….csv Data Frame Headers Pickles list of prev.csv
  7. DVC – выход из кризиса. Почему? 1. Контроль экспериментов 2.

    Воспроизведение экспериментов 3. Создание pipeline проекта
  8. DVC – выход из кризиса. Почему? 1. Контроль экспериментов 2.

    Воспроизведение экспериментов 3. Создание pipeline проекта 4. Data cache
  9. DVC – выход из кризиса. Почему? 1. Контроль экспериментов 2.

    Воспроизведение экспериментов 3. Создание pipeline проекта 4. Data cache 5. Работа с облаками
  10. DVC обзор 1. Инициализировав DVC, создайте пространство для файлов >

    git init > dvc init > git add . > git commit -m "init" > dvc remote add -d myremote /tmp/storage > git commit .dvc/config -m "initialize DVC local remote"
  11. DVC обзор 1. Инициализировав DVC, создайте пространство для файлов >

    git init > dvc init > git add . > git commit -m "init" > dvc remote add -d myremote /tmp/storage > git commit .dvc/config -m "initialize DVC local remote"
  12. DVC обзор 1. Инициализировав DVC, создайте пространство для файлов >

    dvc remote add -d myremote /tmp/storage > git commit .dvc/config -m "initialize DVC local remote" local / remote , Amazon Storage, Google Cloud, Azure Storage, Hadoop
  13. DVC обзор 2. Создайте pipeline > dvc run -f catboost_dev/data_pre.dvc

    \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py
  14. DVC обзор 2. Создайте pipeline > dvc run -f catboost_dev/data_pre.dvc

    \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py
  15. DVC обзор 2. Создайте pipeline > dvc run -f catboost_dev/data_pre.dvc

    \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py
  16. DVC обзор 2. Создайте pipeline > dvc run -f catboost_dev/data_pre.dvc

    \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py md5: bbcf9272de50… cmd: preparator.py wdir: .. deps: - md5: 34rmrfhc58nr… path: constants.csv - md5: 8a5123fnf11n… path: loader.py - md5: 90tj58fh4515… path: preparator.py outs: - md5: 9a05df6702e9… path: data/raw_feats.csv
  17. DVC обзор 2. Создайте pipeline > dvc run -f catboost_dev/data_pre.dvc

    \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py md5: bbcf9272de50… cmd: preparator.py wdir: .. deps: - md5: 34rmrfhc58nr… path: constants.csv - md5: 8a5123fnf11n… path: loader.py - md5: 90tj58fh4515… path: preparator.py outs: - md5: 9a05df6702e9… path: data/raw_feats.csv
  18. DVC обзор 2. Создайте pipeline > dvc run -f catboost_dev/data_pre.dvc

    \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py md5: bbcf9272de50… cmd: preparator.py wdir: .. deps: - md5: 34rmrfhc58nr… path: constants.csv - md5: 8a5123fnf11n… path: loader.py - md5: 90tj58fh4515… path: preparator.py outs: - md5: 9a05df6702e9… path: data/raw_feats.csv
  19. DVC обзор 3. Добавьте метрик и отслеживайте их > dvc

    run -f catboost_dev/.dvc \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -d data/raw_feats.csv \ > -d catboost_fitter.py \ > -m metrics/ctb_binary.txt > python preparator.py
  20. DVC обзор 3. Добавьте метрик и отслеживайте их > dvc

    run -f catboost_dev/.dvc \ > -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -d data/raw_feats.csv \ > -d catboost_fitter.py \ > -m metrics/ctb_binary.txt > python preparator.py … outs: - md5: 1f41fedm14dk4… path: metrics/ctb_binary.txt cache: true metric: true persist: false
  21. Процессы хорошо читаемы > dvc run -f catboost_dev/data_pre.dvc \ >

    -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py md5: bbcf9272de50… cmd: preparator.py wdir: .. deps: - md5: 34rmrfhc58nr… path: constants.csv - md5: 8a5123fnf11n… path: loader.py - md5: 90tj58fh4515… path: preparator.py outs: - md5: 9a05df6702e9… path: data/raw_feats.csv
  22. Процессы хорошо читаемы > dvc run -f catboost_dev/data_pre.dvc \ >

    -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py md5: bbcf9272de50… cmd: preparator.py wdir: .. deps: - md5: 34rmrfhc58nr… path: constants.csv - md5: 8a5123fnf11n… path: loader.py - md5: 90tj58fh4515… path: preparator.py outs: - md5: 9a05df6702e9… path: data/raw_feats.csv > dvc run -f catboost_dev/cat_b.dvc \ > -d constants.csv \ > -d data/raw_feats.csv \ > -d cat_b.py > -o data/cat_result.csv > python cat_b.py md5: 8fsdhfe5rceq… cmd: cat_b.py wdir: .. deps: - md5: 1ee41dxqecs1… path: constants.csv - md5: 3x34r45ce14r… path: data/raw_feats.csv - md5: 8fsdhfe5rceq… path: cat_b.py outs: - md5: 15df8tadcacm495… path: data/cat_result.csv
  23. Процессы хорошо читаемы > dvc run -f catboost_dev/data_pre.dvc \ >

    -d constants.csv \ > -d loader.py \ > -d preparator.py \ > -o data/raw_feats.csv \ > python preparator.py md5: bbcf9272de50… cmd: preparator.py wdir: .. deps: - md5: 34rmrfhc58nr… path: constants.csv - md5: 8a5123fnf11n… path: loader.py - md5: 90tj58fh4515… path: preparator.py outs: - md5: 9a05df6702e9… path: data/raw_feats.csv > dvc run -f catboost_dev/cat_b.dvc \ > -d constants.csv \ > -d data/raw_feats.csv \ > -d cat_b.py > -o data/cat_result.csv > python cat_b.py md5: 8fsdhfe5rceq… cmd: cat_b.py wdir: .. deps: - md5: 1ee41dxqecs1… path: constants.csv - md5: 3x34r45ce14r… path: data/raw_feats.csv - md5: 8fsdhfe5rceq… path: cat_b.py outs: - md5: 15df8tadcacm495… path: data/cat_result.csv > dvc run -f catboost_dev/m.dvc \ > -d data/cat_resutlt.csv > -d cat_eval.py > -m metrics/ctb_m.txt > python cat_eval.py md5: 93miew4123cdas… cmd: cat_eval.py wdir: .. deps: - md5: 15df8tadcacm495… path: data/cat_result.csv - md5: 8fsdhfe5rceq… path: cat_b.py outs: - md5: 4t63tcm5t23x4… path: metrics/ctb_m.txt cache: true metric: true persist: false