Всякий раз, когда вы начинаете какой-либо проект по науке о данных/машинному обучению, очень важно настроить среду проекта. В этой главе мы обсудим, как сделать настройку вашего проекта по науке о данных простой и аккуратной.

IDE

IDE — это интегрированная среда разработки для создания приложений машинного обучения. Вы можете выбрать любую из IDE, например Jetbrains Pycharm, Spyder, код студии MS VS, Sublime Text, Atom для кодирования Python, блокноты Jupyter для интерактивной обработки данных и RStudio для R. Используйте Notebook++ для редактирования и обработки текстовых данных.

Используйте Anaconda для автоматической установки и управления всеми широко используемыми пакетами ML Python с открытым исходным кодом, такими как numpy, pandas, scikit-learn, tensorflow, keras, scipy, pytorch, bokeh, matplotlib, plotly, dash, streamlit, подушка. , openCV, dask, NLTK, Spacy, Airflow и т. д..

Венв

Всякий раз, когда вы начинаете какой-либо новый проект по машинному обучению или науке о данных, рекомендуется создать новую виртуальную среду. Виртуальная среда важна, чтобы избежать конфликтов версий и поддерживать среду, специфичную для проекта и/или команды.

Чтобы создать новый venv:

python3 -m venv new_proj_env
In order to give the virtual environment access to system site-packages directory, use option: --system-site-packages

Это создаст новую папку new_proj_env в текущем рабочем каталоге и будет содержать копию исходного дистрибутива Python, доступного в системе.

Чтобы активировать виртуальную среду, используйте:

On Windows run: new_proj_env\Scripts\activate.bat
On Linux run: source new_proj_env/bin/activate

После запуска вышеуказанной команды активации venv в командной строке вашей оболочки будет показано имя venv, которое используется в данный момент. Теперь вы можете установить любой пакет Python в зависимости от потребностей проекта.

Также, чтобы узнать текущую используемую версию python vevn: какой пункт или какой python

Чтобы узнать расположение пакетов сайта, где будут установлены все пакеты Python, специфичные для venv, используйте:

In linux:
pip show <package_name> | grep Location
In windows: 
python -m pip show <package_name> | findstr "Location"
In Linux, you can go to site-packages folder by:
cd $(python -c "import site; print(site.getsitepackages()[0])") 

Чтобы деактивировать venv, используйте: деактивировать

Чтобы получить файл requirements.txt, в котором будет подробная информация обо всех установленных пакетах и ​​их версиях в venv, используйте: pip Freeze › requirements.txt

Чтобы установить все пакеты, представленные в файле requirements.txt, используйте: pip install requirements.txt

Структура проекта

Вы должны следовать правильной структуре папок, чтобы поддерживать, разделять и делиться своим кодом, записными книжками, документами, моделями, наборами данных, метаданными и файлами конфигурации. Используйте для этой цели Data Science Cookiecutter.

Фреймворки жизненного цикла науки о данных

Существует множество доступных сред жизненного цикла науки о данных и машинного обучения с открытым исходным кодом, которые помогают стандартизировать поддерживаемый и модульный код науки о данных для сквозного рабочего процесса машинного обучения. Вы можете изучить и использовать любую из следующих платформ:

  • MLflow — MLflow — это платформа с открытым исходным кодом для управления сквозным жизненным циклом машинного обучения.
  • Kedro — Kedro — это среда Python с открытым исходным кодом для создания воспроизводимого, поддерживаемого и модульного кода для обработки данных.

Для развертывания и обслуживания модели используйте:

  • BentoML — BentoML — это открытая платформа, которая упрощает развертывание модели машинного обучения и позволяет вам обслуживать свои модели в производственных масштабах за считанные минуты.
  • SeldonCore — ядро ​​Seldon преобразует ваши модели машинного обучения в рабочие микросервисы REST/GRPC.

Для моделей, наборов данных и управления метаданными и версиями:

  • DVC — Data Version Control или DVC — это инструмент с открытым исходным кодом для проектов по науке о данных и машинному обучению.

Для создания облегченных приложений данных и машинного обучения вы можете использовать следующие пакеты с открытым исходным кодом:

  • Streamlit — для создания и совместного использования приложений для работы с данными на python.
  • Gradio — для создания приложений машинного обучения.
  • Plotly Dash — Аналитические UI-приложения для Python, Jupyter, R, Julia

Стандарты кодирования —

В любом коде обработки данных/машинного обучения убедитесь, что вы соблюдаете все стандарты кодирования, дизайна, безопасности и архитектуры, как и при любой обычной разработке программного обеспечения.

  • Для Python используйте Руководство по стилю PEP8 для кода Python. Используйте Black для автоматического форматирования вашего кода Python, isort для сортировки импорта и Flake8 для проверки стиля и качества вашего кода.
  • Убедитесь, что ваш код модульный и читаемый с помощью функций
  • Включите строку документации для всех модулей, классов и функций.
  • По возможности используйте уже существующие пакеты и методы с открытым исходным кодом.
  • Добавляйте логи с помощью: пакетов Logging или loguru или PySnooper или WhyLogs
  • Пишите модульные тесты с помощью pytest.
  • Используйте конвейеры GIT и CI/CD (XLDeploy, Jenkins) для управления кодом и его развертывания.