Alojamiento de modelos FAQs - 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.

Alojamiento de modelos FAQs

Consulte los siguientes FAQ elementos para obtener respuestas a las preguntas más frecuentes sobre SageMaker Inference Hosting.

Alojamiento general

Los siguientes FAQ elementos responden a preguntas generales comunes sobre la SageMaker inferencia.

R: Después de crear y entrenar modelos, Amazon SageMaker ofrece cuatro opciones para implementarlos para que puedas empezar a hacer predicciones. La inferencia en tiempo real es adecuada para cargas de trabajo con requisitos de latencia de milisegundos, tamaños de carga útil de hasta 6 MB y tiempos de procesamiento de hasta 60 segundos. La transformación por lotes es ideal para realizar predicciones sin conexión en grandes lotes de datos que están disponibles por adelantado. La inferencia asíncrona está diseñada para cargas de trabajo que no requieren una latencia inferior a un segundo, tamaños de carga útil de hasta 1 GB y tiempos de procesamiento de hasta 15 minutos. Con la inferencia sin servidor, puede implementar rápidamente modelos de machine learning para realizar inferencias sin tener que configurar ni administrar la infraestructura subyacente, y solo paga por la capacidad de cómputo utilizada para procesar las solicitudes de inferencia, lo que resulta ideal para cargas de trabajo intermitentes.

R: El siguiente diagrama puede ayudarlo a elegir una opción de implementación del modelo de SageMaker alojamiento.

Diagrama de flujo que explica cómo elegir una opción de implementación modelo en SageMaker.

El diagrama anterior le guía a través del siguiente proceso de decisión. Si desea procesar las solicitudes en lotes, puede elegir la transformación por lotes. De lo contrario, si desea recibir inferencias para cada solicitud a su modelo, es posible que prefiera elegir la inferencia asíncrona, la inferencia sin servidor o la inferencia en tiempo real. Puede elegir la inferencia asíncrona si tiene tiempos de procesamiento prolongados o grandes cargas útiles y desea poner en cola las solicitudes. Puede elegir la inferencia sin servidor si su carga de trabajo tiene tráfico impredecible o intermitente. Puede elegir la inferencia en tiempo real si tiene un tráfico constante y necesita una latencia menor y uniforme para sus solicitudes.

R: Para optimizar sus costos con SageMaker Inference, debe elegir la opción de alojamiento adecuada para su caso de uso. También puede utilizar funciones de inferencia como Amazon SageMaker Savings Plans, la optimización de modelos con SageMaker Neo, puntos de conexión multimodelo y puntos de conexión multicontenedor, o el escalado automático. Para obtener consejos sobre cómo optimizar los costes de inferencia, consulte Mejores prácticas de optimización de costes de inferencia.

R: Debe utilizar Amazon SageMaker Inference Recommender si necesita recomendaciones para la configuración correcta de los puntos de conexión a fin de mejorar el rendimiento y reducir los costes. Anteriormente, los científicos de datos que deseaban implementar sus modelos tenían que realizar pruebas de rendimiento manuales para seleccionar la configuración adecuada del punto de conexión. En primer lugar, tenían que seleccionar el tipo de instancia de machine learning adecuada entre los más de 70 tipos de instancias disponibles en función de los requisitos de recursos de sus modelos y las cargas útiles de muestra, y luego optimizar el modelo para tener en cuenta los diferentes tipos de hardware. Luego tenían que realizar pruebas de carga exhaustivas para comprobar que se cumplían los requisitos de latencia y rendimiento y que los costos eran bajos. El recomendador de inferencias elimina esta complejidad al ayudarle a hacer lo siguiente:

  • Comience en cuestión de minutos con una recomendación de instancias.

  • Realice pruebas de carga en todos los tipos de instancias para obtener recomendaciones sobre la configuración de sus puntos de conexión en cuestión de horas.

  • Ajuste automáticamente los parámetros del servidor de contenedores y modelos, y realice optimizaciones de modelos para un tipo de instancia determinado.

R: Los SageMaker puntos finales son HTTP REST puntos finales que utilizan un servidor web en contenedores, que incluye un servidor modelo. Estos contenedores se encargan de cargar y atender las solicitudes de un modelo de machine learning. Implementan un servidor web que responde a /invocations y /ping en el puerto 8080.

Los servidores modelo más comunes incluyen TensorFlow Serving TorchServe y Multi Model Server. SageMaker Los contenedores marco tienen estos servidores modelo integrados.

R: Todo lo que aparece en SageMaker Inference está en contenedores. SageMaker proporciona contenedores gestionados para marcos populares como TensorFlow, ySKlearn. HuggingFace Para obtener una lista completa y actualizada de esas imágenes, consulte Imágenes disponibles.

A veces, hay marcos personalizados para los que es posible que necesite crear un contenedor. Este enfoque se conoce como Bring Your Own Container o BYOC. Con BYOC este enfoque, usted proporciona la imagen de Docker para configurar su marco o biblioteca. A continuación, envía la imagen a Amazon Elastic Container Registry (AmazonECR) para poder utilizarla con ella SageMaker. Para ver un ejemplo de un BYOC enfoque, consulta Descripción general de Containers for Amazon. SageMaker

Como alternativa, en lugar de crear una imagen desde cero, puede ampliar un contenedor. Puedes tomar una de las imágenes base que se SageMaker proporcionan y añadir tus dependencias sobre ella en tu Dockerfile.

R: SageMaker ofrece la posibilidad de crear su propio modelo de marco entrenado, del que ya se ha formado fuera, SageMaker e implementarlo en cualquiera de las opciones de SageMaker alojamiento.

SageMaker requiere que empaquete el modelo en un model.tar.gz archivo y que tenga una estructura de directorios específica. Cada marco tiene su propia estructura de modelo (consulte la siguiente pregunta para ver ejemplos de estructuras). Para obtener más información, consulte la SDK documentación de SageMaker Python para TensorFlowPyTorch, y MXNet.

Si bien puede elegir entre imágenes de marco prediseñadas TensorFlow, como PyTorch, y MXNet alojar su modelo entrenado, también puede crear su propio contenedor para alojar sus modelos entrenados en los puntos SageMaker finales. Para ver un tutorial, consulte el ejemplo del cuaderno de Jupyter: Creación de su propio contenedor de algoritmos.

R: SageMaker requiere que los artefactos del modelo estén comprimidos en un .tar.gz archivo o en un archivo tar. SageMaker extrae automáticamente este .tar.gz archivo al /opt/ml/model/ directorio de su contenedor. El tarball no debe contener symlinks ni archivos innecesarios. Si está utilizando uno de los contenedores del framework, como TensorFlow, o PyTorchMXNet, el contenedor espera que su TAR estructura sea la siguiente:

TensorFlow

model.tar.gz/ |--[model_version_number]/ |--variables |--saved_model.pb code/ |--inference.py |--requirements.txt

PyTorch

model.tar.gz/ |- model.pth |- code/ |- inference.py |- requirements.txt # only for versions 1.3.1 and higher

MXNet

model.tar.gz/ |- model-symbol.json |- model-shapes.json |- model-0000.params |- code/ |- inference.py |- requirements.txt # only for versions 1.6.0 and higher

R: ContentType es el MIME tipo de datos de entrada en el cuerpo de la solicitud (el MIME tipo de datos que se envían al punto final). El servidor de modelos utiliza el ContentType para determinar si puede gestionar el tipo proporcionado o no.

Acceptes el MIME tipo de respuesta de inferencia (el MIME tipo de datos que devuelve el punto final). El servidor de modelos utiliza el tipo Accept para determinar si puede gestionar la devolución del tipo proporcionado o no.

Los MIME tipos más comunes incluyen text/csvapplication/json, y. application/jsonlines

R: SageMaker transfiere cualquier solicitud al contenedor del modelo sin modificarla. El contenedor debe contener la lógica necesaria para deserializar la solicitud. Para obtener información sobre los formatos definidos para los algoritmos integrados, consulte Formatos de datos comunes para la inferencia. Si está creando su propio contenedor o utilizando un contenedor SageMaker Framework, puede incluir la lógica para aceptar el formato de solicitud que prefiera.

Del mismo modo, SageMaker también devuelve la respuesta sin modificaciones y, a continuación, el cliente debe deserializar la respuesta. En el caso de los algoritmos integrados, devuelven las respuestas en formatos específicos. Si está creando su propio contenedor o utilizando un contenedor SageMaker Framework, puede incluir la lógica para devolver una respuesta en el formato que elija.

Utilice la API llamada Invoke Endpoint para hacer inferencias con respecto a su punto final.

Al pasar la entrada como carga útil al InvokeEndpointAPI, debe proporcionar el tipo de datos de entrada correcto que espera el modelo. Al pasar una carga útil en la InvokeEndpoint API llamada, los bytes de la solicitud se reenvían directamente al contenedor del modelo. Por ejemplo, para una imagen, puede utilizar application/jpeg para el ContentType y asegurarse de que su modelo pueda realizar inferencias con este tipo de datos. Esto se aplica al vídeo o a cualquier otro tipo de entrada con la que pueda estar trabajando. JSON CSV

Otro factor que tener en cuenta son los límites de tamaño de la carga útil. En términos de puntos de conexión en tiempo real y sin servidor, el límite de carga útil es de 6 MB. Puede dividir el vídeo en varios fotogramas e invocar el punto de conexión con cada fotograma de forma individual. Como alternativa, si su caso de uso lo permite, puede enviar todo el vídeo de la carga útil mediante un punto de conexión asíncrono, que admita cargas útiles de hasta 1 GB.

Para ver un ejemplo que muestra cómo ejecutar la inferencia por visión artificial en vídeos de gran tamaño con la inferencia asíncrona, consulte esta entrada de blog.

Inferencia en tiempo real

Los siguientes FAQ elementos responden a preguntas comunes sobre la inferencia SageMaker en tiempo real.

R: Puede crear un SageMaker punto final mediante herramientas AWS compatibles AWS SDKs, como SageMaker Python SDK AWS Management Console AWS CloudFormation, y. AWS Cloud Development Kit (AWS CDK)

Hay tres entidades clave en la creación de puntos finales: un SageMaker modelo, una configuración de SageMaker punto final y un SageMaker punto final. El SageMaker modelo apunta hacia los datos y la imagen del modelo que está utilizando. La configuración del punto de conexión define las variantes de producción, que pueden incluir el tipo de instancia y el número de instancias. A continuación, puede utilizar la llamada create_endpoint o la API llamada .deploy () SageMaker para crear un punto final utilizando los metadatos de la configuración de su modelo y punto final.

R: No, puedes usar las distintas opciones AWS SDKs (consulta Invoke/Create para ver si están disponiblesSDKs) o incluso llamar directamente a la web correspondiente. APIs

R: Un punto final multimodelo es una opción de inferencia en tiempo real que proporciona. SageMaker Con los puntos de conexión multimodelo, puede alojar miles de modelos en un punto de conexión. El servidor multimodelo es un marco de código abierto para ofrecer modelos de machine learning. Proporciona las funciones de administración de modelos y HTTP front-end que requieren los terminales multimodelo para alojar varios modelos en un único contenedor, cargar modelos en el contenedor y descargarlos de forma dinámica y realizar inferencias en un modelo cargado específico.

R: La inferencia SageMaker en tiempo real admite varias arquitecturas de despliegue de modelos, como puntos finales multimodelo, puntos finales multicontenedor y canalizaciones de inferencia en serie.

Terminales multimodelo (MME): MME permiten a los clientes implementar miles de modelos hiperpersonalizados de forma rentable. Todos los modelos se implementan en una flota de recursos compartidos. MMEfunciona mejor cuando los modelos tienen un tamaño y una latencia similares y pertenecen al mismo marco de aprendizaje automático. Estos puntos de conexión son ideales para cuando no es necesario llamar al mismo modelo en todo momento. Puede cargar dinámicamente los modelos respectivos en el SageMaker punto final para atender su solicitud.

Terminales multicontenedor (MCE): MCE permite a los clientes implementar 15 contenedores diferentes con diversos marcos y funcionalidades de aprendizaje automático sin necesidad de arranques en frío y utilizando solo un SageMaker punto final. Puede invocar directamente estos contenedores. MCEes ideal para cuando se quieren guardar todos los modelos en la memoria.

Canalizaciones de inferencia en serie (SIP): se pueden utilizar SIP para encadenar de 2 a 15 contenedores en un único punto final. SIPes especialmente adecuado para combinar el preprocesamiento y la inferencia de modelos en un punto final y para operaciones de baja latencia.

Inferencia sin servidor

Los siguientes FAQ elementos responden a preguntas frecuentes sobre Amazon SageMaker Serverless Inference.

R: Implemente modelos con Amazon SageMaker Serverless Inference es una opción de provisión de modelos sin servidor diseñada específicamente que facilita la implementación y el escalado de los modelos de ML. Los puntos de conexión de inferencias sin servidor inician automáticamente los recursos de computación y los amplían y reducen en función del tráfico, lo que elimina la necesidad de elegir tipos de instancias, ejecutar capacidades aprovisionadas o administrar el escalado. Puede especificar los requisitos de memoria para su punto de conexión sin servidor. Solo paga por la duración de la ejecución del código de inferencia y la cantidad de datos procesados, no por los períodos de inactividad.

R: La inferencia sin servidor simplifica la experiencia del desarrollador al eliminar la necesidad de aprovisionar la capacidad por adelantado y administrar las políticas de escalado. La inferencia sin servidor puede escalar instantáneamente de decenas a miles de inferencias en cuestión de segundos en función de los patrones de uso, lo que la hace ideal para aplicaciones de machine learning con tráfico intermitente o impredecible. Por ejemplo, un servicio de chatbot que utiliza una empresa de procesamiento de nóminas experimenta un aumento de las consultas al final del mes, mientras que el tráfico es intermitente durante el resto del mes. En estos casos, el aprovisionamiento de instancias durante todo el mes no resulta rentable, ya que se acaba pagando por los períodos de inactividad.

La inferencia sin servidor ayuda a abordar este tipo de casos de uso al proporcionarle un escalado automático y rápido desde el primer momento sin necesidad de pronosticar el tráfico por adelantado ni de administrar las políticas de escalado. Además, solo paga por el tiempo de computación necesario para ejecutar el código de inferencia y para el procesamiento de datos, lo que lo hace ideal para cargas de trabajo con tráfico intermitente.

R: Su terminal sin servidor tiene un RAM tamaño mínimo de 1024 MB (1 GB) y el RAM tamaño máximo que puede elegir es de 6144 MB (6 GB). Los tamaños de memoria que puede elegir son 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB o 6144 MB. La inferencia sin servidor asigna automáticamente los recursos de procesamiento proporcionales a la memoria que seleccione. Si eliges un tamaño de memoria mayor, tu contenedor tendrá acceso a más. vCPUs

Seleccione el tamaño de memoria de su punto de conexión de acuerdo con el tamaño de su modelo. Por lo general, el tamaño de la memoria debe ser al menos tan grande como el tamaño del modelo. Es posible que tengas que realizar una evaluación comparativa para elegir la memoria adecuada para tu modelo en función de tu latenciaSLAs. Los incrementos de tamaño de memoria tienen precios diferentes; consulta la página de SageMaker precios de Amazon para obtener más información.

Transformación por lotes

Los siguientes FAQ elementos responden a preguntas frecuentes sobre SageMaker Batch Transform.

R: Para formatos de archivo específicosCSV, como Recordio yTFRecord, SageMaker puede dividir sus datos en minilotes de un solo registro o de varios registros y enviarlos como una carga útil a su contenedor de modelos. Cuando el valor BatchStrategy esMultiRecord, SageMaker envía el número máximo de registros de cada solicitud, hasta el límite. MaxPayloadInMB Cuando el valor de BatchStrategy esSingleRecord, SageMaker envía los registros individuales de cada solicitud.

R: El tiempo de espera máximo para la transformación por lotes es de 3600 segundos. El tamaño máximo de la carga útil de un registro (por minilote) es de 100 MB.

R: Si utiliza el CreateTransformJobAPI, puede reducir el tiempo que se tarda en completar los trabajos de transformación por lotes utilizando valores óptimos para parámetros como MaxPayloadInMBMaxConcurrentTransforms, oBatchStrategy. El valor ideal para MaxConcurrentTransforms es igual al número de procesos de computación en el trabajo de transformación por lotes. Si utiliza la SageMaker consola, puede especificar estos valores de parámetros óptimos en la sección Configuración adicional de la página de configuración del trabajo de transformación por lotes. SageMaker busca automáticamente los ajustes de parámetros óptimos para los algoritmos integrados. Para los algoritmos personalizados, proporcione estos valores a través de un punto de conexión execution-parameters.

R: Batch Transform admite CSV yJSON.

Inferencia asíncrona

Los siguientes FAQ elementos responden a preguntas generales comunes sobre la inferencia SageMaker asincrónica.

R: La inferencia asíncrona pone en cola las solicitudes de inferencia entrantes y las procesa de forma asíncrona. Esta opción es ideal para solicitudes con cargas útiles grandes o tiempos de procesamiento prolongados que deben procesarse a medida que llegan. Si lo desea, puede configurar los ajustes de escalado automático para reducir verticalmente el recuento de instancias a cero cuando no se estén procesando solicitudes de forma activa.

R: Amazon SageMaker admite el escalado automático (escalado automático) de su punto final asíncrono. El escalado automático ajusta dinámicamente el número de instancias aprovisionadas para un modelo en respuesta a los cambios en su carga de trabajo. A diferencia de lo que SageMaker admiten otros modelos alojados, con la inferencia asíncrona también puede reducir sus instancias de puntos de conexión asíncronos a cero. Las solicitudes que se reciben cuando no hay ninguna instancia se ponen en cola para su procesamiento cuando el punto de conexión escale verticalmente. Para obtener más información, consulte Escalado automático de un punto de conexión asíncrono.

Amazon SageMaker Serverless Inference también se reduce automáticamente a cero. No lo verá porque SageMaker gestiona el escalado de sus puntos de conexión sin servidor, pero si no hay tráfico, se aplica la misma infraestructura.