TorchServe - AMIs de deep learning da AWS

TorchServe

O TorchServe é uma ferramenta flexível para apresentar modelos de aprendizado profundo exportados do PyTorch. O TorchServe vem pré-instalado com a AMI de aprendizado profundo com Conda.

Para obter mais informações sobre o uso do TorchServe, consulte a Documentação do servidor modelo para PyTorch.

Tópicos

Fornecer um modelo de classificação de imagem no TorchServe

Este tutorial mostra como fornecer um modelo de classificação de imagem com o TorchServe. Ele usa um modelo DenseNet-161 fornecido pelo PyTorch. Quando o servidor está em execução, ele recebe as solicitações de previsão. Quando você carrega uma imagem, neste caso, uma imagem de um gatinho, o servidor retorna uma estimativa das cinco principais classes correspondentes das classes em que o modelo foi treinado.

Para fornecer um exemplo de modelo de classificação de imagem no TorchServe
  1. Conecte-se a uma instância do Amazon Elastic Compute Cloud (Amazon EC2) da AMI de deep learning com o Conda v34 ou posterior.

  2. Ative o ambiente pytorch_p310.

    source activate pytorch_p310
  3. Clone o repositório do TorchServe e crie um diretório para armazenar os modelos. 

    git clone https://github.com/pytorch/serve.git mkdir model_store
  4. Arquive o modelo usando o arquivador de modelos. O parâmetro extra-files usa um arquivo do repositório TorchServe, portanto, atualize o caminho, se necessário. Para obter mais informações sobre o arquivador de modelos, consulte Arquivador do modelo Torch para 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
  5. Execute o TorchServe para iniciar um endpoint. A adição de > /dev/null silencia a saída do log.

    torchserve --start --ncs --model-store model_store --models densenet161.mar > /dev/null
  6. Faça download de uma imagem de um gatinho e a envie para o endpoint de previsão do TorchServe:

    curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg curl http://127.0.0.1:8080/predictions/densenet161 -T kitten.jpg

    O endpoint de previsão retorna uma previsão em JSON semelhante às cinco principais previsões a seguir, em que a imagem tem uma probabilidade de 47% de conter um gato egípcio, seguida por uma chance de 46% de ter um gato malhado.

    { "tiger_cat": 0.46933576464653015, "tabby": 0.463387668132782, "Egyptian_cat": 0.0645613968372345, "lynx": 0.0012828196631744504, "plastic_bag": 0.00023323058849200606 }
  7. Ao terminar o teste, interrompa o servidor.

    torchserve --stop

Outros exemplos

O TorchServe tem vários exemplos que você pode executar na instância da DLAMI. Você pode visualizá-los na página de exemplos no repositório do projeto do projeto TorchServe.

Mais informações

Para conferir mais documentos do TorchServe, incluindo como configurar o TorchServe com o Docker, além dos recursos mais recentes do TorchServe, consulte a página do projeto TorchServe no GitHub.