Встречается на 5% собеседований по AI Engineer
Как в трансформерах учитывается позиция слов
В трансформерах позиция слов учитывается с помощью позиционных энкодингов (positional encodings). Это векторы фиксированной размерности, которые добавляются к эмбеддингам слов перед подачей в модель. Они используют синусоидальные функции разной частоты, чтобы кодировать позицию токена в последовательности.
Пример кода для генерации позиционных энкодингов в PyTorch:
python
import torch
import math
def positional_encoding(max_len, d_model):
pe = torch.zeros(max_len, d_model)
position = torch.arange(0, max_len).unsqueeze(1)
div_term = torch.exp(torch.arange(0, d_model, 2) * -(math.log(10000.0) / d_model))
pe[:, 0::2] = torch.sin(position * div_term)
pe[:, 1::2] = torch.cos(position * div_term)
return peКлючевые особенности:
- Синусоидальные функции позволяют модели обобщать на последовательности длиннее, чем в обучающих данных
- Каждая позиция получает уникальное кодирование
- Относительные позиции также могут быть выведены через линейные преобразования
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы