Комментарии 4
Спасибо за статью, ловите плюсик: полезно иметь всё в одном месте. Однако хочу уточнить, что хотя аналогия q, k, v матриц с базами данных (мой самый любимый вопрос) и используется во многих объяснениях и ответах на собеседованиях, это ошибочное утверждение. На самом деле эти матрицы решают 2 проблемы:
- 1) Помогают отделять смысл слова в зависимости от контекста в пространстве признаков т.к. эмбеддинги из-за своей статичной природы не умеют делать это напрямую.
2) Это помогает определять направление зависимости в словах, то есть выделять объекты и субъекты. Проще говоря, делать матрицу оценок внимания ассиметричной.
Если вдруг вам или читателям будет эта тема интересна, то я как раз вчера делал статью про FlashAttention на Triton, где про это рассказывается более подробно и не только.
Кто в теме, какого рода специалистов и под какие задачи можно собеседовать такими вопросами?
Допустим компании нужен специалист который будет обучать своего трансформера чтобы он был лучше открытых моделей. Но такой специалист это уникум и вопросы должны быть намного глубже.
Или компании нужен просто дата и ML инженер чтобы что-то внедрять или дообучать, тогда что ему дают эти знания? Просто как доказательство что он прочитал про архитектуру трансформеров а значит достаточно любопытен и знает матрицы?
Или и правда есть работа для которой подобные знания могут быть полезны?
Звучит как вопрос "что такое угол атаки" на собеседовании в авиацию. Если вам нужен пилот или авиаконструктор, то такой вопрос как-то не серьезно, учитывая что вы намерены дать ему в руки нечто на ярд долларов. А если нужна стюардесса, то какая разница знает ли она это.
Хороший вопрос. Здесь может быть 2 варианта:
1) Просто понты, когда спрашивают теорию, которую не обязательно знать глубоко, чтобы пользоваться готовыми решениями с hugging face или langchain.
2) Знать нужно реально глубоко, чтобы создавать с нуля что-то своё или проводить низкоуровневые оптимизации. Такое гораздо сложнее и встречается редко.
Дело в том, что в ML есть 3 разных вектора развития специалиста: research (придумывают на бумаге новые концепции, проводят по ним тесты и пишут статьи), ml-разработчики (пользуются готовыми решениями на основе того, что придумали исследователи) и research-инженеры (те, кто с нуля могут превратить концепции исследователей в готовый продакшен-код или полноценный продукт - именно их продуктами пользуются ml-разработчики (pytorch, hugging face и т.д.).
Последний тип самый редкий и сильно зависит от локации, компании, её возможностей и т.д. Если вам интересно посмотреть пример работы таких специалистов (я как раз этим занимаюсь), то рекомендую ознакомиться со статьёй, которую я указывал в комментарии выше.

Топ вопросов с NLP собеседований: трансформеры и внимание до малейших деталей