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.
La SageMaker IA optimiza previamente JumpStart algunos modelos, lo que significa que puede implementar versiones optimizadas de estos modelos sin necesidad de crear primero un trabajo de optimización de inferencias.
Para ver la lista de modelos con opciones preoptimizadas, consulte Modelos preoptimizados JumpStart .
Utilice el siguiente procedimiento para implementar un JumpStart modelo preoptimizado con Amazon SageMaker Studio.
Implementación de un modelo preoptimizado
-
En Studio, en el menú de navegación de la izquierda, selecciona JumpStart.
-
En la página Todos los modelos públicos, elija uno de los modelos que se han optimizado previamente.
-
En la página de detalles del modelo, elija Implementar.
-
En la página de implementación, algunos JumpStart modelos requieren que firme un acuerdo de licencia de usuario final (EULA) para poder continuar. Si se solicita, revise los términos de la licencia en la sección Acuerdo de licencia. Si los términos son aceptables para el caso de uso, seleccione la casilla de verificación Acepto el EULA, y he leído los términos y las condiciones.
Para obtener más información, consulte Contratos de licencia para usuarios finales.
-
En Nombre del punto de conexión y Recuento inicial de instancias, acepte los valores predeterminados o establezca valores personalizados.
-
En Tipo de instancia, mantenga el valor predeterminado. De lo contrario, no podrá implementar una configuración preoptimizada.
-
En Modelos, amplíe la configuración del modelo. Studio muestra una tabla con las configuraciones preoptimizadas entre las que puede elegir. Cada opción tiene métricas de latencia y rendimiento. Elija la opción que mejor se adapte a las necesidades de la aplicación.
-
Elija Implementar.
Puedes implementar un modelo preoptimizado mediante el SDK de Python para SageMaker IA en tu proyecto. En primer lugar, defina una Model
instancia mediante la ModelBuilder
clase. A continuación, utiliza el set_deployment_config()
método para establecer la configuración preoptimizada que desea implementar. A continuación, utilice el build()
método para crear el modelo. Por último, se utiliza el deploy()
método para implementarlo en un punto final de inferencia.
Para obtener más información sobre las clases y los métodos utilizados en los siguientes ejemplos, consulta APIs
Configuración de un proyecto
-
En el código de la aplicación, importe las bibliotecas necesarias. En el ejemplo siguiente se importa el SDK para Python (Boto3). También importa los módulos del SDK de Python para SageMaker IA que se utilizan para definir los modelos y trabajar con ellos:
import boto3 from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.session import Session
-
Inicializa una sesión de SageMaker IA. En el siguiente ejemplo se utiliza la
Session()
clase:sagemaker_session = Session()
Definición de un modelo
-
Cree una instancia de
SchemaBuilder
y proporcione ejemplos de entrada y salida. Al definir un modelo, debe proporcionar esta instancia a la claseModelBuilder
. Con ella, la SageMaker IA genera automáticamente las funciones de clasificación para serializar y deserializar la entrada y la salida.Para obtener más información sobre el uso de las clases
SchemaBuilder
yModelBuilder
, consulte Cree un modelo en Amazon SageMaker AI con ModelBuilder.En el ejemplo siguiente se proporcionan ejemplos de cadenas de entrada y salida para la clase
SchemaBuilder
:response = "Jupiter is the largest planet in the solar system. It is the fifth planet from the sun." sample_input = { "inputs": "What is the largest planet in the solar system?", "parameters": {"max_new_tokens": 128, "top_p": 0.9, "temperature": 0.6}, } sample_output = [{"generated_text": response}] schema_builder = SchemaBuilder(sample_input, sample_output)
-
Defina su modelo según la IA. SageMaker En el ejemplo siguiente se definen los parámetros para inicializar una instancia de
ModelBuilder
:model_builder = ModelBuilder( model="
jumpstart-model-id
", schema_builder=schema_builder, sagemaker_session=sagemaker_session, role_arn=sagemaker_session.get_caller_identity_arn(), )En este ejemplo se utiliza un JumpStart modelo.
Sustitúyalo por el identificador de un JumpStart modelo, por ejemplojumpstart-model-id
meta-textgeneration-llama-3-70b
.
Recuperación de métricas de referencia
-
Para determinar qué configuración preoptimizada desea implementar, consulte las opciones que ofrece la SageMaker IA. En el ejemplo siguiente se muestran:
model_builder.display_benchmark_metrics()
Este método de
display_benchmark_metrics()
imprime una tabla como la siguiente:| Instance Type | Config Name | Concurrent Users | Latency, TTFT (P50 in sec) | Throughput (P50 in tokens/sec/user) | |:----------------|:--------------|-------------------:|-----------------------------:|--------------------------------------:| | ml.g5.48xlarge | lmi-optimized | 1 | 2.25 | 49.70 | | ml.g5.48xlarge | lmi-optimized | 2 | 2.28 | 21.10 | | ml.g5.48xlarge | lmi-optimized | 4 | 2.37 | 14.10 | . . . | ml.p4d.24xlarge | lmi-optimized | 1 | 0.10 | 137.40 | | ml.p4d.24xlarge | lmi-optimized | 2 | 0.11 | 109.20 | | ml.p4d.24xlarge | lmi-optimized | 4 | 0.13 | 85.00 | . . .
En la primera columna, la tabla muestra los posibles tipos de instancias que puedes usar para alojar el JumpStart modelo que elijas. Para cada tipo de instancia, en
Config Name
, se muestran los nombres de las configuraciones preoptimizadas. Se nombran las configuraciones que proporciona la SageMaker IAlmi-optimized
. Para cada tipo y configuración de instancia, la tabla proporciona métricas de referencia. Estas métricas indican el rendimiento y la latencia que el modelo admitirá para diferentes números de usuarios simultáneos. -
En función de las métricas de referencia, elija el tipo de instancia y el nombre de la configuración que mejor se adapten a las necesidades de rendimiento. Utilizará estos valores cuando cree una configuración de implementación.
Implementación de un modelo preoptimizado
-
Cree una configuración de implementación. En el ejemplo siguiente se utiliza una instancia de
ModelBuilder
. Se transmite un tipo de instancia y un nombre de configuración al métodoset_deployment_config()
:model_builder.set_deployment_config( config_name="
", instance_type="config-name
", )instance-type
Sustituya
por un nombre de configuración de la tabla, como, por ejemplo,config-name
lmi-optimized
. Sustituya
por un tipo de instancia de la tabla, como, por ejemplo,instance-type
ml.p4d.24xlarge
. -
Cree el modelo. En el ejemplo siguiente se utiliza el método
.build()
de la instancia deModelBuilder
:optimized_model = model_builder.build()
El método
.build()
devuelve una instancia deModel
implementable. -
Implemente el modelo en un punto de conexión de inferencia. En el ejemplo siguiente se utiliza el método
.deploy()
de la instancia deModel
:predictor = optimized_model.deploy(accept_eula=True)
El método
deploy()
devuelve una instancia dePredictor
, que puede utilizar para enviar solicitudes de inferencia al modelo.
Prueba del modelo con una solicitud de inferencia
-
Después de implementar el modelo en un punto de conexión de inferencia, pruebe las predicciones del modelo. En el siguiente ejemplo se envía una solicitud de inferencia mediante la instancia de
:Predictor
predictor.predict(sample_input)
El modelo devuelve el texto que genera con una respuesta como la siguiente:
{'generated_text': ' Jupiter is the largest planet in the solar system. It is the fifth planet from the sun. It is a gas giant with . . .'}
Modelos preoptimizados JumpStart
Los siguientes son los JumpStart modelos que tienen configuraciones preoptimizadas.
Meta
-
Llama 3.1 70B Instruct
-
Llama 3.1 70B
-
Llama 3.1 405B Instruct FP8
-
Llama 3.1 405B FP8
-
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
-
Mixtral 8x7B Instruct
-
Mixtral 8x7B
-
Mistral 7B Instruct
-
Mistral 7B
Modelos precompilados JumpStart
Para algunos modelos y configuraciones, la SageMaker IA proporciona modelos precompilados para instancias específicas de AWS Inferentia y Trainium. AWS En este caso, si creas un trabajo de optimización de la compilación y eliges ml.inf2.48xlarge o ml.trn1.32xlarge como tipo de instancia de despliegue, la IA busca los artefactos compilados. SageMaker Dado que el trabajo utiliza un modelo que ya está compilado, se completa rápidamente sin ejecutar la compilación desde cero.
Los modelos para los que AI ha precompilado modelos son los siguientes: JumpStart SageMaker
Meta
-
Llama3 8B
-
Llama3 70B
-
Llama2 7B
-
Llama2 70B
-
Llama2 13B
-
Code Llama 7B
-
Code Llama 70B
HuggingFace
-
Mistral 7B