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

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 de modelos con Amazon SageMaker

Con Amazon SageMaker, puede mejorar el rendimiento de sus modelos de IA generativa mediante la aplicación de técnicas de optimización de inferencias. Al optimizar sus modelos, puede lograr una mejor relación costo-rendimiento para su caso de uso. Al optimizar un modelo, se elige qué técnicas de optimización compatibles se van a aplicar, incluidas la cuantificació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 también ofrece varias versiones preoptimizadas, cada una de las cuales se adapta a las diferentes necesidades de latencia y rendimiento de las aplicaciones. Para estos modelos, puede implementar una de las versiones optimizadas sin tener que optimizar primero el modelo usted mismo.

Técnicas de optimización

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

Decodificación especulativa

La decodificación especulativa es una técnica para acelerar el proceso de decodificación de grandes dimensiones. LLMs Optimiza la latencia de los modelos sin comprometer la calidad del texto generado.

Esta técnica utiliza un modelo más pequeño pero más rápido denominado modelo borrador. El borrador del modelo genera fichas candidatas, que luego son validadas por el modelo objetivo, más grande pero más lento. En cada iteración, el borrador del modelo genera varios tokens candidatos. El modelo objetivo verifica los tokens y, si descubre que un token en particular no es aceptable, lo rechaza y lo regenera. Por lo tanto, el modelo objetivo verifica los tokens y genera una pequeña cantidad de ellos.

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

SageMaker ofrece un borrador de modelo prediseñado que puede utilizar, de modo que no tendrá que crear el suyo propio. Si prefiere utilizar su propio modelo de borrador personalizado, SageMaker también admite esta opción.

Cuantificación

La cuantificació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 pesos y las activaciones. Después de optimizar un modelo con la cuantificación, puede alojarlo en un modelo más económico y con mayor disponibilidad. GPUs Sin embargo, es posible que el modelo cuantificado sea menos preciso que el modelo de origen que optimizó.

SageMaker admite la cuantificación de peso basada en la activación () para. AWQ GPUs AWQes una técnica de cuantificación LLMs que es eficiente, precisa, con pocos bits y solo pesa.

Compilación

La compilación optimiza el modelo para obtener el mejor rendimiento disponible en el tipo de hardware elegido sin pérdida de precisión. Puede aplicar la compilación de modelos LLMs para optimizar el hardware acelerado, como AWS Trainium o Inferentia. AWS

Cuando optimiza un modelo mediante la compilación, se beneficia de la compilación. ahead-of-time Reduces el tiempo de implementación del modelo y la latencia de autoescalado porque los pesos del modelo no requieren just-in-time compilación cuando el modelo se implementa en una nueva instancia.

Referencia de métricas para las evaluaciones del rendimiento por inferencia

Tras evaluar correctamente el rendimiento de un modelo optimizado, la página de detalles de la evaluación de Studio muestra las siguientes métricas.

Métricas de latencia

La sección de latencia muestra las siguientes métricas

Simultaneidad

El número de usuarios simultáneos que la evaluación simuló para invocar el punto final simultáneamente.

Tiempo transcurrido hasta el primer token (ms)

El tiempo transcurrido entre el envío de la solicitud y el momento en que se recibe el primer token de una respuesta de streaming.

Latencia entre tokens (ms)

El tiempo necesario para generar un token de salida para cada solicitud.

Latencia del cliente (ms)

La latencia de la solicitud desde el momento en que se envía la solicitud hasta el momento en que se recibe la respuesta completa.

Tokens de entrada por segundo (recuento)

El número total de tokens de entrada generados, en todas las solicitudes, dividido por la duración total en segundos de la simultaneidad.

Tokens de salida por segundo (recuento)

El número total de tokens de salida generados, en todas las solicitudes, dividido por la duración total en segundos de la simultaneidad.

Invocaciones de clientes (recuento)

El número total de solicitudes de inferencia enviadas al punto final entre todos los usuarios de forma simultánea.

Errores de invocación por parte del cliente (recuento)

El número total de solicitudes de inferencia enviadas al punto final a todos los usuarios de forma simultánea y que provocaron un error de invocación.

Falló el tokenizador (recuento)

El número total de solicitudes de inferencia en las que el tokenizador no pudo analizar la solicitud o la respuesta.

Respuesta de inferencia vacía (recuento)

El número total de solicitudes de inferencia que no generaron ningún token de salida o que el tokenizador no pudo analizar la respuesta.

Métricas de rendimiento

La sección Rendimiento muestra las siguientes métricas.

Simultaneidad

El número de usuarios simultáneos que la evaluación simuló para invocar el punto final simultáneamente.

Introduzca los tokens/seg/req (recuento)

El número total de fichas de entrada generadas por segundo y por solicitud.

Tokens de salida por sec/requerimiento (recuento)

El número total de fichas de salida generadas por segundo y por solicitud.

Tokens de entrada (recuento)

El número total de tokens de entrada generados por solicitud.

Tokens de salida (recuento)

El número total de tokens de salida generados por solicitud.

Métricas de precios

La sección de precios muestra las siguientes métricas.

Simultaneidad

El número de usuarios simultáneos que la evaluación simuló para invocar el punto final simultáneamente.

Precio por millón de fichas de entrada

Coste de procesar 1 millón de fichas de entrada.

Precio por millón de fichas de salida

Coste de generar 1 millón de fichas de salida.

Referencia de modelos compatibles

En la siguiente tabla se muestran los modelos que SageMaker admiten la optimización de inferencias y las técnicas de optimización compatibles.

Modelos que admiten la optimización de inferencias
Nombre de modelo JumpStart ID del modelo Soporta la cuantificación Soporta la decodificación especulativa Decodificación especulativa con SageMaker borrador de modelo
Halcón huggingface-llm-falcon-40b-bf16 No
huggingface-llm-falcon-40 16 b-instruct-bf No
huggingface-llm-falcon-180 16 b-chat-bf No No
huggingface-llm-falcon-180b-bf16 No No
huggingface-llm-amazon-falconlite No
huggingface-llm-amazon-falconlite2 No
huggingface-llm-tiiuae-falcon-rw-1b No
huggingface-llm-falcon-7b-bf16 No
huggingface-llm-falcon-7 16 b-instruct-bf No
huggingface-llm-falcon2-11b No
gpt-neox huggingface-text generación 2- -20b-fp16 gpt-neoxt-chat-base No
huggingface-text generation2-gpt-neox-20b-fp16 No
LLaMA meta-textgeneration-llama-3-70b-instruir
meta-textgeneration-llama-3-70b
meta-textgeneration-llama-3-8b
meta-textgeneration-llama-3-8b-instruir
meta-textgeneration-llama-2-7b
meta-textgeneration-llama-2-7b-f
meta-textgeneration-llama-2-13b
meta-textgeneration-llama-2-13b-f
meta-textgeneration-llama-2-70b
meta-textgeneration-llama-2-70b-f
meta-textgeneration-llama-codellama-7b
meta-textgeneration-llama-codellama-7b-instruir
meta-textgeneration-llama-codellama-7b-python
meta-textgeneration-llama-codellama-13b
meta-textgeneration-llama-codellama-13b-instruir
meta-textgeneration-llama-codellama-13b-python
meta-textgeneration-llama-codellama-34b
meta-textgeneration-llama-codellama-34b-instruir
meta-textgeneration-llama-codellama-34b-python
meta-textgeneration-llama-codellama-70b
meta-textgeneration-llama-codellama-70b-instruir
meta-textgeneration-llama-codellama-70b-python
meta-textgeneration-llama-guard-7b
Bloom huggingface-textgeneration-bloom-1b7 No
huggingface-textgeneration-bloom-1b1 No
huggingface-textgeneration-bloom-560 m No
huggingface-textgeneration-bloomz-560 m No
huggingface-textgeneration-bloomz-1b1 No
huggingface-textgeneration-bloomz-1b7 No
huggingface-text generation 1-bloomz-7b1-fp16 No
huggingface-text generation1-bloom-7b1 No
huggingface-text generation1-bloomz-3b-fp16 No
huggingface-text generation 1-bloom-3b No
huggingface-textembedding-bloom-7b1 No
huggingface-textembedding-bloom-7b1-fp16 No
Cohere huggingface-llm-cohereforai-c4 ai-command-r-plus
Gemma huggingface-llm-gemma-7b No
huggingface-llm-gemma-7b-instruir No
huggingface-llm-gemma-2b No
huggingface-llm-gemma-2b-instruir No
huggingface-llm-zephyr-7b-gemma No
gpt2 huggingface-textgeneration-gpt2 No No
huggingface-textgeneration-distilgpt2 No No
Mistral huggingface-llm-mistral-7b
huggingface-llm-mistral-7b-instruir
huggingface-llm-mistral-7 b-openorca-gptq
huggingface-llm-amazon-mistrallite
huggingface-llm-thebloke-mistral-7 b-openorca-awq
huggingface-llm-huggingfaceh4-mistral-7 b-sft-beta
huggingface-llm-huggingfaceh4-mistral-7 b-sft-alpha
huggingface-llm-teknium-openhermes-2-mistral-7b
huggingface-llm-nousresearch-yarn-mistral-7b-128k
huggingface-llm-dolphin-2-2-1-mistral-7b
huggingface-llm-cultrix-mistraltrix-v1
Mixtral huggingface-llm-mixtral-8x7b-instrucción
huggingface-llm-mixtral-8x7 b-instruct-gptq
huggingface-llm-mixtral-8x7b
huggingface-llm-mistralai-mixtral-8x22B-Instruct-V0-1
huggingface-llm-dolphin-2-5-mixtral-8x7b
huggingface-llm-dolphin-2-7-mixtral-8x7b
Phi huggingface-llm-phi-2

Modelos preoptimizados JumpStart

Los siguientes son los JumpStart modelos que tienen configuraciones preoptimizadas.

Meta
  • Llama 3 8B Instruct

  • Llama 3 8B

  • Llama 3 70B Instruct

  • Llama 3 70B

  • Llama 2 70B Chat

  • Llama 2 7B Chat

  • Llama 2 13B Chat

HuggingFace
  • Instrucción Mixtral 8x7B

  • Mixtral 8x7B

  • Instructo Mistral 7B

  • Mistral 7B

Modelos JumpStart precompilados

Para algunos modelos y configuraciones, SageMaker proporciona modelos precompilados para instancias específicas de AWS Inferentia y Trainium. AWS En este caso, si crea un trabajo de compilación u optimización y elige ml.inf2.48xlarge o ml.trn1.32xlarge como tipo de instancia de despliegue, obtiene los artefactos compilados. SageMaker Como el trabajo usa un modelo que ya está compilado, se completa rápidamente sin ejecutar la compilación desde cero.

Los JumpStart modelos para los que SageMaker tiene modelos precompilados son los siguientes:

Meta
  • Llama3 8B

  • Llama3 70B

  • Llama2 7B

  • Llama2 70B

  • Llama2 13B

  • Código Llama 7B

  • Código Llama 70B

HuggingFace
  • Mistral 7B