Следуя замечательному блогу , я реализовал свой собственный модуль самовнимания. Однако я обнаружил, что PyTorch уже реализовал модуль внимания с несколькими головами . Входные данные для прямого прохода модуля MultiheadAttention
включают Q
(вектор запроса), K
(вектор ключа) и V
(вектор значений). Странно, что PyTorch не просто берет входное вложение и вычисляет векторы Q
, K
, V
внутри. В реализованном мною модуле самовнимания я вычисляю эти Q
, K
, V
векторы из входных вложений, умноженных на веса Q
, K
, V
. На данный момент я не уверен, какие векторные входные данные Q
, K
и V
требуются модулю MultiheadAttention
. Должны ли они быть Q
, K
и V
весами или векторами, и должны ли они быть нормальными векторами, или это должны быть параметры?