Что такое ввод данных тренировки на трансформаторы (внимание - это все, что вам нужно)? - PullRequest
0 голосов
/ 05 января 2020

Извините, я новичок в НЛП. Пожалуйста, потерпите меня. Скажем, у меня есть два предложения:

Французский: Le chat mange.

Engli sh: Кошка ест.

В следующем тексте я обозначу данные тренировки как кортеж (x, y), где x - входные данные, а y - аннотация.

Когда я обучаю трансформаторную сеть, могу ли я A. вводить эти два предложения синхронно в качестве обучающих данных, т.е. (Le chat mange, The cat eats)? Или я B. использую ((Le chat mange, ), The), ((Le chat mange, The), cat), ((Le chat mange, The cat), eats) в качестве обучающих данных?

Если это A, звучит так, будто я должен ждать, пока сеть выдаст слова одно за другим во время обучения, что было бы невозможно распараллелить. Итак, я думаю, это должен быть B?

1 Ответ

0 голосов
/ 06 января 2020

Я понял это. Это «смещение» исходного предложения осуществляется путем применения «маски», упомянутой в статье.

Маска выглядит следующим образом

M=[0, 0, ..., 0
   1, 0, ..., 0
   1, 1, ..., 0] 

С вниманием, поскольку матрица QK^T (коэффициент масштабирования игнорируется) представляет взаимную корреляцию между «запросами» и «ключами» когда применяется маска: M o (QK^T) (o обозначает поэлементное умножение), корреляции между «текущим запросом» Q[i,:] и «будущими» ключами K[i+k,:] для k=1,...,N-i игнорируются.

...