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 modelos para inferencias en tiempo real
importante
IAMLas políticas 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 los recursos que crean. Si una IAM política 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.
Existen varias opciones para implementar un modelo mediante servicios SageMaker de alojamiento. Puede implementar un modelo de forma interactiva con SageMaker Studio. O bien, puede implementar un modelo mediante programación mediante un AWS SDK, como Python SDK o para SageMaker SDK Python (Boto3). También puede implementarlo mediante. AWS CLI
Antes de empezar
Antes de implementar un SageMaker modelo, busque y tome nota de lo siguiente:
-
El Región de AWS lugar en el que se encuentra su bucket de Amazon S3
-
La URI ruta de Amazon S3 donde se almacenan los artefactos del modelo
-
La IAM función de SageMaker
-
La ruta de ECR URI registro de Docker en Amazon para la imagen personalizada que contiene el código de inferencia, o el marco y la versión de una imagen de Docker integrada que es compatible y por AWS
Para obtener una lista de las Servicios de AWS disponibles en cada una de ellas Región de AWS, consulte Region Maps y
importante
El depósito de Amazon S3 en el que se almacenan los artefactos del modelo debe estar en el Región de AWS mismo lugar que el modelo que está creando.
Utilización de recursos compartidos con varios modelos
Puedes implementar uno o más modelos en un punto final con Amazon SageMaker. Cuando varios modelos comparten un punto final, utilizan conjuntamente los recursos que están alojados allí, como las instancias de procesamiento de aprendizaje automático y los aceleradores. CPUs La forma más flexible de implementar varios modelos en un punto final es definir cada modelo como un componente de inferencia.
Componentes de inferencias
Un componente de inferencia es un objeto de SageMaker alojamiento que se puede utilizar para implementar un modelo en un punto final. En la configuración del componente de inferencia, se especifica el modelo, el punto final y la forma en que el modelo utiliza los recursos que aloja el punto final. Para especificar el modelo, puede especificar un objeto SageMaker modelo o puede especificar directamente los artefactos y la imagen del modelo.
En la configuración, puede optimizar la utilización de los recursos adaptando la forma en que se asignan al modelo los CPU núcleos, los aceleradores y la memoria necesarios. Puede implementar varios componentes de inferencia en un punto final, donde cada componente de inferencia contenga un modelo y las necesidades de utilización de recursos de ese modelo.
Tras implementar un componente de inferencia, puede invocar directamente el modelo asociado cuando utilice la acción en el InvokeEndpoint . SageMaker API
Los componentes de inferencia ofrecen las siguientes ventajas:
- Flexibilidad
-
El componente de inferencia desacopla los detalles del alojamiento del modelo del propio punto final. Esto proporciona más flexibilidad y control sobre cómo se alojan y sirven los modelos con un punto final. Puede alojar varios modelos en la misma infraestructura y puede agregar o eliminar modelos de un punto final según sea necesario. Puede actualizar cada modelo de forma independiente.
- Escalabilidad
-
Puede especificar cuántas copias de cada modelo desea alojar y puede establecer un número mínimo de copias para garantizar que el modelo se cargue en la cantidad necesaria para atender las solicitudes. Puede reducir a cero la copia de cualquier componente de inferencia, lo que deja espacio para que otra copia se amplíe hacia arriba.
SageMaker empaqueta sus modelos como componentes de inferencia cuando los implementa mediante:
-
SageMaker Studio Classic.
-
El SageMaker Python SDK para implementar un objeto modelo (en el que se establece el tipo de punto final
EndpointType.INFERENCE_COMPONENT_BASED
). -
El AWS SDK for Python (Boto3) para definir
InferenceComponent
los objetos que se despliegan en un punto final.
Implemente modelos con SageMaker Studio
Complete los siguientes pasos para crear e implementar su modelo de forma interactiva a través de SageMaker Studio. Para obtener más información sobre Studio, consulta la documentación de Studio. Para obtener más información sobre varios escenarios de implementación, consulte el blog Package and deploy modelos de aprendizaje automático clásicos y LLMs fácilmente con Amazon SageMaker — Part 2
Prepara tus artefactos y permisos
Complete esta sección antes de crear un modelo en SageMaker Studio.
Tienes dos opciones para traer tus artefactos y crear un modelo en Studio:
-
Puedes traer un
tar.gz
archivo preempaquetado, que debería incluir los artefactos del modelo, cualquier código de inferencia personalizado y todas las dependencias enumeradas en un archivo.requirements.txt
-
SageMaker puede empaquetar sus artefactos por usted. Solo tiene que incluir los artefactos del modelo sin procesar y cualquier dependencia en un
requirements.txt
archivo, y SageMaker puede proporcionarle el código de inferencia predeterminado (o puede anular el código predeterminado con su propio código de inferencia personalizado). SageMakeradmite esta opción para los siguientes marcos:,. PyTorch XGBoost
Además de incluir tu modelo, tu función AWS Identity and Access Management (IAM) y un contenedor de Docker (o el marco y la versión que desees para los que SageMaker haya un contenedor prediseñado), también debes conceder permisos para crear e implementar modelos a través SageMaker de Studio.
Debes tener la AmazonSageMakerFullAccesspolítica asociada a tu IAM función para poder acceder a otros SageMaker servicios relevantes. Para ver los precios de los tipos de instancias en Studio, también debes adjuntar la AWS PriceListServiceFullAccesspolítica (o, si no quieres adjuntar la política completa, más específicamente, la pricing:GetProducts
acción).
Si decide cargar los artefactos de su modelo al crear un modelo (o cargar un archivo de carga útil de muestra para obtener recomendaciones de inferencia), debe crear un bucket de Amazon S3. El nombre del bucket debe ir precedido de la palabra. SageMaker
También se aceptan mayúsculas alternativas SageMaker de: o. Sagemaker
sagemaker
Le recomendamos que utilice la convención de nomenclatura de los cubos. sagemaker-{
Este depósito se utiliza para almacenar los artefactos que subas.Region
}-{accountID
}
Tras crear el depósito, adjunta la siguiente política CORS (uso compartido de recursos entre orígenes) al depósito:
[ { "AllowedHeaders": ["*"], "ExposeHeaders": ["Etag"], "AllowedMethods": ["PUT", "POST"], "AllowedOrigins": ['https://*.sagemaker.aws'], } ]
Puede adjuntar una CORS política a un bucket de Amazon S3 mediante cualquiera de los siguientes métodos:
-
A través de la página Editar el uso compartido de recursos entre orígenes (CORS)
de la consola de Amazon S3 -
Uso de Amazon S3 API PutBucketCors
-
Mediante el put-bucket-cors AWS CLI comando:
aws s3api put-bucket-cors --bucket="..." --cors-configuration="..."
Cree un modelo desplegable
En este paso, debe crear una versión desplegable de su modelo SageMaker proporcionando sus artefactos junto con las especificaciones adicionales, como el contenedor y el marco que desee, cualquier código de inferencia personalizado y la configuración de red.
Cree un modelo desplegable en SageMaker Studio de la siguiente manera:
-
Abre la aplicación SageMaker Studio.
-
En el panel de navegación izquierdo, elija Models (Modelos).
-
Seleccione la pestaña Modelos desplegables.
-
En la página de modelos desplegables, seleccione Crear.
-
En la página Crear modelo desplegable, en el campo Nombre del modelo, introduzca un nombre para el modelo.
Hay varias secciones más que puede rellenar en la página Crear un modelo desplegable.
La sección de definición del contenedor tiene el aspecto de la siguiente captura de pantalla:
Para la sección de definición de contenedores, haga lo siguiente:
-
En Tipo de contenedor, selecciona Contenedor prediseñado si quieres usar un contenedor SageMaker gestionado, o selecciona Traiga su propio contenedor si tiene su propio contenedor.
-
Si seleccionaste un contenedor prediseñado, selecciona el marco del contenedor, la versión del marco y el tipo de hardware que quieras usar.
-
Si has seleccionado Trae tu propio contenedor, introduce una ECR ruta de Amazon como imagen de la ECR ruta al contenedor.
Luego, rellena la sección de artefactos, que se parece a la siguiente captura de pantalla:
Para la sección de artefactos, haga lo siguiente:
-
Si utilizas uno de los marcos SageMaker compatibles con el empaquetado de artefactos modelo (PyTorch oXGBoost), en el caso de Artifacts, puedes elegir la opción Cargar artefactos. Con esta opción, solo tiene que especificar los artefactos del modelo sin procesar, cualquier código de inferencia personalizado que tenga y su archivo requirements.txt, quien se encargará de SageMaker empaquetar el archivo por usted. Haga lo siguiente:
-
En Artefactos, seleccione Cargar artefactos para seguir proporcionando sus archivos. De lo contrario, si ya tiene un
tar.gz
archivo que contenga los archivos del modelo, el código de inferencia y elrequirements.txt
archivo, seleccione Introducir S3 URI para los artefactos preempaquetados. -
Si opta por cargar sus artefactos, en el caso del depósito S3, introduzca la ruta de Amazon S3 hasta el depósito en el que SageMaker desee almacenar los artefactos después de empaquetarlos por usted. A continuación, complete los siguientes pasos.
-
En Cargar artefactos del modelo, cargue los archivos del modelo.
-
En Código de inferencia, seleccione Usar código de inferencia predeterminado si quiere usar un código predeterminado que sirva para realizar SageMaker inferencias. De lo contrario, selecciona Cargar código de inferencia personalizado para usar tu propio código de inferencia.
-
En Upload requirements.txt, suba un archivo de texto que enumere las dependencias que desee instalar en tiempo de ejecución.
-
-
Si no está utilizando un marco que permita SageMaker empaquetar artefactos de modelos, Studio le mostrará la opción de artefactos preempaquetados y deberá proporcionar todos los artefactos ya empaquetados como un
tar.gz
archivo. Haga lo siguiente:-
Para los artefactos preempaquetados, seleccione Input S3 URI para los artefactos del modelo preempaquetados si ya ha cargado el
tar.gz
archivo en Amazon S3. Seleccione Cargar artefactos modelo preempaquetados si desea cargar directamente su archivo a. SageMaker -
Si seleccionó Input S3 URI para los artefactos del modelo preempaquetados, introduzca la ruta de Amazon S3 a su archivo de S3 URI. De lo contrario, seleccione y cargue el archivo desde su máquina local.
-
La siguiente sección es Seguridad, que tiene el aspecto de la siguiente captura de pantalla:
Para la sección de seguridad, haga lo siguiente:
-
Para IAMel rol, introduzca el ARN para un IAM rol.
-
(Opcional) Para Virtual Private Cloud (VPC), puede seleccionar Amazon VPC para almacenar la configuración y los artefactos del modelo.
-
(Opcional) Active la opción de aislamiento de red si quiere restringir el acceso a Internet de su contenedor.
Por último, si lo desea, puede rellenar la sección de opciones avanzadas, que tiene el aspecto de la siguiente captura de pantalla:
(Opcional) Para la sección de opciones avanzadas, haga lo siguiente:
-
Activa la opción Recomendaciones de instancias personalizadas si quieres ejecutar un trabajo de Amazon SageMaker Inference Recommender en tu modelo después de su creación. El Recomendador de inferencias es una función que le proporciona los tipos de instancias recomendados para optimizar el rendimiento y el costo de las inferencias. Puedes ver estas recomendaciones de instancias cuando te prepares para implementar tu modelo.
-
En Añadir variables de entorno, introduce una variable de entorno para tu contenedor como pares clave-valor.
-
En el caso de las etiquetas, introduce cualquier etiqueta como pares clave-valor.
-
Una vez finalizada la configuración del modelo y el contenedor, elija Crear modelo desplegable.
Ahora debería tener un modelo en SageMaker Studio listo para su implementación.
Implementar el modelo
Por último, debe implementar el modelo que configuró en el paso anterior en un HTTPS punto final. Puede implementar un modelo único o varios modelos en el punto final.
Compatibilidad entre el modelo y el punto final
Antes de poder implementar un modelo en un punto final, el modelo y el punto final deben ser compatibles y tener los mismos valores para los siguientes ajustes:
-
El IAM rol
-
AmazonVPC, incluidas sus subredes y grupos de seguridad
-
El aislamiento de la red (activado o desactivado)
Studio impide implementar modelos en puntos finales incompatibles de las siguientes maneras:
-
Si intenta implementar un modelo en un nuevo punto final, SageMaker configura el punto final con una configuración inicial que sea compatible. Si se rompe la compatibilidad cambiando estos ajustes, Studio muestra una alerta e impide el despliegue.
-
Si intentas realizar el despliegue en un dispositivo de punto final existente y ese punto final no es compatible, Studio muestra una alerta e impide el despliegue.
-
Si intentas añadir varios modelos a una implementación, Studio te impedirá implementar modelos que sean incompatibles entre sí.
Cuando Studio muestre la alerta sobre la incompatibilidad entre el modelo y el punto final, puede seleccionar Ver detalles en la alerta para ver qué ajustes son incompatibles.
Una forma de implementar un modelo es hacer lo siguiente en Studio:
-
Abre la aplicación SageMaker Studio.
-
En el panel de navegación izquierdo, elija Models (Modelos).
-
En la página de modelos, seleccione uno o más modelos de la lista de SageMaker modelos.
-
Elija Implementar.
-
Para el nombre de Endpoint, abra el menú desplegable. Puede seleccionar un punto final existente o puede crear un nuevo punto final en el que implementar el modelo.
-
En Tipo de instancia, seleccione el tipo de instancia que quiere usar para el punto final. Si anteriormente realizaste un trabajo de recomendación de inferencias para el modelo, los tipos de instancia recomendados aparecen en la lista bajo el título Recomendado. De lo contrario, verás algunas posibles instancias que podrían ser adecuadas para tu modelo.
Compatibilidad de tipos de instancia para JumpStart
Si vas a implementar un JumpStart modelo, Studio solo muestra los tipos de instancias compatibles con el modelo.
-
En Recuento inicial de instancias, introduce el número inicial de instancias que te gustaría aprovisionar para tu punto final.
-
En Número máximo de instancias, especifica el número máximo de instancias que el punto final puede aprovisionar cuando se amplíe para adaptarse a un aumento del tráfico.
-
Si el modelo que vas a implementar es uno de los más utilizados en el centro JumpStart LLMs de modelos, la opción Configuraciones alternativas aparece después de los campos tipo de instancia y recuento de instancias.
Para las más populares JumpStart LLMs, AWS tiene tipos de instancias previamente evaluados para optimizar el costo o el rendimiento. Estos datos pueden ayudarle a decidir qué tipo de instancia usar para implementar la suya. LLM Elija Configuraciones alternativas para abrir un cuadro de diálogo que contiene los datos previamente evaluados. El panel tiene el aspecto que se muestra en la siguiente captura de pantalla:
En el cuadro Configuraciones alternativas, haga lo siguiente:
-
Seleccione un tipo de instancia. Puede elegir el coste por hora o el mejor rendimiento para ver los tipos de instancias que optimizan el coste o el rendimiento para el modelo especificado. También puedes elegir Otras instancias compatibles para ver una lista de otros tipos de instancias que son compatibles con el JumpStart modelo. Ten en cuenta que al seleccionar un tipo de instancia aquí se sobrescribe cualquier selección de instancia anterior especificada en el paso 6.
-
(Opcional) Active la opción Personalizar la configuración seleccionada para especificar el número máximo total de tokens (el número máximo de tokens que desea permitir, que es la suma de los tokens de entrada y la salida generada por el modelo), la longitud máxima del token de entrada (el número máximo de tokens que desea permitir para la entrada de cada solicitud) y el número máximo de solicitudes simultáneas (el número máximo de solicitudes que el modelo puede procesar a la vez).
-
Elija Seleccionar para confirmar el tipo de instancia y los ajustes de configuración.
-
-
El campo Modelo ya debería estar rellenado con el nombre del modelo o los modelos que va a implementar. Puede elegir Añadir modelo para añadir más modelos a la implementación. Para cada modelo que añada, rellene los siguientes campos:
-
En Número de CPU núcleos, introduce los CPU núcleos que quieres dedicar al uso del modelo.
-
En Número mínimo de copias, introduzca el número mínimo de copias del modelo que desee alojar en el terminal en un momento dado.
-
En CPUMemoria mínima (MB), introduzca la cantidad mínima de memoria (en MB) que requiere el modelo.
-
En CPUMemoria máxima (MB), introduzca la cantidad máxima de memoria (en MB) que desea permitir que utilice el modelo.
-
-
(Opcional) Para las opciones avanzadas, haga lo siguiente:
-
Para el IAMrol, utilice el rol de SageMaker IAM ejecución predeterminado o especifique el suyo propio que tenga los permisos que necesita. Tenga en cuenta que este IAM rol debe ser el mismo que el rol que especificó al crear el modelo desplegable.
-
En el caso de la nube privada virtual (VPC), puede especificar la VPC ubicación en la que desee alojar su punto final.
-
En KMSClave de cifrado, seleccione una AWS KMS clave para cifrar los datos del volumen de almacenamiento adjunto a la instancia de procesamiento de aprendizaje automático que aloja el punto final.
-
Activa la opción Habilitar el aislamiento de la red para restringir el acceso a Internet de tu contenedor.
-
Para configurar el tiempo de espera, introduzca los valores de los campos Tiempo de espera de descarga de datos del modelo (segundos) y Tiempo de espera de comprobación del estado del contenedor (segundos). Estos valores determinan el tiempo máximo que se tarda SageMaker en descargar el modelo en el contenedor y ponerlo en marcha, respectivamente.
-
En el caso de las etiquetas, introduzca las etiquetas como pares clave-valor.
nota
SageMaker configura el IAM rol y los ajustes de aislamiento de la red con valores iniciales que son compatibles con el modelo que se está implementando. VPC Si alteras la compatibilidad cambiando estos ajustes, Studio mostrará una alerta e impedirá el despliegue.
-
Tras configurar las opciones, la página debería tener el aspecto de la siguiente captura de pantalla.
Tras configurar la implementación, elija Deploy para crear el punto final e implementar el modelo.
Implemente modelos con Python SDKs
Con SageMaker PythonSDK, puede construir su modelo de dos maneras. La primera consiste en crear un objeto modelo a partir de la ModelBuilder
clase Model
o. Si usa la Model
clase para crear su Model
objeto, debe especificar el paquete del modelo o el código de inferencia (según el servidor del modelo), los scripts para gestionar la serialización y deserialización de los datos entre el cliente y el servidor y cualquier dependencia que deba cargarse en Amazon S3 para su consumo. La segunda forma de crear el modelo consiste en utilizar el código de inferencia o ModelBuilder
los artefactos del modelo. ModelBuilder
captura automáticamente las dependencias, deduce las funciones de serialización y deserialización necesarias y empaqueta las dependencias para crear el objeto. Model
Para obtener más información acerca de ModelBuilder
, consulte Crea un modelo en Amazon SageMaker con ModelBuilder.
En la siguiente sección se describen ambos métodos para crear el modelo y desplegar el objeto del modelo.
Configuración
Los siguientes ejemplos preparan el proceso de despliegue del modelo. Importan las bibliotecas necesarias y definen el S3 URL que localiza los artefactos del modelo.
ejemplo modelar artefacto URL
El siguiente código crea un ejemplo de Amazon S3URL. URLLocaliza los artefactos del modelo de un modelo previamente entrenado en un bucket de Amazon S3.
# Create a variable w/ the model S3 URL # The name of your S3 bucket: s3_bucket = "amzn-s3-demo-bucket" # The directory within your S3 bucket your model is stored in: bucket_prefix = "
sagemaker/model/path
" # The file name of your model artifact: model_filename = "my-model-artifact.tar.gz
" # Relative S3 path: model_s3_key = f"{bucket_prefix}/"+model_filename # Combine bucket name, model file name, and relate S3 path to create S3 model URL: model_url = f"s3://{s3_bucket}/{model_s3_key}"
El Amazon S3 completo URL se almacena en la variablemodel_url
, que se utiliza en los ejemplos siguientes.
Información general
Hay varias formas de implementar modelos con SageMaker Python SDK o SDK para Python (Boto3). En las siguientes secciones se resumen los pasos que debe seguir para varios enfoques posibles. Estos pasos se muestran en los ejemplos siguientes.
Configuración
Los siguientes ejemplos configuran los recursos que necesita para implementar un modelo en un punto final.
Implementación
En los siguientes ejemplos, se implementa un modelo en un punto final.
Implemente modelos con AWS CLI
Puede implementar un modelo en un punto final mediante el AWS CLI.
Información general
Al implementar un modelo con AWS CLI, puede implementarlo con o sin un componente de inferencia. En las siguientes secciones se resumen los comandos que se ejecutan para ambos enfoques. Estos comandos se muestran en los ejemplos siguientes.
Configuración
Los siguientes ejemplos configuran los recursos que necesita para implementar un modelo en un punto final.
Implementación
Los siguientes ejemplos implementan un modelo en un punto final.