A força do núcleo do PyTorch está no front end imperativo, que permite a prototipação e experimentação interativa por meio de seu modelo de programação adaptável. O primeiro lançamento do PyTorch ocorreu em 2017 e teve mais de 1.1 milhões de downloads. Jia acredita que sua popularidade é devido a:
Sua velocidade, produtividade e habilidade para suportar os modelos de tecnologia de ponta como grafos dinâmicos, facilitam sua popularidade e importância como ferramenta de desenvolvimento para pesquisadores de IA
Um exemplo bem conhecido do que podemos fazer com o PyTorch é o projeto Unpaired Image-to-Image Translation usando Cycle-Consistent Adversarial Networks construído pelos cientistas da computação da Universidade de Berkeley. Esse projeto aprende com a entrada de imagens e mapeia a saída usando um conjunto de treinamento com imagens alinhadas.
A versão atual do PyTorch teve algum sucesso e forneceu flexibilidade para os pesquisadores de IA, desenvolvimento e desempenho em escala de produção, mas teve alguns desafios. Jia explicou:
Dado seu forte acoplamento com Python, frequentemente precisamos traduzir códigos de pesquisas, em scripts de treinamento ou modelos treinados, para a representação no modo de grafos do Caffe2 para executar em escala na produção. O executor com base em grafos do Caffe2 permite que o desenvolvedor obtenha a vantagem das otimizações que estão no estado da arte com transformações de grafos, reuso eficiente da memória, e uma integração ajustada com a interface do hardware.
Alternativamente, o PyTorch 1.0 integra as capacidades do Caffe2 e ONNX, e combina com a habilidade do PyTorch para fornecer um meio desacoplado entre a prototipação de pesquisa e a publicação em produção. Aproveitando o Caffe2, as empresas que constroem dependências com o PyTorch também podem esperar suporte e confiabilidade em grande escala. O blog do PyTorch explica a importância de usar o Caffe2:
Startups, grandes empresas e todos que queira construir um produto com o PyTorch pediram suporte em produção. No Facebook (o maior stakeholder do PyTorch) temos Caffe2, que vem sendo usado em produção, executando nos datacenters e entregue em mais de 1 bilhão de smartphones, abrangendo oito gerações do iPhone e seis gerações das arquiteturas de CPU do Android. Tem inferência otimizada para servidores Intel / ARM, suporta TensorRT e todos os bits necessários para produção. Considerando todo esse valor que vem junto com a plataforma, a equipe do PyTorch decidiu juntar em produção o PyTorch com o Caffe2 para dar o nível de prontidão em produção.
O ONNX é um formato open source para representar modelos de deep learning que podem variar entre diferentes frameworks de IA. No PyTorch 1.0, o ONNX é suportado nativamente com a exportação do modelo. Também fornece uma interface para aceleração em tempo de execução e bibliotecas específicas de hardware. Jia menciona alguns dos benefícios dessa abordagem:
Isso dá aos desenvolvedores liberdade total para misturar e combinar os melhores frameworks e ferramentas de IA sem ter que fazer uso de customizações intensivas dos recursos.
O lançamento do PyTorch 1.0 é esperado agora para o verão de 2018 e os pull requests podem ser visualizados no repositório do GitHub.