Comparação entre PyTorch e TensorFlow em 2022
(assemblyai.com)-
Costuma-se dizer que o TensorFlow é para uso industrial e o PyTorch para pesquisa, mas isso se baseia em informações antigas
-
Considerações práticas: em geral, a comparação acaba se resumindo a 3 pontos
→ disponibilidade de modelos: quantos modelos podem ser usados publicamente
→ infraestrutura de deploy: com quanta eficiência é possível fazer deploy
→ ecossistema: variedade de ambientes/hardwares
Model Availability
-
Tanto PyTorch quanto TensorFlow têm seus próprios repositórios oficiais de modelos
-
HuggingFace
→ 85% só podem ser usados no PyTorch, e mesmo entre os modelos não exclusivos, 50% podem ser usados. No total, apenas 16% podem ser usados no TensorFlow (só 8% apenas em TF)
→ No caso dos 30 modelos mais populares, todos estão disponíveis no PyTorch, mas no TensorFlow apenas 18 deles estão disponíveis
- Artigos de pesquisa
→ o uso de PyTorch nos artigos submetidos a cada ano continua aumentando
→ começou em 7% em 2017 e em 2021 já chegou a quase 80%
→ muita gente escolheu PyTorch por causa da dificuldade do TensorFlow 1
→ essas dificuldades melhoraram bastante no TensorFlow 2, lançado em 2019, mas o PyTorch já havia se consolidado como foco de pesquisa
→ 55% dos pesquisadores que usavam TensorFlow em 2018 migraram para PyTorch em 2019
→ 85% dos pesquisadores que usavam PyTorch em 2018 continuaram usando PyTorch em 2019
- Segundo dados do Papers With Code
→ o TensorFlow segue em queda, enquanto PyTorch e outros frameworks vêm sendo cada vez mais usados
→ essa tendência continuou mesmo após o lançamento do TensorFlow 2. Não foi suficiente para reverter as dificuldades vividas no TF1
-
Em resumo, em disponibilidade de modelos o PyTorch domina o mercado
-
Outras exceções
→ o GoogleAI usava principalmente TensorFlow, mas o Google Brain usa JAX/Flax
→ a DeepMind também adotou JAX e desenvolveu o Haiku, uma biblioteca de redes neurais para JAX (Sonnet for JAX)
→ JAX: framework criado separadamente pelo Google. Está ganhando popularidade no lado de pesquisa
Deployment
- O TensorFlow desde o início foi otimizado para aplicações orientadas a deploy
→ com TensorFlow Serving, TensorFlow Lite etc., é possível fazer deploy sem dor em cloud/servidor/mobile/dispositivos IoT
- O PyTorch era muito fraco do ponto de vista de deploy, mas nos últimos anos tem se esforçado para reduzir essa diferença
→ TorchServe e PyTorch Live
- Em resumo, do ponto de vista de deploy, o TensorFlow ainda é superior
→ em especial, a possibilidade de usar o TFLite localmente e em dispositivos Coral é algo essencial também para outras indústrias
→ o PyTorch Live foca apenas em mobile, e o TorchServe ainda está em estágio inicial
Ecosystems
- PyTorch
→ existe o PyTorch Hub oficial: tem vários modelos de Audio/Vision/NLP etc.
→ SpeechBrain: toolkit oficial open source de fala, com muitos recursos como ASR/reconhecimento e autenticação de locutor
→ há várias ferramentas e bibliotecas, incluindo o Fast.ai
→ TorchElastic: projeto colaborativo entre AWS e Facebook
→ TorchX: biblioteca para desenvolvimento e deploy rápido de machine learning
→ PyTorch Lightning: Keras of PyTorch
- TensorFlow
→ TensorFlow Hub oficial: diversos modelos, incluindo BERT
→ Model Garden: repositório de código-fonte para modelos SOTA(State-of-the-ART)
→ TensorFlow Extended(TFX): plataforma E2E para deploy de modelos
→ Vertex AI: plataforma unificada de machine learning do Google Cloud
→ Media Pipe: framework multimodal e multiplataforma para criar pipelines de machine learning com recursos como reconhecimento facial, hand tracking e reconhecimento de objetos
→ Coral: toolkit criado para dar suporte a produtos com AI embarcada localmente (IOT)
→ TensorFlow.js: biblioteca JavaScript para machine learning
→ TensorFlow Cloud: conecta o ambiente local de desenvolvimento ao Google Cloud
→ Colab: ambiente de notebook baseado em cloud (parecido com Jupyter)
→ Playground: ferramenta educacional excelente para entender o básico de redes neurais
→ Datasets: armazena datasets que o Google publica periodicamente (usuários de PyTorch também podem usar)
- Em resumo, o TensorFlow tem um ecossistema superior
→ o Google investiu muito nisso ao longo do tempo
→ em alguns campos, também é melhor para conectar com o Google Cloud ou portar para dispositivos Coral
Então, qual dos dois devo usar?
- Se você está na indústria, a escolha pode variar dependendo do setor em que atua (o original traz um fluxograma para facilitar a escolha)
→ se você usa deep learning em ambiente industrial, provavelmente já usa TensorFlow e pode continuar com ele
→ por causa do TorchServe, também vale considerar PyTorch
→ se for mobile, use PyTorch Live; se a entrada for áudio/vídeo, use TensorFlow
→ se for usar AI em IoT, TensorFlow Lite + Coral
- E se for pesquisador?
→ provavelmente você já usa PyTorch e pode continuar com ele
→ como exceção, se trabalhar com Reinforcement Learning, considere TensorFlow
→ se não quiser usar TensorFlow, JAX também merece consideração
→ independentemente da escolha, em 2022 vale a pena ficar de olho no JAX
- E se for professor?
→ pode variar conforme o objetivo do curso
→ para formar engenheiros que vão usar machine learning imediatamente no mercado, TensorFlow
→ para entender deep learning e modelos de deep learning, PyTorch
- E se estiver mudando de carreira?
→ tanto PyTorch quanto TensorFlow são boas opções
→ escolha o que for mais fácil de usar
→ se você não estiver preso a um framework específico, o TensorFlow, usado como padrão na indústria, pode ser melhor
→ na hora de buscar emprego ou contratar, o lado do TensorFlow se saía melhor
- E se fizer deep learning como hobby?
→ depende do que você quer fazer, mas no geral PyTorch é melhor
- E se for totalmente iniciante em deep learning?
→ a recomendação é começar com Keras
→ se busca um ambiente mais parecido com Python nativo, PyTorch, especialmente PyTorch Lightning
1 comentários
Também é interessante comparar com as discussões que surgiram em 2019/2020.
O estado atual dos frameworks de machine learning [2019] https://pt.news.hada.io/topic?id=696
Especialistas em machine learning preveem a direção da IA em 2020 https://pt.news.hada.io/topic?id=1213
Entrevista com pesquisador autodidata em IA que entrou no Google https://pt.news.hada.io/topic?id=1347
Ecossistema TensorFlow: do desenvolvimento ao deploy de machine learning https://pt.news.hada.io/topic?id=1757
Curso intensivo de machine learning criado pelo Google com TensorFlow [em coreano] https://pt.news.hada.io/topic?id=1052