Познакомьтесь с vLLM открытой библиотекой машинного обучения для быстрой инференции и обслуживания LLM

Встречайте vLLM - библиотеку машинного обучения для LLM с быстрой инференцией и обслуживанием

Большие языковые модели (LLM) все больше влияют на то, как меняются наша повседневная жизнь и карьера, так как они делают возможными новые приложения, такие как помощники по программированию и универсальные чат-боты. Однако работа этих приложений требует значительных затрат на оборудование, такие как графические процессоры (GPU). Недавние исследования показывают, что обработка запроса LLM может быть дорогостоящей, до десяти раз выше, чем при традиционном поиске по ключевому слову. Поэтому существует необходимость в увеличении пропускной способности систем обслуживания LLM для минимизации расходов на каждый запрос.

Выполнение высокопропускной обработки больших языковых моделей (LLM) требует пакетной обработки достаточного количества запросов за раз и существующие системы. Однако существующим системам требуется помощь, поскольку память кэша ключ-значение (KV кэш) для каждого запроса является огромной и может динамически увеличиваться и уменьшаться. Ее необходимо внимательно управлять, и при неэффективном управлении может происходить фрагментация и избыточное дублирование, что значительно экономит эту оперативную память, уменьшая размер пакета.

Исследователи предложили PagedAttention, алгоритм внимания, вдохновленный традиционной виртуальной памятью и методиками разбиения страниц в операционных системах, как решение этой проблемы. Чтобы дальше уменьшить использование памяти, исследователи также развернули vLLM. Эта система обслуживания LLM практически не имеет потерь в памяти KV кэша и обеспечивает гибкое совместное использование KV кэша внутри и между запросами.

vLLM использует PagedAttention для управления ключами и значениями внимания. Обеспечивая до 24-кратного увеличения пропускной способности по сравнению с HuggingFace Transformers, без необходимости внесения изменений в архитектуру модели, vLLM, оснащенный PagedAttention, переопределяет текущее состояние искусства в области обслуживания LLM.

В отличие от обычных алгоритмов внимания, они позволяют непрерывное сохранение ключей и значений в непоследовательном пространстве памяти. PagedAttention делит каждый кэш KV последовательности на блоки, каждый из которых содержит ключи и значения для определенного количества токенов. Эти блоки эффективно идентифицируются ядром PagedAttention во время вычисления внимания. Поскольку блоки не обязательно должны быть последовательными, ключи и значения могут гибко управляться.

Утечка памяти происходит только в конечном блоке последовательности в PagedAttention. В практическом использовании это приводит к эффективному использованию памяти, с ​​минимальными 4% неэффективности. Это улучшение эффективности использования памяти позволяет более эффективно использовать графические процессоры (GPU).

Кроме того, PagedAttention имеет еще одно ключевое преимущество – эффективное совместное использование памяти. Функция совместного использования памяти PageAttention значительно уменьшает дополнительную память, необходимую для техник выборки, таких как параллельная выборка и поиск по лучу. Это может привести к увеличению скорости до 2,2 раза и уменьшению использования памяти до 55%. Это улучшение делает эти техники выборки полезными и эффективными для обслуживания больших языковых моделей (LLM).

Исследователи изучили точность этой системы. Они обнаружили, что с той же задержкой, что и передовые системы, такие как FasterTransformer и Orca, vLLM увеличивает пропускную способность известных LLM-моделей на 2-4. Более крупные модели, более сложные алгоритмы декодирования и более длинные последовательности приводят к более заметному улучшению.