ShadowKV: как ускорить инференс больших языковых моделей
ShadowKV: как ускорить инференс больших языковых моделей ShadowKV — это подход к оптимизации KV-кэша, который позволяет ускорить инференс больших языковых моделей с длинным контекстом. Он основан на наблюдении, что соседние токены часто имеют высокую схожесть, поэтому их можно разбить на чанки и построить для каждого чанка репрезентативные средние ключи (landmarks). Pre-RoPE K сжимается через SVD, а V выгружается в CPU, что позволяет экономить память и пропускную способность GPU. Токены, которые плохо объясняются landmark’ами, выделяются как выбросы (outliers) и сохраняются полнорангово. Достаточно небольшого процента бюджета на выбросы, чтобы минимизировать деградацию качества. На этапе prefill параллельно с основным префиллом вычисляются landmarks и outliers, и это вычисление перекрывается с отгрузкой V на CPU. В результате дополнительные шаги минимально увеличивают critical path. ShadowKV позволяет поддерживать больший размер батча и существенно ускоряет инференс на длинных контекстах, минимизируя при этом деградацию качества. Ссылки из исходного поста: первой части | sink tokens | Амдала | Душный NLP Материалы по ссылкам: 1. Ускорение E2E-инференса через оптимизацию KV-кэша. Часть I Что в статье: Ускорение E2E-инференса возможно через оптимизацию KV-кэша. Методы оптимизации KV-кэша делятся на pre-train и post-train. Pre-train-методы требуют изменений до обучения модели, например, архитектурные решения вроде GQA/MQA/MLA. Post-train-методы применяются к уже готовой модели, например, sparse-стратегии, pruning, удаление повторов токенов. Один из сильных post-train-методов оптимизации KV-кэша — ShadowKV, который позволяет получать минимальные просадки на бенчмарках без дообучения и увеличивает throughput до трёх раз. Источник материала: ссылка 2. ShadowKV: KV Cache in Shadows for High-Throughput Long-Context LLM Inference Что в статье: ShadowKV — система для высокопроизводительного вывода больших языковых моделей с длинным контекстом. Она позволяет сократить объём используемой памяти за счёт хранения низкорангового кэша ключей и выгрузки кэша значений. Для минимизации задержки при декодировании ShadowKV использует точную стратегию выбора KV, которая на лету реконструирует минимально необходимые разреженные пары KV. Система продемонстрировала возможность поддержки увеличения размера батчей до 6 раз и повышение пропускной способности до 3,04 раз на GPU A100 без потери точности. Источник материала: ссылка 3. Efficient Streaming Language Models with Attention Sinks Что в статье: В статье предлагается эффективная система StreamingLLM для работы с большими языковыми моделями (LLM) в потоковых приложениях. Система позволяет моделям, обученным с ограниченным окном внимания, работать с последовательностями неограниченной длины без дополнительной настройки. Описанное решение позволяет ускорить потоковое развёртывание LLM до 22,2 раз по сравнению с базовым методом скользящего окна. В статье также отмечается, что добавление токена-заполнителя в качестве выделенного «приёмника» внимания во время предварительного обучения может дополнительно улучшить потоковую работу. Система продемонстрирована на моделях Llama-2, MPT, Источник материала: ссылка 4. Amdahl's law - Wikipedia Что в статье: Закон Амдала в компьютерной архитектуре ограничивает ускорение выполнения задачи при добавлении ресурсов в систему. Формула закона Амдала учитывает долю времени, в течение которого используется оптимизированная часть системы, и степень улучшения этой части. Закон Амдала часто используется в параллельных вычислениях для прогнозирования теоретического Источник: оригинальный пост