PyramidInfer: эффективное сжатие кэша KV для масштабируемого вывода LLM
LLM, такие как GPT-4, отлично справляются с пониманием языка, но сталкиваются с высоким использованием памяти GPU во время вывода, что ограничивает их масштабируемость для приложений реального времени, таких как чат-боты. Существующие методы снижают использование памяти путем сжатия кэша KV, но не учитывают межслойные зависимости и требования к памяти предварительных вычислений.
Исследователи из Университета Шанхайского Цзяотун, компании Xiaohongshu Inc. и Южно-Китайского университета технологий разработали PyramidInfer, который улучшает вывод LLM путем сжатия кэша KV. В отличие от существующих методов, PyramidInfer сохраняет только важные ключи контекста и значения по слоям, что значительно уменьшает использование памяти GPU. Эксперименты показывают, что PyramidInfer увеличивает пропускную способность в 2,2 раза и снижает память кэша KV более чем на 54% по сравнению с существующими методами, демонстрируя его эффективность в различных задачах и моделях.
Практические решения
Эффективные стратегии необходимы для обработки растущего спроса на запросы чат-ботов с целью максимизации пропускной способности путем использования параллелизма GPU. Один из подходов – увеличение памяти GPU с помощью параллелизма конвейера и выгрузки кэша KV, используя несколько GPU или оперативную память. Для ограниченной памяти GPU другой вариант – снижение кэша KV. Техники, такие как FlashAttention 2 и PagedAttention, минимизируют потери памяти путем оптимизации операций CUDA. Методы, такие как StreamingLLM, H2O и Scissorhands, сжимают кэш KV, фокусируясь на недавнем контексте или механизмах внимания, но не учитывают различия между слоями и сжатие в фазе предварительной загрузки. PyramidInfer устраняет эти недостатки, учитывая сжатие, специфичное для слоя, в обе фазы.
Проверка гипотезы об избыточности контекста вывода (ICR) и гипотезы о последовательности внимания (RAC) вдохновила создание PyramidInfer. ICR предполагает, что многие ключи контекста и значения избыточны во время вывода и необходимы только при обучении для предсказания следующего токена. Эксперименты с моделью LLaMA 2-13B показали, что более глубокие слои имеют большую избыточность, что позволяет значительно сократить кэш KV без ущерба качеству вывода. RAC подтверждает, что некоторые ключи и значения последовательно использовались недавними токенами, что позволяет выбрать ключевые контексты (PVC) для эффективного вывода. PyramidInfer использует эти идеи для эффективного сжатия кэша KV в обеих фазах.
В заключение, PyramidInfer представляет эффективный метод сжатия кэша KV во время предварительной загрузки и генерации, вдохновленный ICR и RAC. Этот подход значительно снижает использование памяти GPU без ущерба для производительности модели, что делает его идеальным для развертывания больших языковых моделей в ограниченных ресурсах. Несмотря на его эффективность, PyramidInfer требует дополнительных вычислений, что ограничивает ускорение при небольших размерах пакета. Как первый метод сжатия кэша KV в фазе предварительной загрузки, PyramidInfer еще не является безотказным методом, что указывает на потенциал для будущих улучшений в этой области.
Проверьте статью здесь
Все права на это исследование принадлежат его авторам.
Также не забудьте подписаться на нас в Twitter.
Присоединяйтесь к нашему Telegram-каналу, Discord-каналу и группе LinkedIn.
Если вам понравилась наша работа, вам понравится и наша рассылка.
Не забудьте присоединиться к нашему 42k+ ML SubReddit.
Попробуйте ИИ ассистент в продажах на сайте Flycode.ru.
Узнайте, как ИИ может изменить ваши процессы с решениями от Flycode.ru.