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.
Preguntas frecuentes sobre alojamiento de modelos
Consulte las siguientes preguntas frecuentes para obtener respuestas a las preguntas más frecuentes sobre alojamiento de inferencias de SageMaker AI.
Alojamiento general
Los siguientes elementos de preguntas frecuentes responden a preguntas generales frecuentes sobre las inferencias en SageMaker AI.
R: Después de crear y entrenar los modelos, Amazon SageMaker AI ofrece cuatro opciones para implementarlos de manera que pueda 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 25 MB y tiempos de procesamiento de hasta 60 segundos para las respuestas regulares y 8 segundos para las respuestas de transmisión. 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 60 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.
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 las inferencias de SageMaker AI, debe elegir la opción de alojamiento adecuada para su caso de uso. También puede utilizar características de inferencia como Amazon SageMaker AI Savings Plans
R: Debe utilizar el Recomendador de inferencias de Amazon SageMaker si necesita recomendaciones para la configuración correcta de los puntos de conexión con el fin de mejorar el rendimiento y reducir los costos. 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 puntos de conexión de SageMaker AI son puntos de conexión HTTP REST que utilizan un servidor web en contenedores, que incluye un servidor de modelos. 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 de modelos más comunes incluyen TensorFlow Serving, TorchServe y Multi Model Server. Los contenedores de marcos de SageMaker AI tienen estos servidores de modelos integrados.
R: Todo lo que hay en las inferencias de SageMaker AI está en contenedores. SageMaker AI proporciona contenedores administrados para marcos populares como TensorFlow, SKlearn y 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 el enfoque BYOC, usted proporciona la imagen de Docker para configurar su marco o biblioteca. A continuación, inserta la imagen en Amazon Elastic Container Registry (Amazon ECR) para poder utilizar la imagen con SageMaker AI.
Como alternativa, en lugar de crear una imagen desde cero, puede ampliar un contenedor. Puede tomar una de las imágenes de base que proporciona SageMaker AI y agregar sus dependencias sobre ella en su Dockerfile.
R: SageMaker AI ofrece la posibilidad de crear su propio modelo de marco entrenado que haya entrenado fuera de SageMaker AI e implementarlo en cualquiera de las opciones de alojamiento de SageMaker AI.
SageMaker AI requiere que empaquete el modelo en un archivo model.tar.gz 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 documentación del SageMaker Python SDK para TensorFlow
Si bien para alojar su modelo entrenado puede elegir entre imágenes de marco prediseñadas, como TensorFlow, PyTorch y MXNet, también puede crear su propio contenedor para alojar sus modelos entrenados en los puntos de conexión de SageMaker AI. Para ver un tutorial, consulte el ejemplo del cuaderno de Jupyter: Creación de su propio contenedor de algoritmos
R: SageMaker AI requiere que los artefactos del modelo se compriman en un archivo .tar.gz o en un tarball. SageMaker AI extrae automáticamente este archivo .tar.gz en el directorio /opt/ml/model/ de su contenedor. El tarball no debe contener symlinks ni archivos innecesarios. Si utiliza uno de los contenedores del marco, como TensorFlow, PyTorch o MXNet, el contenedor espera que su estructura TAR 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 tipo MIME de los datos de entrada en el cuerpo de la solicitud (el tipo MIME de los datos que se envían a su punto de conexión). El servidor de modelos utiliza el ContentType para determinar si puede gestionar el tipo proporcionado o no.
Accept es el tipo MIME de la respuesta de inferencia (el tipo MIME de los datos que devuelve su punto de conexión). El servidor de modelos utiliza el tipo Accept para determinar si puede gestionar la devolución del tipo proporcionado o no.
Los tipos MIME más comunes incluyen text/csv, application/json, y application/jsonlines.
R: SageMaker AI pasa 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 va a crear su propio contenedor o utiliza un contenedor de marco de SageMaker AI, puede incluir la lógica para aceptar el formato de solicitud que prefiera.
Del mismo modo, SageMaker AI 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 va a crear su propio contenedor o utiliza un contenedor de marco de SageMaker AI, puede incluir la lógica para devolver una respuesta en el formato que prefiera.
Utilice la llamada a la API Invoke Endpoint para hacer inferencias a su punto de conexión.
Al pasar la entrada como carga útil a la API InvokeEndpoint, debe proporcionar el tipo de datos de entrada correcto que espera el modelo. Al transferir una carga útil a la llamada a la API InvokeEndpoint, 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 a JSON, CSV, vídeo o cualquier otro tipo de entrada con la que pueda estar trabajando.
Otro factor que tener en cuenta son los límites de tamaño de la carga útil. Los límites de carga útil son de 25 MB para los puntos de conexión en tiempo real y de 4 MB para los puntos de conexión sin servidor. 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 elementos de preguntas frecuentes responden a preguntas frecuentes sobre las inferencias en tiempo real en SageMaker AI.
R: Puede crear un punto de conexión de SageMaker AI mediante herramientas compatibles con AWS, como los AWS SDK, el SageMaker Python SDK, la Consola de administración de AWS, la AWS CloudFormation y la AWS Cloud Development Kit (AWS CDK).
Hay tres entidades clave en la creación de puntos de conexión: un modelo de SageMaker AI, una configuración de punto de conexión de SageMaker AI y un punto de conexión de SageMaker AI. El modelo de SageMaker AI 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 a la API create_endpoint
R: No, puede usar los distintos AWS SDK (consulte Invoke/Create para ver los SDK disponibles) o incluso llamar directamente a las API web correspondientes.
R: Un punto de conexión multimodelo es una opción de inferencia en tiempo real que ofrece SageMaker AI. Con los puntos de conexión multimodelo, puede alojar miles de modelos en un punto de conexión. El servidor multimodelo
R: La inferencia en tiempo real de SageMaker AI admite varias arquitecturas de implementación de modelos, como puntos de conexión multimodelo, puntos de conexión multicontenedor y canalizaciones de inferencia en serie.
Puntos de conexión multimodelo (MME): un MME permite a los clientes implementar miles de modelos hiperpersonalizados de forma rentable. Todos los modelos se implementan en una flota de recursos compartidos. El MME funciona mejor cuando los modelos tienen un tamaño y una latencia similares y pertenecen al mismo marco de ML. 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 punto de conexión de SageMaker AI para atender su solicitud.
Puntos de conexión multicontenedor (MCE): un MCE permite a los clientes implementar 15 contenedores diferentes con diversos marcos y funcionalidades de ML sin arranques en frío y, al mismo tiempo, usar un solo punto de conexión de SageMaker. Puede invocar directamente estos contenedores. Un MCE es ideal para cuando quiera guardar todos los modelos en la memoria.
Canalizaciones de inferencia en serie (SIP): puede utilizar una SIP para encadenar de 2 a 15 contenedores en un único punto de conexión. Una SIP resulta especialmente adecuada para combinar el preprocesamiento y la inferencia de modelos en un punto de conexión y para operaciones de baja latencia.
Inferencia sin servidor
Los siguientes elementos de preguntas frecuentes responden a preguntas generales frecuentes sobre las inferencias sin servidor de Amazon SageMaker.
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 punto de conexión sin servidor tiene un tamaño de RAM mínimo de 1024 MB (1 GB) y el tamaño máximo de RAM 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 elige un tamaño de memoria mayor, su contenedor tendrá acceso a más vCPU.
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 deba realizar una evaluación comparativa para elegir la memoria adecuada para su modelo en función de sus SLA de latencia. Los incrementos de tamaño de la memoria tienen precios diferentes; consulte la página de precios de Amazon SageMaker
Transformación por lotes
Los siguientes elementos de preguntas frecuentes responden a preguntas frecuentes sobre la transformación por lotes en SageMaker AI.
R: Para formatos de archivo específicos, como CSV, RecordIO y TFRecord, SageMaker AI puede dividir los datos en minilotes de uno o varios registros y enviarlos como carga útil al contenedor del modelo. Cuando el valor de BatchStrategy es MultiRecord, SageMaker AI envía el número máximo de registros de cada solicitud, hasta un límite de MaxPayloadInMB. Cuando el valor de BatchStrategy es SingleRecord, SageMaker AI envía registros individuales en 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 está utilizando la API CreateTransformJob, puede reducir el tiempo necesario para completar los trabajos de transformación por lotes utilizando valores óptimos para parámetros como MaxPayloadInMB, MaxConcurrentTransforms o BatchStrategy. El valor ideal para MaxConcurrentTransforms es igual al número de procesos de computación en el trabajo de transformación por lotes. Si usa la consola de SageMaker AI, podrá especificar estos valores óptimos de parámetros en la sección Configuración adicional de la página Configuración del trabajo de transformación por lotes. SageMaker AI 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: La transformación por lotes es compatible con CSV y JSON.
Inferencia asíncrona
Los siguientes elementos de preguntas frecuentes responden a preguntas generales frecuentes sobre las inferencias asíncronas en SageMaker AI.
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 AI admite el escalado automático (autoescalado) de su punto de conexión 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 otros modelos alojados compatibles con SageMaker AI, con la inferencia asíncrona también puede reducir verticalmente 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.
La inferencia sin servidor de Amazon SageMaker también se reduce verticalmente a cero de forma automática. Esto no lo verá, porque SageMaker AI administra el escalado de sus puntos de conexión sin servidor, pero si no experimenta tráfico, se aplica la misma infraestructura.