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.
Implemente un modelo preoptimizado
Algunos modelos vienen preoptimizados SageMaker, lo que significa que puede implementar versiones optimizadas de estos modelos sin necesidad de crear primero un trabajo de optimización de inferencias. JumpStart Para ver la lista de modelos con opciones preoptimizadas, consulte. Referencia de modelos compatibles
Utilice el siguiente procedimiento para implementar un JumpStart modelo preoptimizado con Amazon SageMaker Studio.
Para implementar un modelo preoptimizado
-
En Studio, en el menú de navegación de la izquierda, elija JumpStart.
-
En la página Todos los modelos públicos, elija uno de los modelos preoptimizados.
-
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) antes de poder continuar. Si se solicita, consulta los términos de la licencia en la sección del acuerdo de licencia. Si los términos son aceptables para su caso de uso, seleccione la casilla de verificación correspondiente a Acepto los EULA términos y condiciones y léalos.
Para obtener más información, consulte Contratos de licencia para usuarios finales.
-
Para el nombre del punto final y el recuento inicial de instancias, acepte los valores predeterminados o defina valores personalizados.
-
Para el tipo de instancia, mantenga el valor predeterminado. De lo contrario, no podrá implementar una configuración previamente optimizada.
-
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 su aplicación.
-
Elija Implementar.
Con Amazon SageMaker PythonSDK, puede implementar un modelo preoptimizado. En primer lugar, defina el modelo mediante la ModelBuilder
clase. A continuación, se crea el modelo. Por último, se despliega el modelo mediante la Model
clase.
Para configurar su proyecto
-
En el código de su aplicación, importe las bibliotecas necesarias. El siguiente ejemplo importa el SDK para Python (Boto3). También importa los módulos de Amazon SageMaker Python SDK 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
-
Inicialice una SageMaker sesión. El siguiente ejemplo usa la
Session()
clase de Amazon SageMaker PythonSDK:sagemaker_session = Session()
Para definir su modelo
-
Cree una
SchemaBuilder
instancia y proporcione muestras de entrada y salida. Usted proporciona esta instancia a laModelBuilder
clase cuando define un modelo. Con él, genera SageMaker 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
y, consulteModelBuilder
. Crea un modelo en Amazon SageMaker con ModelBuilderEl siguiente ejemplo proporciona ejemplos de cadenas de entrada y salida para la
SchemaBuilder
clase: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 para SageMaker. El siguiente ejemplo establece los parámetros para inicializar una
ModelBuilder
instancia: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 usa un JumpStart modelo.
Sustitúyalo por el identificador de un JumpStart modelo, por ejemplojumpstart-model-id
meta-textgeneration-llama-3-70b
.
Para recuperar métricas de referencia
-
Para determinar qué configuración preoptimizada desea implementar, consulte las opciones que se SageMaker ofrecen. En el siguiente ejemplo, se muestran:
model_builder.display_benchmark_metrics()
Este
display_benchmark_metrics()
método 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 la sección
Config Name
, se muestran los nombres de las configuraciones preoptimizadas. Selmi-optimized
nombran las configuraciones que se SageMaker proporcionan. 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 sus necesidades de rendimiento. Utilizará estos valores al crear una configuración de implementación.
Para implementar un modelo preoptimizado
-
Cree una configuración de despliegue. En el siguiente ejemplo, se utiliza una
ModelBuilder
instancia. Pasa un tipo de instancia y un nombre de configuración alset_deployment_config()
método:model_builder.set_deployment_config( config_name="
", instance_type="config-name
", )instance-type
Reemplazar
con un nombre de configuración de la tabla, por ejemplo.nombre de configuración
lmi-optimized
Sustitúyalo por un tipo de instancia de la tabla, comoinstance-type
ml.p4d.24xlarge
. -
Cree su modelo. En el siguiente ejemplo, se utiliza el
.build()
método de laModelBuilder
instancia:optimized_model = model_builder.build()
El
.build()
método devuelve unaModel
instancia desplegable. -
Implemente su modelo en un punto final de inferencia. En el siguiente ejemplo, se utiliza el
.deploy()
método de laModel
instancia:predictor = optimized_model.deploy(accept_eula=True)
El
deploy()
método devuelve unaPredictor
instancia, que puedes usar para enviar solicitudes de inferencia al modelo.
Para probar el modelo con una solicitud de inferencia
-
Después de implementar el modelo en un punto final de inferencia, pruebe las predicciones del modelo. En el siguiente ejemplo, se envía una solicitud de inferencia mediante la
instancia: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 . . .'}