Разбивка шагов кодера-декодера в модели трансформатора
Я экспериментировал с моделью DONUT DocVQA, предоставленной Hugging Face, для извлечения точек данных из документов. Он использует визуальный преобразователь для кодирования изображения и декодер языковой модели, который принимает закодированное изображение и токенизированные подсказки при формулировании ответов. На машине только с ЦП вывод выполняется очень медленно. Обычно нам нужно много точек данных со страницы, и запуск сквозной модели для каждого запроса занимает много времени. Интересно, имеет ли смысл разложить вещи по полочкам:
- один раз пропустите изображение документа через компонент ViT , извлекая его встраивания
- перебирать несколько токенизированных запросов, передавая их на этап декодера вместе с встраиваниями изображений декодера.
Цель, конечно же, состоит в том, чтобы избежать каждый раз повторного расчета этапа визуального кодирования.
Если бы не было практических ограничений, как новичок в этом деле, я был бы благодарен за подсказки о том, как этого добиться, или подсказки о (минимальном) обучении, которое позволило бы мне увидеть, что делать. (У меня есть некоторый опыт работы с TensorFlow, но не с факелом.)