Utilice contenedores de inferencia de modelos grandes con tecnología de DJL Serving y Nvidia TensorRT
El espacio de la IA generativa continúa expandiéndose a un ritmo sin precedentes, con la introducción de más familias de modelos de lenguaje grandes (LLM) cada día. Dentro de cada familia también hay diferentes tamaños de cada modelo, por ejemplo, Llama7b, Llama13B y Llama70B. Independientemente del modelo que seleccione, surgen los mismos desafíos al alojar estos LLM para realizar inferencias.
El tamaño de estos LLM sigue siendo el desafío más apremiante, ya que es muy difícil/imposible colocar muchos de estos LLM en una sola GPU. Existen algunos enfoques diferentes para abordar este problema, como la partición de modelos. Con la partición de modelos puedes utilizar técnicas como Paralelismo de canalización o tensor esencialmente fragmentar el modelo en múltiples GPU. Fuera de la partición de modelos, otros enfoques populares incluyen Cuantización de los pesos del modelo a una precisión más baja para reducir el tamaño del modelo en sí a costa de la precisión.
Si bien el tamaño del modelo es un gran desafío en sí mismo, también existe el desafío de retener la inferencia/atención previa en la generación de texto para Modelos basados en decodificadores. La generación de texto con estos modelos no es tan simple como la inferencia del modelo ML tradicional donde solo hay una entrada y una salida. Para calcular la siguiente palabra en la generación de texto, se debe conservar el estado/atención de los tokens generados previamente para proporcionar una salida lógica. El almacenamiento de estos valores se conoce como Caché KV. KV Cache le permite almacenar en caché los tensores generados previamente en la memoria de la GPU para generar los siguientes tokens. KV Cache también ocupa una gran cantidad de memoria que debe tenerse en cuenta durante la inferencia del modelo.
Para abordar estos desafíos se han introducido muchas tecnologías de servicio de modelos diferentes, como vllm, Velocidad profunda, Transformadores más rápidos y más. En este artículo analizamos específicamente Nvidia TensorRT-LLM y cómo podemos integrar la pila de publicación con DJL Serving en Amazon SageMaker Real-Time Inference para alojar de manera eficiente el popular Modelo Mistral 7B.
NOTA: Este artículo asume una comprensión intermedia de Python, LLM e inferencia de Amazon SageMaker. Me gustaría…