01.10.2021

Как правильно делиться результатами работы с машинным обучением?

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

Бронзовый стандарт предполагает, что вы выложили в открытый доступ выборку и модель, а также её исходный код. Это минимальный набор, который необходим для воспроизведения результатов на другом компьютере. Выборку можно выложить на GitHub, Zenodo, если набор данных весит менее 50 Гб или Dryad, если набор весит более 50 Гб. Что касается выкладывания уже обученной модели в открытый доступ, то здесь авторы подчёркивают: размещение модели в репозитории на GitHub не соответствует бронзовому стандарту, выкладывать модели стоит в специальных коллекциях (например, биологи могут использовать Sfaira или Kipoi). Ещё одной важной особенностью «бронзы» является открытый исходный код модели и анализа — авторы статьи предполагают, что это позволит другим исследователям лучше понять специфику вашей модели, проще запустить процесс анализа на своём компьютере или выявить допущенные ошибки.   

Серебряный стандарт требует также установки зависимостей одной командой, описания условий, в которых обучалась модель, а также должны быть детерминированы случайные элементы. Авторы статьи называют «пакетным морским боем» попытки угадать, пакеты какой версии использовались при работе с моделью и анализом. Установка зависимых пакетов одной строкой должна ускорить настройку окружения для обучения модели на других ПК. В этом могут помочь менеджер управления зависимости Packrat для RStudio и пакетный менеджер Conda для Python.

Наконец, золотой стандарт предполагает, что весь анализ может быть запущен с помощью одной команды. Такая форма представления результата гарантирует запуск от предварительной обработки выборки до финальных этапов в роде выгрузки таблиц, создания инфографики и её аннотирования. В пример авторы приводят такие системы, как Snakemake или Nextflow, которые позволяют создавать правила для выполнения всех этапов анализа. 

Также в статье отдельное внимание уделяется работе с закрытыми или же конфиденциальными данными: например, использованию в модели дифференциальной приватности, которая делает невозможным извлечение конфиденциальных данных из тестовой или финальной выборок. Кроме того, авторы советуют грузить выборки на репозитории GitHub с доступом по приглашениям — это позволит вам управлять доступом к данным. А если вы работаете с датасетами ИНИД в режимах доступа «Продвинутый» или «ML-разработчикам», то вы можете дать ссылку на набор данных на нашем сайте — помимо защиты данных, платформа обеспечивает ещё и полную совместимость ПО, окружения и технических характеристик машин.