Implemente un modelo preoptimizado - 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.

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
  1. En Studio, en el menú de navegación de la izquierda, elija JumpStart.

  2. En la página Todos los modelos públicos, elija uno de los modelos preoptimizados.

  3. En la página de detalles del modelo, elija Implementar.

  4. 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.

  5. Para el nombre del punto final y el recuento inicial de instancias, acepte los valores predeterminados o defina valores personalizados.

  6. Para el tipo de instancia, mantenga el valor predeterminado. De lo contrario, no podrá implementar una configuración previamente optimizada.

  7. 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.

  8. 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
  1. 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
  2. Inicialice una SageMaker sesión. El siguiente ejemplo usa la Session() clase de Amazon SageMaker PythonSDK:

    sagemaker_session = Session()
Para definir su modelo
  1. Cree una SchemaBuilder instancia y proporcione muestras de entrada y salida. Usted proporciona esta instancia a la ModelBuilder 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 ModelBuilder

    El 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)
  2. 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. jumpstart-model-idSustitúyalo por el identificador de un JumpStart modelo, por ejemplometa-textgeneration-llama-3-70b.

Para recuperar métricas de referencia
  1. 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ónConfig Name, se muestran los nombres de las configuraciones preoptimizadas. Se lmi-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.

  2. 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
  1. 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 al set_deployment_config() método:

    model_builder.set_deployment_config( config_name="config-name", instance_type="instance-type", )

    Reemplazar nombre de configuración con un nombre de configuración de la tabla, por ejemplo. lmi-optimized instance-typeSustitúyalo por un tipo de instancia de la tabla, comoml.p4d.24xlarge.

  2. Cree su modelo. En el siguiente ejemplo, se utiliza el .build() método de la ModelBuilder instancia:

    optimized_model = model_builder.build()

    El .build() método devuelve una Model instancia desplegable.

  3. Implemente su modelo en un punto final de inferencia. En el siguiente ejemplo, se utiliza el .deploy() método de la Model instancia:

    predictor = optimized_model.deploy(accept_eula=True)

    El deploy() método devuelve una Predictor 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 Predictor instancia:

    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 . . .'}