Блочный Трансформер: Глобальное-к-Локальному Языковое Моделирование для Быстрого ВыводаBlock Transformer: Global-to-Local Language Modeling for Fast Inference
В данной статье представлена архитектура Block Transformer, которая применяет иерархическое глобальное-локальное моделирование к авторегрессивным трансформерам для смягчения проблем вывода самовнимания. Для применения самовнимания необходимо извлекать ключевое-значение (KV) кэш всех предыдущих последовательностей из памяти на каждом шаге декодирования. Таким образом, этот KV кэш IO становится значительным узким местом в пакетном выводе. Мы замечаем, что эти издержки происходят от применения самовнимания к глобальному контексту, поэтому мы выделяем дорогостоящие узкие места глобального моделирования в нижние слои и применяем быстрое локальное моделирование в верхних слоях. Для смягчения оставшихся издержек в нижних слоях мы агрегируем входные токены в блоки фиксированного размера, а затем применяем самовнимание на этом грубом уровне. Информация о контексте агрегируется в одно встраивание, чтобы позволить верхним слоям декодировать следующий блок токенов без глобального внимания. Благодаря отсутствию узких мест глобального внимания верхние слои могут полностью использовать аппаратное обеспечение для максимизации производительности вывода. С помощью использования глобальных и локальных модулей архитектура Block Transformer демонстрирует увеличение производительности вывода на 10-20 раз по сравнению с обычными трансформерами с эквивалентной перплексией. Наша работа представляет новый подход к оптимизации вывода языковой модели через новаторское применение глобального-локального моделирования. Код доступен по ссылке https://github.com/itsnamgyu/block-transformer.