15 poin oleh xguru 2021-12-20 | 1 komentar | Bagikan ke WhatsApp
  • Biasanya orang mengatakan TensorFlow untuk industri dan PyTorch untuk riset, tetapi itu berdasarkan informasi lama

  • Pertimbangan praktis: biasanya bermuara pada 3 perbandingan

→ Ketersediaan model: seberapa banyak model yang tersedia untuk digunakan secara publik

→ Infrastruktur deployment: seberapa efisien deployment dapat dilakukan

→ Ekosistem: berbagai lingkungan/perangkat keras

Model Availability

  • Baik PyTorch maupun TensorFlow sama-sama memiliki repositori model resmi sendiri

  • HuggingFace

→ 85% hanya dapat digunakan di PyTorch, dan untuk model yang tidak eksklusif pun 50% dapat digunakan. Hanya 16% dari keseluruhan yang bisa digunakan di TensorFlow (hanya 8% khusus TF)

→ Untuk 30 model paling populer, semuanya tersedia di PyTorch tetapi di TensorFlow hanya 18 yang tersedia

  • Makalah riset

→ Penggunaan PyTorch dalam makalah yang diajukan setiap tahun terus meningkat

→ Dimulai dari 7% pada 2017 dan pada 2021 mencapai hampir 80%

→ Banyak yang memilih PyTorch karena sulitnya TensorFlow 1

→ Kesulitan ini banyak diperbaiki di TensorFlow 2 yang dirilis pada 2019, tetapi PyTorch sudah terlanjur memantapkan diri sebagai pusat riset

→ Dari peneliti yang menggunakan TensorFlow pada 2018, 55% pindah ke PyTorch pada 2019

→ Dari peneliti yang menggunakan PyTorch pada 2018, 85% tetap menggunakan PyTorch pada 2019

  • Menurut data Papers With Code

→ TensorFlow terus menurun, sementara PyTorch dan framework lain semakin banyak digunakan

→ Tren ini tetap berlanjut bahkan setelah rilis TensorFlow 2. Tidak cukup kuat untuk membalikkan kesulitan yang dialami pada TF1

  • Kesimpulannya, dalam hal ketersediaan model PyTorch mendominasi pasar

  • Pengecualian lain

→ GoogleAI terutama menggunakan TensorFlow, tetapi Google Brain menggunakan JAX/Flax

→ DeepMind juga mengadopsi JAX dan mengembangkan Haiku, pustaka jaringan saraf untuk JAX (Sonnet for JAX)

→ JAX: framework terpisah yang dibuat Google. Sedang makin populer di sisi riset

Deployment

  • TensorFlow sejak awal dioptimalkan untuk aplikasi yang berorientasi deployment

→ Dengan TensorFlow Serving, TensorFlow Lite, dan lainnya, deployment ke cloud/server/perangkat mobile/perangkat IoT dapat dilakukan tanpa banyak kesulitan

  • PyTorch sangat tertinggal dari sudut pandang deployment, tetapi dalam beberapa tahun terakhir berupaya memperkecil kesenjangan ini

→ TorchServe dan PyTorch Live

  • Kesimpulannya, untuk saat ini TensorFlow masih lebih unggul dari sisi deployment

→ Khususnya kemampuan menggunakan TFLite di perangkat lokal dan Coral juga sangat dibutuhkan di industri lain

→ PyTorch Live hanya berfokus pada mobile, dan TorchServe masih dalam tahap awal

Ecosystems

  • PyTorch

→ Ada PyTorch Hub resmi: memiliki berbagai model seperti Audio/Vision/NLP

→ SpeechBrain: toolkit speech open source resmi, memiliki banyak fitur seperti ASR/pengenalan pembicara/verifikasi, dll.

→ Ada berbagai alat dan pustaka termasuk Fast.ai

→ TorchElastic: proyek kolaborasi AWS+Facebook

→ TorchX: pustaka untuk pengembangan dan deployment machine learning yang cepat

→ PyTorch Lightning: Keras of PyTorch

  • TensorFlow

→ TensorFlow Hub resmi: berbagai model termasuk BERT

→ Model Garden: repositori source code untuk model SOTA(State-of-the-ART)

→ TensorFlow Extended(TFX): platform E2E untuk deployment model

→ Vertex AI: platform machine learning terpadu milik Google Cloud

→ Media Pipe: framework multimodal lintas platform untuk membangun pipeline machine learning yang membuat fitur seperti pengenalan wajah, pelacakan tangan, pengenalan objek, dan lainnya

→ Coral: toolkit yang dibuat untuk mendukung produk dengan AI lokal tertanam (IOT)

→ TensorFlow.js: pustaka JavaScript untuk machine learning

→ TensorFlow Cloud: menghubungkan lingkungan pengembangan lokal ke Google Cloud

→ Colab: lingkungan notebook berbasis cloud (mirip Jupyter)

→ Playground: alat edukasi yang bagus untuk memahami dasar-dasar jaringan saraf

→ Datasets: menyimpan dataset yang dirilis Google secara berkala (juga bisa digunakan pengguna PyTorch)

  • Kesimpulannya, TensorFlow lebih unggul dalam hal ekosistem

→ Google telah banyak berinvestasi selama ini

→ Menghubungkannya ke Google Cloud atau memudahkan porting ke perangkat seperti Coral juga lebih baik di beberapa bidang

Jadi, mana yang sebaiknya dipakai?

  • Jika Anda berada di industri terkait, pilihan bisa berbeda tergantung industri Anda (artikel asli menyediakan flow chart untuk memudahkan pilihan)

→ Jika Anda menggunakan deep learning di lingkungan industri, kemungkinan Anda sudah memakai TensorFlow dan bisa lanjut seperti itu

→ Karena TorchServe, PyTorch juga layak dipertimbangkan

→ Jika mobile, gunakan PyTorch Live; jika input audio/video, gunakan TensorFlow

→ Jika menggunakan AI di IoT, gunakan TensorFlow Lite + Coral

  • Jika Anda peneliti?

→ Kemungkinan Anda sudah memakai PyTorch dan bisa lanjut seperti itu

→ Sebagai pengecualian khusus, jika Anda meneliti Reinforcement Learning, pertimbangkan TensorFlow

→ Jika tidak ingin memakai TensorFlow, JAX juga layak dipertimbangkan

→ Apa pun pilihannya, pada 2022 JAX patut diperhatikan

  • Jika Anda profesor?

→ Itu bisa berbeda tergantung tujuan kurikulum

→ Jika ingin menghasilkan engineer yang bisa langsung memakai machine learning di dunia kerja, pilih TensorFlow

→ Jika ingin memahami deep learning dan model deep learning, pilih PyTorch

  • Jika Anda berganti karier?

→ PyTorch / TensorFlow keduanya opsi yang baik

→ Pilih yang lebih mudah digunakan

→ Jika tidak ingin terikat pada framework tertentu, TensorFlow yang digunakan sebagai standar industri mungkin lebih baik

→ Dalam pencarian kerja/perekrutan, sisi TensorFlow lebih menguntungkan

  • Jika Anda mendalami deep learning sebagai hobi?

→ Tergantung apa yang ingin dilakukan, tetapi pada dasarnya PyTorch lebih baik

  • Jika Anda benar-benar pemula dalam deep learning?

→ Disarankan mulai dengan Keras

→ Jika mencari lingkungan yang mirip native Python, pilih PyTorch, khususnya PyTorch Lightning

1 komentar

 
xguru 2021-12-20

Menarik juga membandingkannya dengan pembahasan yang muncul pada 2019/2020.