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
-
Conecte-se a uma instância do Amazon Elastic Compute Cloud (Amazon EC2) da AMI de deep learning com o Conda v34 ou posterior.
-
Ative o ambiente
pytorch_p310.source activate pytorch_p310 -
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 -
Arquive o modelo usando o arquivador de modelos. O parâmetro
extra-filesusa um arquivo do repositórioTorchServe, 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 -
Execute o TorchServe para iniciar um endpoint. A adição de
> /dev/nullsilencia a saída do log.torchserve --start --ncs --model-store model_store --models densenet161.mar > /dev/null -
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.jpgO 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 } -
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