Optimización de inferencias para modelos con Amazon SageMaker AI - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Optimización de inferencias para modelos con Amazon SageMaker AI

Con Amazon SageMaker AI, puede mejorar el rendimiento de los modelos de IA generativa mediante la aplicación de técnicas de optimización de inferencias. Al optimizar los modelos, puede lograr una mejor relación costo-rendimiento para el caso de uso. Al optimizar un modelo, puede elegir las técnicas de optimización compatibles se van a aplicar, incluidas la cuantización, la decodificación especulativa y la compilación. Una vez optimizado el modelo, puede realizar una evaluación para ver las métricas de rendimiento en cuanto a latencia, rendimiento y precio.

Para muchos modelos, SageMaker AI también ofrece varias versiones preoptimizadas, cada una de las cuales se adapta a las diferentes necesidades de las aplicaciones en cuanto a latencia y rendimiento. Para estos modelos, puede implementar una de las versiones optimizadas sin tener que primero optimizar el modelo.

Técnicas de optimización

Amazon SageMaker AI admite las siguientes técnicas de optimización.

Compilación

La compilación optimiza el modelo para obtener el mejor rendimiento disponible en el tipo de hardware elegido sin que se pierda la exactitud. Puede aplicar la compilación de modelos para optimizar los LLM para hardware acelerado, como instancias de GPU, instancias de AWS Trainium o instancias de AWS Inferentia.

Al optimizar un modelo mediante la compilación, sacará partido de la compilación anticipada. Podrá reducir el tiempo de implementación del modelo y la latencia del escalado automático, ya que las ponderaciones del modelo no requieren una compilación justo a tiempo cuando el modelo se implementa en una nueva instancia.

Si decide compilar el modelo para una instancia de GPU, SageMaker AI utiliza la biblioteca TensorRT-LLM para ejecutar la compilación. Si decide compilar el modelo para una instancia de AWS Trainium o de AWS Inferentia, SageMaker AI utiliza el AWS Neuron SDK para ejecutar la compilación.

Cuantización

La cuantización es una técnica para reducir los requisitos de hardware de un modelo mediante el uso de un tipo de datos menos preciso para los ponderaciones y las activaciones. Después de optimizar un modelo con la cuantización, puede alojarlo en GPU menos costosas y con mayor disponibilidad. Sin embargo, es posible que el modelo cuantizado sea menos preciso que el modelo de origen que ha optimizado.

Los formatos de datos que SageMaker AI admite para la cuantificación varían de un modelo a otro. Se admiten siguientes formatos:

  • INT4-AWQ: formato de datos de 4 bits. La cuantización de ponderaciones con reconocimiento de activaciones (AWQ) es una técnica de cuantización para LLM que es eficaz, precisa, con pocos bits y solo para ponderaciones.

  • FP8: la coma flotante de 8 bits (FP8) es un formato de baja precisión para números de coma flotante. Equilibra la eficiencia de la memoria y la precisión del modelo al representar valores con menos bits que el formato de coma flotante estándar FP16.

  • INT8-SmoothQuant: un formato de datos de 8 bits. SmoothQuant es un método de cuantificación de precisión mixta que escala las activaciones y las ponderaciones de forma conjunta al equilibrar sus rangos dinámicos.

Decodificación especulativa

La decodificación especulativa es una técnica que se utiliza para acelerar el proceso de decodificación de grandes LLM. Optimiza la latencia de los modelos sin que se vea afectada la calidad del texto generado.

Esta técnica utiliza un modelo menor pero más rápido denominado modelo de borrador. El modelo de borrador genera tokens candidatos, que valida el modelo de destino, que es mayor pero más lento. En cada iteración, el modelo de borrador genera varios tokens candidatos. El modelo de destino verifica los tokens y, si detecta que un token en concreto no es aceptable, lo rechaza y lo vuelve a genera. Por lo tanto, el modelo de destino verifica los tokens y genera una pequeño número de ellos.

El modelo de borrador es bastante más rápido que el modelo de destino. Genera todos los tokens rápidamente y, a continuación, envía lotes de ellos al modelo de destino para su verificación. El modelo de destino los evalúa en paralelo, lo que acelera la respuesta final.

SageMaker AI ofrece un modelo de borrador prediseñado que puede utilizar, por lo que no tiene que crear el suyo propio. Si prefiere usar su propio modelo de borrador personalizado, SageMaker AI también admite esta opción.

Carga rápida de modelos

La técnica de carga rápida de modelos prepara un LLM para que SageMaker AI pueda cargarlo en una instancia de ML con mayor rapidez.

Para preparar el modelo, SageMaker AI lo particiona por adelantado dividiéndolo en partes, cada una de las cuales puede residir en una GPU independiente para una inferencia distribuida. Además, SageMaker AI almacena los pesos del modelo en fragmentos del mismo tamaño que SageMaker AI puede cargar en la instancia de forma simultánea.

Cuando SageMaker AI carga el modelo optimizado en la instancia, transmite los pesos del modelo directamente desde Amazon S3 a las GPU de la instancia. Al transmitir los pesos, SageMaker AI omite varios pasos que normalmente son necesarios y que consumen mucho tiempo. Estos pasos incluyen descargar los artefactos del modelo de Amazon S3 al disco, cargar los artefactos del modelo en la memoria del host y particionar el modelo en el host antes de cargar finalmente las particiones en las GPU.

Tras optimizar el modelo para una carga más rápida, puede implementarlo más rápidamente en un punto de conexión de SageMaker AI. Además, si configura el punto de conexión para que utilice el escalado automático, se escala horizontalmente para adaptarse a los aumentos de tráfico.