Исследователи из Университета Вашингтона и университета Дюк представляют систему искусственного интеллекта Punica для обслуживания нескольких моделей LoRA на одном кластере общего использования с графическими процессорами.

Интеллектуальная система Punica упрощенная обработка нескольких моделей LoRA на кластере с графическими процессорами. Исследователи из Университета Вашингтона и университета Дюк делают прорыв в обслуживании моделей с помощью искусственного интеллекта.

Специализация на предварительно обученных моделях больших языковых моделей (LLMs) для задач, специфичных для определенных областей с минимальными данными обучения, низким адаптационным рангом или LoRA, становится популярной. Арендаторы могут обучать различные модели LoRA по минимальной цене, поскольку LoRA значительно сокращает количество обучаемых параметров, сохраняя веса предварительно обученной модели и добавляя обучаемые матрицы декомпозиции ранга к каждому слою архитектуры Transformer. LoRA теперь является частью нескольких широко используемых систем настройки. Чтобы удовлетворить запросы своих арендаторов, поставщики ML должны одновременно предлагать много специфических моделей LoRA. Ресурсы GPU тратятся, если LoRA модели просто предоставляются, как будто они были обучены отдельно. 

Если для каждой модели LoRA требуется k GPU, то кажется, что требуется k × n GPU для поддержки n отдельных моделей LoRA. Этот простой метод не учитывает возможность корреляции весов между этими моделями LoRA, так как они происходят из одной и той же предварительно обученной модели. Они утверждают, что эффективная система, поддерживающая несколько различных моделей LoRA, должна соответствовать трем принципам проектирования. Поскольку (G1) GPU стоят дорого и в недостатке, рабочие нагрузки мультиаренды по обслуживанию моделей LoRA должны быть сконцентрированы на небольшом количестве GPU для максимизации использования GPU. (G2) Батчинг является одним из лучших, если не лучшим способом комбинирования рабочих нагрузок ML для повышения производительности и использования GPU, как указывали предыдущие исследования. Но они комбинируют только функции батчинга в случаях, когда делаются запросы для идентичных моделей. В результате им необходимо допускать батчинг для различных моделей LoRA. (G3) Большая часть затрат на обслуживание моделей приходится на стадию декодирования. Поэтому все, на что они должны сосредоточиться, это потрясающая производительность на этапе. Они могут использовать простые методы, такие как загрузка по требованию весов модели LoRA, для других менее важных компонентов обслуживания модели. Исходя из этих трех критериев, исследователи из Университета Вашингтона и Университета Дьюка разработали и создали Punica, мультиарендную платформу обслуживания для моделей LoRA на общем кластере GPU. Одним из основных нововведений является разделенное умножение матрицы-вектора сбора (SGMV), новое ядро CUDA. 

SGMV позволяет совместное выполнение нескольких различных моделей LoRA путем батчинга операций GPU. Уменьшая количество копий предварительно обученной модели, которые GPU должны хранить в памяти, SGMV значительно повышает эффективность GPU в памяти и вычислениях. Они комбинируют несколько передовых методов оптимизации системы с этим новым ядром CUDA. Удивительно, что при батчинге одних и тех же моделей LoRA и батчинге разных моделей LoRA практически нет разницы в производительности. SGMV позволяет батчинговые запросы от нескольких моделей LoRA. В то же время, задержка загрузки модели LoRA по требованию составляет всего несколько миллисекунд. 

Теперь Punica может сокращать запросы пользователей к меньшей группе GPU, не ограниченной текущими моделями LoRA, выполняющимися на GPU. Punica использует два следующих метода для организации задач для нескольких арендаторов. Punica направляет новый запрос в выбранную группу GPU, которые в настоящее время используются, гарантируя, что они максимально используются. Punica будет выделять дополнительные ресурсы GPU только после полного использования текущих GPU. Punica периодически перемещает активные запросы для их объединения. Это позволяет освобождать зарезервированные ресурсы GPU, которые использовала Punica. На кластерах GPU NVIDIA A100 они оценили модели LoRA, полученные из моделей Llama2 7B, 13B и 70B.

Punica добавляет задержку в 2 мс на токен и обеспечивает производительность в 12 раз выше, чем у современных решений обслуживания LLM с теми же ресурсами GPU. Представлены следующие исследовательские вклады: 

• Они признают потенциал для пакетной обработки запросов от различных моделей LoRA. 

• Они создают и внедряют эффективное ядро CUDA для одновременного выполнения нескольких моделей LoRA. • Они предлагают новые техники планирования для комбинирования задач от множества арендаторов в LoRA.