Investigadores de la Universidad de Washington y la Universidad Duke presentan Punica un sistema de inteligencia artificial para servir múltiples modelos de LoRA en un clúster compartido de GPU.

Investigadores de las universidades de Washington y Duke presentan Punica, un sistema de inteligencia artificial para atender múltiples modelos de LoRA en un clúster compartido de GPU.

Especializarse en modelos de lenguaje pre-entrenados (LLMs) grandes para tareas específicas del dominio con un mínimo de datos de entrenamiento, adaptación de rango bajo o LoRA, está ganando popularidad. Los inquilinos pueden entrenar varios modelos de LoRA a un costo mínimo, ya que LoRA reduce en gran medida la cantidad de parámetros entrenables al mantener los pesos del modelo pre-entrenado y agregar matrices de descomposición de rango entrenables a cada capa de la arquitectura Transformer. LoRA ahora es parte de varios marcos de ajuste fino ampliamente utilizados. Para satisfacer las demandas de sus inquilinos, los proveedores de ML deben ofrecer simultáneamente muchos modelos de LoRA específicos. Los recursos de GPU se desperdician al proporcionar modelos de LoRA como si fueran entrenados individualmente.

Si se requieren k GPUs para cada modelo de LoRA, entonces se necesitarían k × n GPUs para admitir n modelos de LoRA separados. Este método simple no tiene en cuenta la posibilidad de correlaciones de pesos entre estos modelos de LoRA debido a que provienen de los mismos modelos pre-entrenados. Sostienen que un sistema efectivo que admita varios modelos de LoRA distintos debe adherirse a tres principios de diseño. Dado que (G1) las GPUs son costosas y escasas, las cargas de trabajo de servicio de LoRA multiinquilino deben concentrarse en un número pequeño de GPUs para maximizar el uso de las GPUs. (G2) El agrupamiento es una de las mejores, si no la mejor, forma de combinar cargas de trabajo de ML para aumentar el rendimiento y el uso de la GPU, como han señalado estudios anteriores. Pero solo agrupan funciones en casos en los que se solicitan modelos idénticos. Como resultado, deben permitir el agrupamiento para varios modelos de LoRA. (G3) La mayoría de los costos de servicio del modelo se atribuyen a la etapa de decodificación. Por lo tanto, todo en lo que tienen que concentrarse es en el rendimiento de la etapa asombrosa. Pueden utilizar métodos simples, como la carga bajo demanda de los pesos del modelo de LoRA, para otros componentes menos cruciales del servicio del modelo. Basado en estos tres criterios, investigadores de la Universidad de Washington y la Universidad de Duke desarrollaron y construyeron Punica, un marco de servicio multiinquilino para modelos de LoRA en un clúster de GPU compartido. La multiplicación de matriz-vector reunida segmentada (SGMV), un nuevo núcleo CUDA, es una de las principales innovaciones.

SGMV hace posible el agrupamiento de operaciones de GPU para la ejecución simultánea de varios modelos de LoRA distintos. Al reducir la cantidad de copias del modelo pre-entrenado que una GPU debe mantener en memoria, SGMV aumenta drásticamente la eficiencia de la GPU tanto en memoria como en cómputo. Combinan varios métodos de vanguardia para la optimización del sistema con este nuevo núcleo CUDA. Sorprendentemente, no encuentran muchas diferencias de rendimiento al agrupar los mismos modelos de LoRA que al agrupar diferentes modelos de LoRA. SGMV permite agrupar solicitudes de varios modelos de LoRA. Al mismo tiempo, el retraso de la carga bajo demanda del modelo de LoRA es de solo milisegundos.

Punica ahora puede condensar las solicitudes de los usuarios en un grupo más pequeño de GPUs sin limitarse a los modelos de LoRA que se ejecutan actualmente en las GPUs. Punica utiliza los siguientes dos métodos para organizar tareas para varios inquilinos. Punica dirige una nueva solicitud a un grupo selecto de GPUs que están en uso actualmente, asegurando que se utilicen al máximo su potencial. Punica solo comprometerá más recursos de GPU una vez que las GPUs actuales estén completamente utilizadas. Punica mueve regularmente las solicitudes activas para consolidación. Esto permite liberar los recursos de GPU que se le han asignado a Punica. En los clústeres de GPU NVIDIA A100, evalúan modelos de LoRA derivados de los modelos Llama2 7B, 13B y 70B.

Punica agrega un retraso de 2 ms por token y ofrece una mayor capacidad de rendimiento 12 veces mayor que las soluciones de servicio de LLM de vanguardia con los mismos recursos de GPU. Las siguientes son las contribuciones realizadas por este documento:

• Reconocen el potencial de procesamiento por lotes de solicitudes de varios modelos de LoRA.

• Crean y ponen en práctica un núcleo CUDA efectivo para ejecutar muchos modelos de LoRA a la vez. • Proporcionan técnicas innovadoras de programación para combinar tareas de muchos inquilinos en LoRA.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Ciencia de Datos

Creando Operaciones de Aprendizaje Automático para Empresas

En mi carrera, he notado que la clave para estrategias exitosas de inteligencia artificial radica en la capacidad de ...

Inteligencia Artificial

OpenAI discontinúa su detector de escritura de IA debido a una baja tasa de precisión

La investigación muestra que cualquier detector de escritura de IA puede ser derrotado y abundan los falsos positivos.

Inteligencia Artificial

La IA está haciendo que la política sea más fácil, más barata y más peligrosa

Los votantes ya están viendo materiales de campaña generados por IA, y probablemente no lo saben.

Inteligencia Artificial

Herramientas principales de detección de contenido de Inteligencia Artificial (IA)

La Inteligencia Artificial (IA) y las técnicas de Procesamiento del Lenguaje Natural (NLP) se utilizan en el proceso ...