Creación de un punto de conexión sin servidor - 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.

Creación de un punto de conexión sin servidor

importante

Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es obligatorio porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores AccessDenied «» al intentar crear recursos. Para obtener más información, consulte Proporciona permisos para etiquetar SageMaker los recursos.

AWS Políticas gestionadas para Amazon SageMakerque otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Para crear un punto final sin servidor, puede utilizar la SageMaker consola de Amazon, las API o la AWS CLI. Puede crear un punto final sin servidor mediante un proceso similar al de un punto de conexión en tiempo real.

Crear un modelo

Para crear el modelo, debe proporcionar la ubicación de los artefactos de su modelo y la imagen del contenedor. También puede utilizar una versión modelo de Model SageMaker Registry. En los ejemplos de las siguientes secciones, se muestra cómo crear un modelo mediante la CreateModelAPI, el Registro de modelos y la SageMakerconsola de Amazon.

Crear un modelo (mediante el registro de modelos)

El registro de modelos es una función SageMaker que le ayuda a catalogar y administrar las versiones de su modelo para utilizarlas en las canalizaciones de aprendizaje automático. Para utilizar el registro de modelos con inferencia sin servidor, primero debe registrar una versión del modelo en un grupo de modelos del registro de modelos. Para obtener información sobre cómo registrar un modelo en el registro de modelos, siga los procedimientos que se indican en Cree un grupo de modelos y Registro de una versión del modelo.

El siguiente ejemplo requiere que tengas el ARN de una versión de modelo registrada y usa el AWS SDK para Python (Boto3) para llamar a la API. CreateModel En el caso de la inferencia sin servidor, Model Registry solo es compatible actualmente con el AWS SDK para Python (Botoboto3). Por ejemplo, especifique los siguientes valores:

  • En model_name, introduzca un nombre para el modelo.

  • Para ellosagemaker_role, puede utilizar el rol SageMaker creado por defecto o un rol de SageMaker IAM personalizado en el paso 4 de la sección. Requisitos previos

  • En ModelPackageName, especifique el ARN de la versión de su modelo, que debería haberse registrado en un grupo de modelos del registro de modelos.

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Specify a name for the model model_name = "<name-for-model>" #Specify a Model Registry model version container_list = [ { "ModelPackageName": <model-version-arn> } ] #Create the model response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, container_list )

Crear un modelo (mediante la API)

El siguiente ejemplo usa el AWS SDK para Python (Boto3) para llamar a la API. CreateModel Especifique los siguientes valores:

  • Pues sagemaker_role, puedes usar el rol SageMaker creado por defecto o un rol de SageMaker IAM personalizado en el paso 4 de la sección. Requisitos previos

  • En model_url, especifique el URI de Amazon S3 para su modelo.

  • En container, recupere el contenedor que quiera usar por su ruta de Amazon ECR. En este ejemplo, se utiliza un contenedor XGBoost SageMaker proporcionado por nosotros. Si no ha seleccionado un SageMaker contenedor o ha traído el suyo propio, consulte el paso 6 de la Requisitos previos sección para obtener más información.

  • En model_name, introduzca un nombre para el modelo.

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Get model from S3 model_url = "s3://DOC-EXAMPLE-BUCKET/models/model.tar.gz" #Get container image (prebuilt example) from sagemaker import image_uris container = image_uris.retrieve("xgboost", region, "0.90-1") #Create model model_name = "<name-for-model>" response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, Containers = [{ "Image": container, "Mode": "SingleModel", "ModelDataUrl": model_url, }] )

Crear un modelo (usando la consola)

  1. Inicia sesión en la SageMakerconsola de Amazon.

  2. En la pestaña de navegación, seleccione Inferencia.

  3. A continuación, seleccione Modelos.

  4. Seleccione Crear modelo.

  5. En Nombre del modelo, introduce un nombre para el modelo que sea exclusivo de tu cuenta y Región de AWS.

  6. Para el rol de IAM, seleccione un rol de IAM que ya haya creado (consulteRequisitos previos) o permita que SageMaker se cree uno para usted.

  7. En la Definición de contenedor 1, en Opciones de entrada del contenedor, seleccione Proporcionar artefactos del modelo y ubicación de entrada.

  8. En Proporcionar artefactos de modelo y opciones de imagen de inferencia, seleccione Usar un solo modelo.

  9. En Ubicación de la imagen del código de inferencia, introduzca una ruta de Amazon ECR para un contenedor. La imagen debe ser una imagen propia SageMaker proporcionada (por ejemplo TensorFlow, XGBoost) o una imagen que resida en un repositorio de Amazon ECR dentro de la misma cuenta en la que está creando el punto final. Si no tiene ningún contenedor, vuelva al paso 6 de la sección Requisitos previos para obtener más información.

  10. Para Ubicación de artefactos del modelo, introduzca el URI de Amazon S3 en su modelo de machine learning. Por ejemplo, s3://DOC-EXAMPLE-BUCKET/models/model.tar.gz.

  11. (Opcional) En Etiquetas, agregue pares clave-valor para crear metadatos para su modelo.

  12. Seleccione Crear modelo.

Creación de una configuración de punto de conexión

Una vez creado el modelo, cree una configuración de punto de conexión. A continuación, puede implementar el modelo utilizando las especificaciones de la configuración de su punto de conexión. En la configuración, especifique si desea un punto de conexión en tiempo real o sin servidor. Para crear una configuración de punto final sin servidor, puede utilizar la SageMaker consola de Amazon, la CreateEndpointConfigAPI o la AWS CLI. Los enfoques de la API y la consola se describen en las siguientes secciones.

Crear una configuración de punto de conexión (usando API)

El siguiente ejemplo usa el AWS SDK para Python (Boto3) para llamar a la API. CreateEndpointConfig Especifique los siguientes valores:

  • En EndpointConfigName, seleccione un nombre para la configuración del punto de conexión. El nombre debe ser único dentro de su cuenta en una Región.

  • (Opcional) ParaKmsKeyId, utilice el ID de clave, el ARN de clave, el nombre del alias o el ARN del alias para la AWS KMS clave que desee utilizar. SageMaker utiliza esta clave para cifrar la imagen de Amazon ECR.

  • En ModelName, utilice el nombre del modelo que quiera implementar. Debe ser el mismo modelo que haya utilizado en el paso Crear un modelo.

  • En ServerlessConfig:

    • Establezca MemorySizeInMB en 2048. En este ejemplo, hemos establecido el tamaño de la memoria en 2048 MB, pero puede elegir cualquiera de los siguientes valores para el tamaño de la memoria: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB o 6144 MB.

    • Establezca MaxConcurrency en 20. Para este ejemplo, estableceremos la simultaneidad máxima en 20. El número máximo de invocaciones simultáneas que puede establecer para un punto de conexión sin servidor es 200 y el valor mínimo que puede elegir es 1.

    • (Opcional) Para usar la simultaneidad aprovisionada, establezca ProvisionedConcurrency en 10. Para este ejemplo, estableceremos la simultaneidad aprovisionada en 10. El número ProvisionedConcurrency de un punto de conexión sin servidor debe ser inferior o igual al número MaxConcurrency. Puede dejarlo vacío si quiere utilizar un punto de conexión de inferencia sin servidor bajo demanda. Puede escalar de forma dinámica la simultaneidad de aprovisionamiento. Para obtener más información, consulte Escalar automáticamente la simultaneidad aprovisionada para un punto de conexión sin servidor.

response = client.create_endpoint_config( EndpointConfigName="<your-endpoint-configuration>", KmsKeyId="arn:aws:kms:us-east-1:123456789012:key/143ef68f-76fd-45e3-abba-ed28fc8d3d5e", ProductionVariants=[ { "ModelName": "<your-model-name>", "VariantName": "AllTraffic", "ServerlessConfig": { "MemorySizeInMB": 2048, "MaxConcurrency": 20, "ProvisionedConcurrency": 10, } } ] )

Crear una configuración de punto de conexión (usando la consola)

  1. Inicia sesión en la SageMakerconsola de Amazon.

  2. En la pestaña de navegación, seleccione Inferencia.

  3. A continuación, seleccione las configuraciones de punto de conexión.

  4. Seleccione Crear configuración de punto de conexión.

  5. En el nombre de la configuración del punto de conexión, introduzca un nombre único dentro de su cuenta en una región.

  6. En Tipo de punto de conexión, seleccione Sin rervidor.

    Captura de pantalla de la opción del tipo de punto de conexión en la consola.
  7. En las variantes de producción, seleccione Añadir modelo.

  8. En Añadir modelo, seleccione el modelo que quiera usar de la lista de modelos y, a continuación, seleccione Guardar.

  9. Tras añadir el modelo, en Acciones, seleccione Editar.

  10. En Tamaño de memoria, seleccione el tamaño de memoria que quiera en GB.

    Captura de pantalla de la opción de tamaño de memoria en la consola.
  11. En Simultaneidad máxima, introduzca el número máximo de invocaciones simultáneas que quiera para el punto de conexión. El valor máximo que puede introducir es 200 y el mínimo es 1.

  12. (Opcional) Para usar la simultaneidad aprovisionada, introduzca el número deseado de invocaciones simultáneas en el campo de configuración de simultaneidad aprovisionada. El número de invocaciones simultáneas aprovisionadas debe ser menor o igual que el número máximo de invocaciones simultáneas.

  13. Seleccione Guardar.

  14. (Opcional) En Etiquetas, introduzca pares clave-valor si quiere crear metadatos para la configuración de punto de conexión.

  15. Seleccione Crear configuración de punto de conexión.

Crear un punto de conexión

Para crear un punto final sin servidor, puedes usar la SageMaker consola de Amazon, la CreateEndpointAPI o la AWS CLI. Los enfoques de la API y la consola se describen en las siguientes secciones. Una vez creado el punto de conexión, este puede tardar unos minutos en estar disponible.

Crear un punto de conexión (mediante la API)

El siguiente ejemplo usa el AWS SDK para Python (Boto3) para llamar a la API. CreateEndpoint Especifique los siguientes valores:

  • En EndpointName, introduzca un nombre para el punto de conexión que sea exclusivo dentro de una región de su cuenta.

  • En EndpointConfigName, utilice el nombre de la configuración del punto de conexión que haya creado en la sección anterior.

response = client.create_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-endpoint-config>" )

Crear un punto de conexión (usando la consola)

  1. Inicia sesión en la SageMakerconsola de Amazon.

  2. En la pestaña de navegación, seleccione Inferencia.

  3. A continuación, seleccione Puntos de conexión.

  4. Seleccione Crear punto de conexión.

  5. En el nombre del punto de conexión, introduzca un nombre que sea único dentro de una región de su cuenta.

  6. En Asociar configuración del punto de enlace, seleccione Usar una configuración del punto de conexión existente.

  7. En la configuración del punto de conexión, seleccione el nombre de la configuración del punto de conexión que haya creado en la sección anterior y, a continuación, seleccione Seleccionar configuración del punto de conexión.

  8. (Opcional) En Etiquetas, introduzca pares clave-valor si quiere crear metadatos para el punto de conexión.

  9. Seleccione Crear punto de conexión.

    Captura de pantalla de la página de creación y configuración del punto de conexión en la consola.