Эксперимент, который можно повторить
Одного seed недостаточно. Сохраните источник и версию данных, индексы разбиения, параметры обработки и модели, версии библиотек и код. Для некоторых алгоритмов и аппаратных операций даже это не гарантирует побитовое совпадение между системами. В лаборатории проверяем совпадение предсказаний в одном фиксированном окружении CPU.В скачанном комплекте зависимости закреплены в requirements.txt. Выполните команды установки из README и затем python -m ml_lab.train интерпретатором окружения. Команда создаёт artifacts/wine.joblib и artifacts/wine.json. Отчёт содержит вычисленные CV- и holdout-метрики, baseline, индексы, хеш данных и артефакта, seed и время обучения.
Сохранённая модель
Артефакт включает весь Pipeline и сведения о признаках. Joblib сохраняет Python-объекты, поэтому загружать следует только собственные доверенные файлы: чужой pickle/joblib может исполнять код. Для загрузки сохраняйте совместимые версии библиотек; перенос между произвольными версиями не обещается.Хеш позволяет различить файлы, но не заменяет проверку качества. Повторные файлы могут отличаться из-за метаданных времени, даже если предсказания одинаковы. Поэтому в тесте воспроизводимости сравниваются параметры, split и результаты, а не равенство всех байтов артефакта.
Model card
В MODEL_CARD.md запишите цель, источник данных, метрику выбора, ограничение применимости, известные ошибки, входную схему, команду воспроизведения и процедуру отката. Не вписывайте примерную точность: перенесите фактические значения из отчёта вашего запуска с указанием размера holdout.Контроль готовности
Запуститеpython -m unittest discover -s tests -v. Проверки используют реальный датасет, повторно обучают модель, сверяют масштабирование с train и вызывают API. Статус «тесты прошли» должен соответствовать завершению команды, а не наличию файлов в папке.