Где линейная алгебра в нейросети
Вопрос
Расскажите, где в обычной нейросети и в ML вообще встречаются векторы и матрицы. Почему эти операции так хорошо ускоряются на GPU?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Объект или эмбеддинг это вектор, батч это матрица
Полносвязный слой это умножение на матрицу весов плюс сдвиг: y = Wx + b
Близость векторов через скалярное произведение и косинус (поиск, attention)
Умножение матриц это много независимых скалярных произведений, отсюда параллелизм
Знает про размеры: батч × признаки на признаки × выходы
Что могут спросить следом
- Какой размер у матрицы весов слоя со 128 входами и 64 выходами?
- Почему батч обрабатывают одной матрицей, а не по объекту в цикле?
Разбор
Объект с признаками в ML это вектор, батч из B объектов это матрица B×d. Полносвязный слой делает y = xW + b: если на входе 128 признаков, а на выходе 64, то W имеет размер 128×64, и весь батч проходит через слой одним умножением матриц. Эмбеддинги слов и картинок тоже векторы, их близость меряют скалярным произведением или косинусом: так работают поиск похожих и attention, где Q·Kᵀ даёт матрицу попарных скалярных произведений. Умножение матриц раскладывается на тысячи независимых скалярных произведений, их удобно считать параллельно, а GPU и тензорные ядра сделаны ровно для этого. Поэтому батч обрабатывают целиком: одно большое умножение быстрее тысячи маленьких.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.