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.
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 | Sí | Sí | No |
huggingface-llm-falcon-40 16 b-instruct-bf | Sí | Sí | No | |
huggingface-llm-falcon-180 16 b-chat-bf | No | Sí | No | |
huggingface-llm-falcon-180b-bf16 | No | Sí | No | |
huggingface-llm-amazon-falconlite | Sí | Sí | No | |
huggingface-llm-amazon-falconlite2 | Sí | Sí | No | |
huggingface-llm-tiiuae-falcon-rw-1b | Sí | Sí | No | |
huggingface-llm-falcon-7b-bf16 | Sí | Sí | No | |
huggingface-llm-falcon-7 16 b-instruct-bf | Sí | Sí | No | |
huggingface-llm-falcon2-11b | Sí | Sí | No | |
gpt-neox | huggingface-text generación 2- -20b-fp16 gpt-neoxt-chat-base | Sí | Sí | No |
huggingface-text generation2-gpt-neox-20b-fp16 | Sí | Sí | No | |
LLaMA | meta-textgeneration-llama-3-70b-instruir | Sí | Sí | Sí |
meta-textgeneration-llama-3-70b | Sí | Sí | Sí | |
meta-textgeneration-llama-3-8b | Sí | Sí | Sí | |
meta-textgeneration-llama-3-8b-instruir | Sí | Sí | Sí | |
meta-textgeneration-llama-2-7b | Sí | Sí | Sí | |
meta-textgeneration-llama-2-7b-f | Sí | Sí | Sí | |
meta-textgeneration-llama-2-13b | Sí | Sí | Sí | |
meta-textgeneration-llama-2-13b-f | Sí | Sí | Sí | |
meta-textgeneration-llama-2-70b | Sí | Sí | Sí | |
meta-textgeneration-llama-2-70b-f | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-7b | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-7b-instruir | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-7b-python | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-13b | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-13b-instruir | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-13b-python | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-34b | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-34b-instruir | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-34b-python | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-70b | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-70b-instruir | Sí | Sí | Sí | |
meta-textgeneration-llama-codellama-70b-python | Sí | Sí | Sí | |
meta-textgeneration-llama-guard-7b | Sí | Sí | Sí | |
Bloom | huggingface-textgeneration-bloom-1b7 | Sí | Sí | No |
huggingface-textgeneration-bloom-1b1 | Sí | Sí | No | |
huggingface-textgeneration-bloom-560 m | Sí | Sí | No | |
huggingface-textgeneration-bloomz-560 m | Sí | Sí | No | |
huggingface-textgeneration-bloomz-1b1 | Sí | Sí | No | |
huggingface-textgeneration-bloomz-1b7 | Sí | Sí | No | |
huggingface-text generation 1-bloomz-7b1-fp16 | Sí | Sí | No | |
huggingface-text generation1-bloom-7b1 | Sí | Sí | No | |
huggingface-text generation1-bloomz-3b-fp16 | Sí | Sí | No | |
huggingface-text generation 1-bloom-3b | Sí | Sí | No | |
huggingface-textembedding-bloom-7b1 | Sí | Sí | No | |
huggingface-textembedding-bloom-7b1-fp16 | Sí | Sí | No | |
Cohere | huggingface-llm-cohereforai-c4 ai-command-r-plus | Sí | ||
Gemma | huggingface-llm-gemma-7b | Sí | Sí | No |
huggingface-llm-gemma-7b-instruir | Sí | Sí | No | |
huggingface-llm-gemma-2b | Sí | Sí | No | |
huggingface-llm-gemma-2b-instruir | Sí | Sí | No | |
huggingface-llm-zephyr-7b-gemma | Sí | Sí | No | |
gpt2 | huggingface-textgeneration-gpt2 | Sí | No | No |
huggingface-textgeneration-distilgpt2 | Sí | No | No | |
Mistral | huggingface-llm-mistral-7b | Sí | Sí | Sí |
huggingface-llm-mistral-7b-instruir | Sí | Sí | Sí | |
huggingface-llm-mistral-7 b-openorca-gptq | Sí | Sí | Sí | |
huggingface-llm-amazon-mistrallite | Sí | Sí | Sí | |
huggingface-llm-thebloke-mistral-7 b-openorca-awq | Sí | Sí | Sí | |
huggingface-llm-huggingfaceh4-mistral-7 b-sft-beta | Sí | Sí | Sí | |
huggingface-llm-huggingfaceh4-mistral-7 b-sft-alpha | Sí | Sí | Sí | |
huggingface-llm-teknium-openhermes-2-mistral-7b | Sí | Sí | Sí | |
huggingface-llm-nousresearch-yarn-mistral-7b-128k | Sí | Sí | Sí | |
huggingface-llm-dolphin-2-2-1-mistral-7b | Sí | Sí | Sí | |
huggingface-llm-cultrix-mistraltrix-v1 | Sí | Sí | Sí | |
Mixtral | huggingface-llm-mixtral-8x7b-instrucción | Sí | Sí | Sí |
huggingface-llm-mixtral-8x7 b-instruct-gptq | Sí | Sí | Sí | |
huggingface-llm-mixtral-8x7b | Sí | Sí | Sí | |
huggingface-llm-mistralai-mixtral-8x22B-Instruct-V0-1 | Sí | Sí | Sí | |
huggingface-llm-dolphin-2-5-mixtral-8x7b | Sí | Sí | Sí | |
huggingface-llm-dolphin-2-7-mixtral-8x7b | Sí | Sí | Sí | |
Phi | huggingface-llm-phi-2 | Sí |
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