tg-me.com/knowledge_accumulator/273
Last Update:
Я не могу больше это терпеть. С меня хватит.
Как многие из вас знают, я уже несколько лет занимаюсь рекомендательными системами. Эта сфера была для меня случайным и очень приятным открытием 2021-го года.
Последние пару лет я занимался применением трансформеров в рекомендательных сценариях. Это совмещает два плюса - с одной стороны, это обучение больших end-to-end моделей, а с другой, результирующие эмбеддинги достаточно легко внедрять в прод - достаточно добавить новую фичу в финальную ранжирующую модель, переобучить, и готово. По крайней мере, так я думал раньше.
Самая большая фундаментальная проблема рекомендательных систем - никто в душе не понимает, какую финальную цель она преследует. Обычно в компаниях есть какая-нибудь метрика, на которую смотрят больше всего - например, итоговый Timespent, но это всё равно остаётся всего лишь прокси-метрикой. Оптимизируя её, вы совершенно не обязательно заслужите похвалу и почёт. В любой момент может оказаться, что вы её как-то "неправильно" соптимизировали и "вайб" у системы уже не тот. Объяснить и измерить, что именно не так, естественно, никто не соизволит.
Даже если ваша прокси-метрика нормально отражает счастье компании и пользователей, ранжирующая модель оптимизирует не её. Ранжирующая модель - это какой-нибудь унылый Learning To Rank подход, предсказывающий скоры для конкретных пар (user;item). То, на что именно он обучается, и то, что происходит со скорами после предсказаний - это результат десятилетия внедрений костылей, и любое изменение модели может привести к тому, что все эти правила раскалибруются и всё сломается.
Таким образом, есть 2 очевидных сценария, в которых я обучаю новую охеренную модель, внедряю, все оффлайн-метрики колосятся, а AB-шница и начальники исходят на говно.
Как же я теперь ненавижу ёбаные нейросетевые ранкеры. Казалось бы, круто - ранжировать айтемы жирной нейросетью. Такие модели очень ёмкие и крайне долго насыщаются, можно дообучать на месяцах данных.
Одна только загвоздка - эту модель потом хуй заменишь на другую. Текущий продакшн могли поставить обучаться в 2023, и теперь удачи побить его с помощью обученной с нуля модельки. Да, ты молодец, что бьёшь бейзлайн, который тоже обучается с нуля, но всем насрать - тебе надо наверстать 2 года обучения, чтобы это имело смысл ставить в AB.
Для этого иди, пожалуйста, построй фичи для своего трансформера на 2 года назад, собери триллион сэмплов, а потом просто обучи на нескольких h100-нодах. Ой, процесс построения исходных данных 13 раз ломался только за последний месяц, так что в некоторых местах входы будут содержать приколы вместо реальных фичей. Твоя модель ведь не сломается от этого, да?
Я очень устал от всех этих сложностей. Большую часть времени вместо того, чтобы делать что-то полезное, обучать умные модели, я занимаюсь разгребанием каких-то пожаров и починкой сломанных процессов. Я принял сложное решение о смене направления.
В этом году я планирую переходить из индустрии в ресёрч. К счастью, моя британская виза не привязывает к работодателю, и этой осенью я планирую поступить на PhD в одном из местных университетов. Конкретные планы расскажу в одном из следующих постов, когда всё точно решится.
Очень надеюсь, что это изменение позволит мне сосредоточиться на прогрессе в ML, не обращая внимания на шум вокруг, и наконец-то обрести спокойную и стабильную жизнь.
@knowledge_accumulator
BY Knowledge Accumulator
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/knowledge_accumulator/273