Журнал

Воспроизводимость вычислений

27 июня 2024
Обложка поста Воспроизводимость вычислений
Обсудим, что такое воспроизводимость вычислений, и какие механизмы для ее обеспечения предоставляет аналитику платформа Loginom.

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

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

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

Вплоть до выхода Loginom версии 7.1 проблема воспроизводимости сценариев остро стояла перед аналитиком. Конечно, это затрагивало только некоторые ситуации, но могла доставить много хлопот.

Давайте сформулируем, по какой причине один и тот же сценарий Loginom может давать разные результаты? Ответ прост - если в вычислениях присутствует случайная компонента.

При формировании случайной последовательности чисел важно понимать термин псевдослучайная генерация. Псевдослучайное число - это число, которое генерируется в процессе, который кажется случайным, но фактически основан на начальном значении, известном как "зерно" (seed). Поскольку этот процесс детерминирован (то есть определен "зерном"), он будет воспроизводить ту же последовательность чисел каждый раз, когда он начинается с того же "зерна".

В стандартных компонентах Loginom существует две ситуации, когда требуется генерировать случайные числа.

  1. Случайный отбор записей из одного датасета в другой.
  2. Инициализация начального решения алгоритма случайными числами.

Для первого случая в Loginom есть два компонента: Сэмплинг и Разбиение на множества. Подробнее о них можно почитать здесь и здесь.

 

 

Второй случай используется во многих компонентах, в основном из группы Data Mining. Во-первых, потому что случайное разбиение на множества можно произвести внутри такого компонента, плюс там же настроить метод валидации через K-fold или Монте-Карло. Все эти процедуры требуют генерации случайных чисел.

 

 

Если не использовать встроенные в компонент процедуры разбиения и валидации, ряд компонентов все равно будут требовать генерацию случайных чисел для формирования начального приближения. Например, в кластеризации методом k-means (компонент Кластеризация) алгоритм стартует с центров кластеров, инициализированных случайным образом.

Но аналитику не нужно помнить все нюансы тех или иных алгоритмов. Для обеспечения воспроизводимости сценария достаточно контролировать параметр настройки Random seed, который задается в Мастере узла.

 

 

По умолчанию при добавлении узла в сценарий параметр Random seed генерируется однократно, и при дальнейших запусках не изменяется. В случае, когда требуется прим каждом запуске его генерировать заново, предусмотрена специальная настройка.

 

 

Это бывает полезно в случаях, когда требуется подобрать начальное приближение, дающее хорошие результаты, например, удачно сформированные кластера. Несколько запусков алгоритма с разными Random seed помогут в этом.

Обложка поста Дайджест обновлений Python Kits

Дайджест обновлений Python Kits

Представляем обновление нашей библиотеки компонентов Python Kits (релиз 3.2.2). В новой версии добавлены компоненты для работы с фреймворком для MLOps ClearML, а также внесен ряд улучшений.
Артём Гусев
26 февраля 2025
Обложка поста Дайджест обновлений JSON Kit

Дайджест обновлений JSON Kit

Библиотека компонентов Loginom JSON Kit обновилась до версии 1.1.0. В нее добавлен компонент Парсинг JSON+, работающий на базе популярной библиотеки JMESPath. Этот компонент расширяет возможности работы с JSON-данными, обеспечивая более гибкие и эффективные способы извлечения и обработки информации.
Артём Гусев
16 января 2025
Обложка поста Дайджест обновлений Python Kits

Дайджест обновлений Python Kits

Представляем обновление библиотеки компонентов Python Kits (релиз 3.2.1) . В нем мы сосредоточились на поддержке виртуальных окружений, новых компонентах для формирования HTML и отправки писем, а также провели оптимизацию существующих компонентов.
Артём Гусев
12 декабря 2024