TorchServe
TorchServe es una herramienta flexible para servir modelos de aprendizaje profundo que se han exportado desde PyTorch. TorchServe viene preinstalada con la AMI de aprendizaje profundo con Conda.
Para obtener más información sobre el uso de TorchServe, consulte la documentación de Model Server for PyTorch
Temas
Servir un modelo de clasificación de imágenes en TorchServe
En este tutorial se muestra cómo servir un modelo de clasificación de imágenes con TorchServe. Utilice un modelo DenseNet-161 proporcionado por PyTorch. Cuando el servidor está en funcionamiento, escucha las solicitudes de predicción. Al cargar una imagen, en este caso una imagen de un gatito, el servidor devuelve una predicción de las 5 principales clases coincidentes de entre las clases con las que se haya entrenado el modelo.
Para servir un modelo de clasificación de imágenes de ejemplo en TorchServe
-
Conéctese a una instancia de Amazon Elastic Compute Cloud (Amazon EC2) con el AMI de aprendizaje profundo con Conda, v34 o posterior.
-
Active el entorno de
pytorch_p310.source activate pytorch_p310 -
Clone el repositorio de TorchServe y, a continuación, cree un directorio para almacenar los modelos.
git clone https://github.com/pytorch/serve.git mkdir model_store -
Archive el modelo utilizando el archivador de modelos. El parámetro
extra-filesusa un archivo del repositorioTorchServe, así que actualice la ruta si es necesario. Para obtener más información sobre el archivador de modelos, consulte el archivador de Torch Model archiver for TorchServe. wget https://download.pytorch.org/models/densenet161-8d451a50.pth torch-model-archiver --model-name densenet161 --version 1.0 --model-file ./serve/examples/image_classifier/densenet_161/model.py --serialized-file densenet161-8d451a50.pth --export-path model_store --extra-files ./serve/examples/image_classifier/index_to_name.json --handler image_classifier -
Ejecute TorchServe para iniciar un punto de conexión. Al agregar
> /dev/nullse silencia la salida del registro.torchserve --start --ncs --model-store model_store --models densenet161.mar > /dev/null -
Descargue una imagen de un gatito y envíela al punto de conexión de predicción de TorchServe:
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg curl http://127.0.0.1:8080/predictions/densenet161 -T kitten.jpgEl punto de conexión de predicción devuelve una predicción en JSON similar a las siguientes cinco predicciones principales, donde la imagen tiene una probabilidad del 47 % de contener un gato egipcio, seguida de una probabilidad del 46 % de que sea un lince o un gato montés:
{ "tiger_cat": 0.46933576464653015, "tabby": 0.463387668132782, "Egyptian_cat": 0.0645613968372345, "lynx": 0.0012828196631744504, "plastic_bag": 0.00023323058849200606 } -
Cuando termine la prueba, detenga el servidor.
torchserve --stop
Otros ejemplos
TorchServe tiene una variedad de ejemplos que puede ejecutar en su instancia de DLAMI. Puede verlos en la página de ejemplos del repositorio del proyecto TorchServe
Más información
Para obtener más documentación sobre TorchServe, incluida la forma de configurar TorchServe con Docker y las últimas características de TorchServe, consulta la página del proyecto TorchServe