Формат строки трансформатора для вывода различной длины - PullRequest
0 голосов
/ 10 марта 2020

Я работаю над применением преобразователя для выполнения каких-либо символов c перевод / краткое изложение представления на уровне символов.

Чтобы привести простой пример, я хотел бы научить модель изучать удалить повторяющиеся буквы, например, caaat -> cat.

Как таковые, входные и выходные последовательности имеют разные размеры, и это невозможно знать заранее. Мне интересно, понял ли я, как трансформатор правильно это обрабатывает.

Это формат, который я сейчас даю трансформатору для обучения

  • входной кодировщик: 'caaat'
  • входной декодер: '<null>cat<eos>'
  • ожидаемый вывод: cat<eos>

Эти входные данные даны как одно горячее вложение каждого символа, поэтому число функций равно размер алфавита + теги, а длина последовательности - это количество символов.

Маска по умолчанию (square_subfter_mask) используется для ввода кодера и декодера, чтобы скрыть все будущие символы.

Исходное значение <null> - это смещение цели (в противном случае я бы дал ответ в качестве ввода). Мне интересно, если это правильный путь, или я делаю что-то не так, поскольку он застревает и выводит оптимальную базовую ставку, если ничего не было извлечено.

...