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

В программном обеспечении скорость - это функциональность. Мы хотели сделать нашу реализацию SGD быстрее, но без ущерба для ее детерминированного поведения. Действительно, детерминизм является неотъемлемым условием для создания поставочных цепей производственного уровня. Другими словами, запуск SGD дважды должен давать точно такой же результат.

Воспроизводимый параллельный стохастический градиентный спуск для данных с очень высокой размерностью

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

Кратко говоря, мы достигли ускорения в 5 раз при затратах на вычисления в 6 раз больше, чем у базового SGD. Помимо этого, узким местом - в архитектуре Lokad - становится загрузка данных. Оптимизация производительности - это бесконечная игра в Whac-A-Mole: как только устраняется узкое место, возникает новое. Решение этой проблемы ввода-вывода - очевидный следующий шаг для нас. Следите за обновлениями!


Title: Воспроизводимый параллельный стохастический градиентный спуск для данных с очень высокой размерностью

Author: Зияд Беномар, Эколь политехник

Abstract: Мы интересуемся изучением алгоритмов распределенного стохастического градиентного спуска и их реализацией на машине с несколькими процессорами. Мы рассматриваем проблему с точки зрения производительности и скорости вычислений, и также требуем, чтобы наши решения были воспроизводимыми, то есть давали одинаковые результаты при запуске на одном и том же наборе данных. Мы сосредоточимся в основном на алгоритме PR-SGD и предложим некоторые адаптации, которые улучшают скорость выполнения, когда время загрузки данных в оперативную память компьютера очень долгое. Для каждого предложенного алгоритма мы даем доказательство сходимости и оценку времени его выполнения. Наконец, мы сравниваем наши алгоритмы с использованием понятия ε-производительности, которое мы определяем.

Скачать PDF