RSS Stories by Pinterest Engineering on Medium
Подписаться
Как Pinterest ускоряет итерации функций машинного обучения с помощью эффективного заполнения
Миссия Pinterest - вдохновлять пользователей на создание любимой жизни, для чего используются самые современные модели рекомендаций и рекламы, обученные на десятках петабайт данных. Эти модели создают персонализированные рекомендации, показывая пользователям контент, который соответствует их интересам. Экспериментирование с функциями - обычная задача, и первым шагом является включение новых функций в обучающий набор данных. Наиболее простым методом включения признаков является Forward Logging, однако этот метод сопряжен с такими проблемами, как высокая стоимость календарного дня, высокая стоимость времени разработки, отсутствие изоляции, нерациональное использование ресурсов и нестабильность. Feature Backfill - это альтернатива прямому протоколированию, которая обычно используется для решения этих проблем. В этом блоге авторы рассказывают о том, как они создали свое решение Feature Backfill Solution, используя различные техники для сокращения затрат и времени итераций до 90 раз. Авторы разработали первоначальное решение по засыпке признаков с помощью Spark для материализации признаков в учебных таблицах, которое работает как многократно используемая группа Airflow DAG, запускаемая ML-инженерами по требованию. Однако это решение имеет такие проблемы, как отсутствие одновременного заполнения, высокая стоимость вычислений и ручное управление разделами. Для решения этих проблем авторы разработали версию v2, применив двухэтапный подход к засыпке, который упрощает процесс до двух ключевых этапов: Feature Staging и Feature Promotion.