Суммирование трансформаторов с Python Pytorch - как получить более продолжительный вывод? - PullRequest
1 голос
/ 10 февраля 2020

Я использую Ai-приведенное в действие суммирование от https://github.com/huggingface/transformers/tree/master/examples/summarization - современные результаты.

Должен ли я тренироваться сам, чтобы получить итоговый вывод дольше, чем использованный в оригинальном объятии лица скрипт обучения github? :

python run_summarization.py \
    --documents_dir $DATA_PATH \
    --summaries_output_dir $SUMMARIES_PATH \ # optional
    --no_cuda false \
    --batch_size 4 \
    --min_length 50 \
    --max_length 200 \
    --beam_size 5 \
    --alpha 0.95 \
    --block_trigram true \
    --compute_rouge true

Когда я делаю вывод с помощью

--min_length 500 \
--max_length 600 \

, я получаю хороший вывод для 200 токенов, но остальная часть текста -

. . . [unused7] [unused7] [unused7] [unused8] [unused4] [unused7] [unused7]  [unused4] [unused7] [unused8]. [unused4] [unused7] . [unused4] [unused8] [unused4] [unused8].  [unused4]  [unused4] [unused8]  [unused4] . .  [unused4] [unused6] [unused4] [unused7] [unused6] [unused4] [unused8] [unused5] [unused4] [unused7] [unused4] [unused4] [unused7]. [unused4] [unused6]. [unused4] [unused4] [unused4] [unused8]  [unused4] [unused7]  [unused4] [unused8] [unused6] [unused4]   [unused4] [unused4]. [unused4].  [unused5] [unused4] [unused8] [unused7] [unused4] [unused7] [unused9] [unused4] [unused7]  [unused4] [unused7] [unused5] [unused4]  [unused5] [unused4] [unused6]  [unused4]. .  . [unused5]. [unused4]  [unused4]   [unused4] [unused6] [unused5] [unused4] [unused4]  [unused6] [unused4] [unused6]  [unused4] [unused4] [unused5] [unused4]. [unused5]  [unused4] . [unused4]  [unused4] [unused8] [unused8] [unused4]  [unused7] [unused4] [unused8]  [unused4] [unused7]  [unused4] [unused8]  [unused4]  [unused8] [unused4] [unused6] 

1 Ответ

2 голосов
/ 20 февраля 2020

Короткий ответ: Да, возможно.

Чтобы объяснить это более подробно, нам нужно взглянуть на документ , стоящий за реализацией: В Таблице 1 вы можете ясно увидеть, что большинство их сгенерированных заголовков на намного короче того, что вы пытаетесь инициализировать. Хотя это само по себе не может быть индикатором того, что вы не могли генерировать что-либо дольше, мы можем go еще глубже и посмотреть на значение [unusedX] токенов, как описано в BERT dev Jacob Devlin :

Поскольку [токены [unusedX] ] не использовались, они фактически случайным образом инициализируются.

Далее, В итоговой статье описывается

Вложения позиции в исходной модели BERT имеют максимальную длину 512; мы преодолеваем это ограничение, добавляя дополнительные позиции em-beddings, которые инициализируются случайным образом и точно настраиваются с другими параметрами в кодере.

Это сильный показатель того, что после определенной длины они, скорее всего, возвращаются к инициализации по умолчанию, которая, к сожалению, случайна. Вопрос в том, можете ли вы все еще спасти предыдущую предварительную тренировку и просто точно настроить свою цель, или лучше начинать с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...