Производственный шаблон репозитория для разработки машинного обучения, поддерживающий экспериментирование, отслеживание версий данных и моделей, а также легкий переход к продакшен-развертыванию.
- Версионирование данных и моделей с помощью DVC
- Автоматизация workflows через Makefile
- Современное управление зависимостями с помощью UV
- Шаблонизация проектов с помощью Cookiecutter
- Структурированная организация кода по функциональности
- Логирование экспериментов и метрик
- Конфигурационное управление через YAML-файлы
- Готовность к продакшену с Docker и API-интерфейсом
- Тестирование и линтинг для поддержания качества кода
- Визуализация результатов и метрик
Cookiecutter позволяет создавать новые проекты из шаблона с автоматической подстановкой параметров.
# Установка через pip
pip install cookiecutter
# Или установка через UV (рекомендуется)
uv pip install cookiecuttercookiecutter https://github.com/LizardAPN/ekanam_ml_templateproject_name [Мой ML проект]: Предсказание оттока клиентов
repo_name [предсказание_оттока_клиентов]:
author_name [Ваше имя]: Команда Data Science
email [ваш.email@пример.com]: team@company.com
description [Шаблон проекта машинного обучения]: Предсказание оттока клиентов с использованием машинного обучения
python_version [3.9]: 3.10cd предсказание_оттока_клиентовПосле создания проекта из шаблона, вы можете автоматически создать репозиторий в GitHub с помощью нашего специального скрипта.
- После генерации проекта cookiecutter спросит вас, хотите ли вы создать репозиторий в GitHub
- Если вы ответите утвердительно, вам нужно будет предоставить GitHub токен для аутентификации
- Вы можете выбрать, должен ли репозиторий быть приватным или публичным
- Скрипт автоматически создаст репозиторий и загрузит в него весь код
- Перейдите в настройки GitHub
- Нажмите "Generate new token"
- Выберите права доступа
repo(полный доступ к приватным репозиториям) - Скопируйте токен и сохраните его в безопасном месте
После создания проекта из шаблона, просто следуйте инструкциям в терминале. Скрипт автоматически спросит вас:
- Хотите ли вы создать репозиторий в GitHub
- Ваш GitHub токен (ввод не будет отображаться для безопасности)
- Должен ли репозиторий быть приватным
Если вы пропустили этот шаг или хотите выполнить его позже, вы можете вручную запустить скрипт:
python scripts/create_github_repo.py- Экономия времени: Репозиторий создается и инициализируется одной командой
- Правильная настройка: Git репозиторий правильно инициализируется с первым коммитом
- Безопасность: Токен используется только для создания репозитория и не сохраняется
- Гибкость: Вы можете выбрать публичный или приватный репозиторий
| Параметр | Описание | По умолчанию |
|---|---|---|
| project_name | Название проекта | "Мой ML проект" |
| repo_name | Имя репозитория | Автоматически генерируется |
| author_name | Имя автора | "Ваше имя" |
| Email автора | "ваш.email@пример.com" | |
| description | Описание проекта | "Шаблон проекта машинного обучения" |
| python_version | Версия Python | "3.9" |
- Стандартизация: Все проекты команды имеют одинаковую структуру
- Экономия времени: Автоматическое создание проекта с готовой конфигурацией
- Автоматическая подстановка: Имена проектов, авторов и другие параметры подставляются автоматически
- Легкое обновление: Можно обновлять шаблон и применять изменения к новым проектам
Если вы вносите изменения в шаблон:
cookiecutter . --overwrite-if-existscd test_project
./scripts/setup_environment.sh
make test