Профессиональная структура каталогов проекта искусственного интеллекта
Структура data/, notebooks/, src/, models/, tests/ и шаблон cookiecutter-data-science.
«Профессиональная структура каталогов проекта искусственного интеллекта» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Почему структура важна
Куча ноутбуков с именами final.ipynb, final2.ipynb и really_final.ipynb — верный путь к гибели проекта с ИИ. Согласованная структура каталогов делает проекты понятными, воспроизводимыми и удобными для совместной работы.
В этом уроке рассматривается широко используемая структура Cookiecutter Data Science.
Папка data
Разделяйте данные по этапам обработки, чтобы исходные данные никогда не перезаписывались:
data/raw/— исходные неизменяемые данныеdata/processed/— очищенные данные, готовые для моделиdata/interim/— промежуточные преобразования
Считайте data/raw доступными только для чтения — вы всегда должны иметь возможность заново создать из них всё остальное.
Почему исходные данные неизменяемы
Если ошибка при очистке повредит единственную копию данных, проект окажется под угрозой. Если не изменять data/raw, каждый обработанный файл можно воспроизвести, повторно запустив конвейер.
Обработанные результаты можно удалить; исходные данные неприкосновенны.
Папка notebooks
notebooks/ содержит исследовательские и отчётные ноутбуки. Обычно их нумеруют по этапам и добавляют инициалы, например 1.0-mk-eda.ipynb.
Ноутбуки предназначены для исследования; повторно используемую логику следует переносить в src/.
Пакет src
src/ содержит импортируемый код Python, разделённый по задачам:
src/data/— скрипты загрузки и обработкиsrc/features/— построение признаковsrc/models/— код обучения и предсказанийsrc/visualization/— графики и отчёты
src/features и src/models
Разделение построения признаков и моделирования по разным модулям окупается: вы можете проводить модульное тестирование кода признаков, повторно использовать его в разных ноутбуках и менять модели, не переписывая подготовку данных.
from src.features.build_features import make_features
from src.models.train import train_model
X = make_features(df)
model = train_model(X, y)Папка models
models/ хранит сериализованные обученные артефакты (например, model.pkl, model.joblib). Это результаты, а не исходный код.
Большие файлы моделей обычно не следует добавлять в Git — вместо этого отслеживайте их с помощью DVC или объектного хранилища (об этом — в следующем уроке).
Папка reports
reports/ содержит сгенерированные результаты для людей: reports/figures/ — графики, а в корне находится документ отчёта. Эти результаты создаются вашим кодом, поэтому их можно сгенерировать заново.
Файлы конфигурации и окружения
Дополните проект файлами на уровне проекта:
requirements.txtилиenvironment.yml— зависимостиconfig.yaml— гиперпараметры и путиREADME.md— описание проекта и инструкции по его запуску.gitignore— файлы, которые Git должен пропускать
Полная структура
В итоге аккуратный проект с ИИ выглядит так:
project/
data/
raw/
interim/
processed/
notebooks/
src/
data/
features/
models/
visualization/
models/
reports/
figures/
config.yaml
requirements.txt
README.mdСоздание с помощью Cookiecutter
Не нужно каждый раз создавать такую структуру вручную. Шаблон cookiecutter-data-science создаёт каркас всего проекта одной командой.
# pip install cookiecutter
# cookiecutter -c v1 https://github.com/drivendata/cookiecutter-data-science
# Answer a few prompts -> full project tree createdБыстрая проверка: куда помещать исходные данные
Вы загружаете исходный файл CSV от поставщика данных.
Итоги: структура проекта
Вы изучили профессиональную структуру проекта с ИИ:
data/raw(неизменяемые данные),data/processedдля этапов обработкиnotebooks/для исследования,src/featuresиsrc/modelsдля повторно используемого кодаmodels/для артефактов,reports/для результатов- Конфигурация, зависимости, README и .gitignore в корне проекта
- cookiecutter-data-science для мгновенного создания каркаса
Далее: эффективное использование Git в проектах с ИИ.
Часто задаваемые вопросы
Урок «Профессиональная структура каталогов проекта искусственного интеллекта» бесплатный?
Да — полный текст урока «Профессиональная структура каталогов проекта искусственного интеллекта» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Профессиональная структура каталогов проекта искусственного интеллекта»?
Структура data/, notebooks/, src/, models/, tests/ и шаблон cookiecutter-data-science. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Профессиональная структура каталогов проекта искусственного интеллекта»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Профессиональная структура каталогов проекта искусственного интеллекта
- Git для проектов искусственного интеллекта
- Воспроизводимость: начальные значения, конфигурации и окружения
- Лучшие практики для ноутбуков Jupyter