Коротко
Обычное масштабирование LLM одновременно делает дороже и разбор промпта, и генерацию ответа. Dual-Flow Transformer предлагает разделить эти расходы, но цена идеи проявляется в новом компромиссе между скоростью разных фаз и качеством предсказаний.
У больших языковых моделей есть неприятная особенность: обработка промпта и генерация ответа нагружают железо по-разному, но обычно получают одинаковую порцию вычислений. Поэтому добавление слоёв или ширины улучшает модель ценой сразу двух фаз — даже если пользователю важнее только качество продолжения.
Dual-Flow Transformer разводит эти задачи. Основной поток полностью обрабатывает промпт и создаёт обычный KV-кэш. Вспомогательный поток при разборе промпта не запускается, а включается только с последней позиции — дальше он добавляет вычисления именно для предсказания продолжения.
Это не две независимые модели. Потоки делят основные матрицы attention, MLP и выхода, а также используют общий кэш. У них остаются отдельные token embeddings и лёгкая связь между потоками. Теоретически это позволяет переиспользовать уже загруженные веса и ключи с значениями KV-кэша при групповой обработке.
Самое практичное следствие видно в MoE-моделях. Число экспертов основного и вспомогательного потоков можно настраивать независимо: отдельно контролировать цену обработки промпта, цену генерации и итоговое качество. Иными словами, модель можно сделать относительно лёгкой на входе, но дать ей больше вычислений на каждом следующем токене.
По заявленным экспериментам, на сопоставимых по числу токенов сравнениях Dual-Flow показывал меньшую validation loss в разных архитектурах и конфигурациях данных. Но это пока не равно ускорению реального сервиса: в доступном описании нет измерений задержки, пропускной способности или стоимости на конкретном железе. Авторы сами показывают trade-off между обработкой промпта, вычислениями при decode и качеством, а работа опубликована как arXiv v1.
Идея выглядит важной не потому, что добавляет ещё одну архитектуру, а потому что меняет вопрос масштабирования: не «как увеличить модель целиком», а «в какой фазе ей действительно нужны дополнительные вычисления». Если выбирать между более быстрым первым ответом и более сильным продолжением, что для ваших задач важнее — короткий prefill или качество каждого следующего токена?
Источник: cs.AI updates on arXiv.org