Как стать автором
Обновить

Комментарии 8

… без ошибок и с повторением сохраненных результатов выполнились только 4% из полутора миллионов тетрадок.
А что тут удивительного? Сколько брал кода с гитхаба, всегда что-то надо «допиливать». Для многих это просто «источник кармы» для резюме.

Первыми указаны ошибки в ноутбуках, которые возникают при смене версий у зависимостей. Насколько знаю, у того же гитхаба даже не предусмотрен регулярный запуск автотестов и контроль «сломавшихся» зависимостей. Так что проблема не у исследовательского сообщества, а в индустрии — код ломается со временем сам собой и нет методов контроля, кроме постоянного ручного тестирования…

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

Даже если написано, далеко не всегда помогает — например, многие зависимости грузятся неявно, в том числе, автоматически выбираются скриптовая или бинарная версии, так что на разных хостах в процессе исполнения одних и тех же библиотек вызывается разный код. Да даже на С один и тот же код запросто выдает совершенно разные результаты во всяких не детерминированных алгоритмах (отжига и прочее) на разных ОС и железе.

Ну для таких ситуаций есть Docker. Написать Dockerfile и выложить в репозиторий с кодом не так уж и сложно. По поводу случайностей и не детерменированных алгоритмов — ну люди не зря придумали random seed. Кажется проблема не в нехватке инструментов, а в нехватке желания/мотивации, ну или навыков и культуры в академическом сообществе.

Статьи с программами пишут лет 70 как, инструменты за это время множество раз менялись. «Древние» статьи с псевдокодом самые надежные, но их воспроизводить — это с нуля весь код писать и тестировать, пытаясь получить похожие картинки. Даже если не говорить про весь уже написанный код, докер никакой надежности не дает — нет никаких гарантий, что все ссылки для всех зависимостей будут работать через N лет.


люди не зря придумали random seed

Я про другое — эвристические алгоритмы (поиска кратчайшего пути через набор точек, к примеру) обычно используют ограничения, в том числе по времени. Так вот, то количество вариантов, которые могли быть перебраны 20 лет назад (на одноядерном) сервере за 30 секунд, на два-три десятичных порядка отличаются от перебираемых на современном 64 ядерном сервере за то же время. Кроме того, сейчас мы можем перебрать множество разных комбинаций тех параметров, которые раньше просто задавались константами — то есть сделать gridsearch. Плюс стала возможной метаоптимизация параметров, то есть поиск решения для множества наборов параметров и выбор лучшего. В итоге, результаты просто кучи публикаций теперь просто не имеют смысла — огромное количество алгоритмов и оптимизаций стали не нужны, потому что мы легко можем получить значительно лучшее решение вышеописанными способами, а не решаемые задачи внезапно оказались решаемыми достаточно оптимально.

… код ломается со временем сам собой ...
Всё может быть в этом мире. Правда, у меня сайты уже 10 лет работают без правки кода(Perl) — нет особой потребности что-то менять. И вроде работают пока.

А ваш код можно просто скопировать и успешно запустить на всех линуксах, виндоусах и маках, не говоря уж о различных бсд-системах и коммерческих юниксах? Думаю, что нет. О том и речь, что от "работает у автора" до воспроизводимости ну очень далеко.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории