Шаблон репозитория для классического ML/DL проекта
Задача: Тут можно кратко описать задачу...
- Установите python 3.11 и выше
- Склонировать репозиторий:
git clone ...
- Создать виртуальное окружение:
python -m venv venv
- Активироавть виртуальное окружение:
venv\Scripts\activate
(для windows) - Заполните
.env
файл: - Соберите проект:
python setup.py
S3_API_HOST=
S3_BUCKET_NAME=
S3_ACCESS_KEY=
S3_SECRET_KEY=
DVC_USE_SSL=True
DVC_REMOTE_URL=s3://ml-team-spb/businessguarantees
DVC_REMOTE_NAME=minio
MLFLOW_POSTGRES_DB=postgres_mlflow
MLFLOW_POSTGRES_USER=mlflow
MLFLOW_POSTGRES_PASSWORD=mlflow_password
MLFLOW_POSTGRES_PORT=5432
MLFLOW_POSTGRES_HOST=mlflow-postgres
# MLFLOW S3
BACKEND_STORE_URI=postgresql://${MLFLOW_POSTGRES_USER}:${MLFLOW_POSTGRES_PASSWORD}@localhost:${MLFLOW_POSTGRES_PORT}/${MLFLOW_POSTGRES_DB}
MLFLOW_TRACKING_URI=http://localhost:5000
MLFLOW_S3_ENDPOINT_URL=S3_API_HOST
MLFLOW_S3_REMOTE_URL=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
MLFLOW_PORT=5000
- Получить доступ к докеру и настроить его
- Заполнить env файл
- Запустить mlflow (желательно в отдельной консоли):
python mlflow/mlflow_start.py
Во время разработки следует следует создавать новые ветки из main
.
- Чтобы добавить новый функционал, создаем ветку
название_нового_функционала
отmain
.
(Хочу добавить поддержку линейной регрессии -> название ветки: add: linear_reg_support
)
- Чтобы пофиксить баг создаем ветку
fix: описание_бага
отmain
(Хочу добавить пофиксить баг подключение к БД -> название ветки: fix: bd_connection
)
- Чтобы что-то инициализировать
init: описание
git checkout -b branch_name
- создать ветку и переключиться на нееgit branch
- отобразить все существующие веткиgit push -u origin new branch
- отправить новую ветку в удаленный репозиторийgit reset -soft HEAD~1
- удалить последний 1 коммит, но сохранить измененияgit branch -d <branch-name>
- удалить ветку из локального репозиториюgit checkout current_branch
->
git merge target_branch
– подтянуть изменения изtarget_branch
ветки вcurrent_branch
git checkout --track -b local_branch_name origin/remote_branch_name
– Чтобы склонировать конкретную существующую в удаленном репозитории ветку, нужно ввести командуgit rm --cached filename
(если директория, то-r filename
) – удалить что-то из всевидящего GIT - ока:
poetry update
- обновить зависимость по pyproject.toml файлуpoetry install
- установить все зависимости по pyproject.toml и poetry.lock файламpoetry add --group group_name lib_name
- добавить библиотеку в зависимости (--group group_name
- не обязательно)poetry remove lib_name
- удалить библиотеку из зависимостейpoetry run pre-commit run --all-files
- запустить pre-commit хуки
dvc init
- инициализировать все dvc файлыdvc add path/to/...
- добавить в dvc папку/файлdvc commit
- Фиксирует измененияdvc push
- загрузить измененные данные в s3dvc pull
- выгрузить данные из s3dvc remote list
- показать список доступных хранилищdvc diff
- показать разницу между предыдущими версиямиdvc checkout
- восстановить данные из предыдущего коммита
docker-compose down -v
- (удалить контейнеры, включая volumes)docker-compose down
- (удалить контейнеры)docker-compose build --no-cache
- пересобрать, не используя кэшdocker-compose build
- пересобратьdocker-compose up -d
- запустить в detouch моде (логи не отображаются в консоли)docker-compose up -d --build
- запустить в detouch моде и пересобратьdocker ps
- вывести список запущенных контейнеров
set PYTHONPATH=%PYTHONPATH%;C:\Users\<username>\PycharmProjects\
- перед запуском jupyter notebook. Чтобы корректно работали во вложенных папках, а не только в корне (для PyCharm)- Установить прокси совкомбанка:
set http_proxy=http://proxy-server
set https_proxy=http://proxy-server
set no_proxylocalhost,127.0.0.1,192.168.*,10.60.*