Вступление

В прошлом году Джоэл Пино выпустила контрольный перечень воспроизводимости, чтобы облегчить воспроизводимые исследования, представленные на крупных конференциях по ОД (NeurIPS, ICML,…). Большинство пунктов в контрольном списке сосредоточены на компонентах бумаги. Один пункт в этом контрольном списке - «предоставить ссылку на исходный код», но кроме этого было дано мало рекомендаций. 

Были суммированы лучшие практики в контрольном списке полноты кода ML, который теперь является частью официального процесса отправки кода NeurIPS 2020 и будет доступен для использования рецензентами по их усмотрению.

Контрольный список полноты кода ML

Контрольный список полноты кода M проверяет хранилище кода для:

  1. Зависимости - есть ли в хранилище информация о зависимостях или инструкции о том, как настроить среду?
  2. Сценарии обучения - содержит ли репозиторий способ обучения / подгонки моделей, описанных в документе?
  3. Оценочные сценарии - содержит ли хранилище сценарий для расчета производительности обученной модели (моделей) или проведения экспериментов на моделях?
  4. Предварительно обученные модели - предоставляет ли репозиторий свободный доступ к предварительно обученным весам моделей?
  5. Результаты - содержит ли репозиторий таблицу / график основных результатов и скрипт для воспроизведения этих результатов?

Каждый репозиторий может получить от 0 (не имеет ни одного) до 5 (имеет все) тиков. Более подробную информацию о критериях для каждого элемента можно найти в репозитории Github.

Каковы доказательства того, что элементы контрольного списка способствуют созданию более полезных репозиториев?

Сообщество обычно использует звезды GitHub в качестве прокси для полезности репозитория. Поэтому ожидается, что в репозиториях, набравших более высокий балл в контрольном списке полноты кода ML, также должно быть больше звезд GitHub. Чтобы проверить эту гипотезу, было 884 репозитория GitHub, представленных в качестве официальных реализаций в документах NeurIPS 2019. Были случайно выбраны 25% -ное подмножество этих 884 репозиториев и вручную отмечены в контрольном списке полноты кода ML. Специалисты сгруппировали этот образец репозиториев NeurIPS 2019 GitHub по количеству тиков, которые они имеют в контрольном списке полноты кода ML, и нанесли на карту медианные звезды GitHub в каждой группе. Результат ниже:

Репозитории NeurIPS 2019 с 0 галочками имели медиану 1,5 звезд GitHub. Напротив, репозитории с 5 галочками имели медиану 196,5 звезд GitHub. Только 9% репозиториев имели 5 тиков, а большинство репозиториев (70%) имели 3 тика или меньше. Был выполнен тест суммы рангов Уилкоксона и обнаружено, что число звезд в 5-тиковом классе значительно (p.value <1e-4) выше, чем во всех других классах, кроме 5 против 4 (где p.value является границей). в 0,015). Вы можете увидеть данные и код этого рисунка в репозитории Github.

Чтобы проверить, распространяется ли это отношение в более широком смысле, было создан сценарий для автоматизации вычисления контрольного списка из хранилища README и связанного с ним кода. Затем повторен анализ всего набора из 884 репозиториев NeurIPS 2019, а также более широкого набора из 8926 репозиториев кода для всех статей ML, опубликованных в 2019 году. В обоих случаях специалисты получили качественно одинаковый результат с медианными звездами, монотонно увеличивающимися с клещи статистически значимым способом (p.value <1e-4). Наконец, используя надежную линейную регрессию, обнаружили, что предварительно обученные модели и результаты оказывают наибольшее положительное влияние на звезды GitHub.

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

В настоящее время специалисты не утверждают, что предлагаемые 5 пунктов контрольного списка являются единственным или даже самым значительным фактором популярности репозитория. Другие факторы могут влиять на популярность, такие как: размер научного вклада, маркетинг (например, сообщения в блогах и Twitter), документация (всесторонние README, учебные пособия и документация API), качество кода и предыдущая работа.

Некоторые примеры репозиториев NeurIPS 2019 с 5 галочками:

https://github.com/kakaobrain/fast-autoaugment https://github.com/bknyaz/graph_attention_pool https://github.com/eth-sri/eran https://github.com/NVlabs/selfsupervised-denoising https://github.com/facebookresearch/FixRes

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

Начните использовать

Чтобы облегчить рецензентам и пользователям понимание того, что входит в репозиторий, и чтобы специалисты правильно его оценили, предлагается сборник лучших рекомендаций по написанию файлов README.md, определению зависимостей, выпуску предварительно обученных моделей, наборов данных и результатов. Рекомендовано четко определить эти 5 элементов в вашем хранилище и связать их с любыми внешними ресурсами, такими как документы и списки лидеров, чтобы обеспечить больше контекста и ясности для ваших пользователей. Это официальные рекомендации по подаче кода на NeurIPS 2020.