2022'de PyTorch ve TensorFlow karşılaştırması
(assemblyai.com)-
Genelde TensorFlow'un endüstriyel kullanım, PyTorch'un ise araştırma için olduğu söylenir; ancak bu, eski bilgilere dayanan bir anlatıdır
-
Pratik değerlendirmeler genelde 3 karşılaştırmaya indirgenir
→ model kullanılabilirliği: kamuya açık olarak kullanılabilen model sayısı ne kadar
→ dağıtım altyapısı: ne kadar verimli şekilde dağıtım yapılabiliyor
→ ekosistem: farklı ortamlar/donanımlar
Model Availability
-
Hem PyTorch hem de TensorFlow'un kendi resmi model depoları vardır
-
HuggingFace
→ yalnızca PyTorch'ta kullanılabilenler %85; özel olmayan modellerin de %50'si kullanılabiliyor. Toplamın yalnızca %16'sı TensorFlow'da kullanılabiliyor (%8'i sadece TF)
→ En popüler 30 modelde, hepsi PyTorch'ta kullanılabilirken TensorFlow'da bunların yalnızca 18'i kullanılabiliyor
- araştırma makaleleri
→ her yıl gönderilen makalelerde PyTorch kullanımı sürekli artıyor
→ 2017'de %7 ile başlayıp 2021'de neredeyse %80'e ulaştı
→ TensorFlow 1'in zorlukları nedeniyle birçok kişi PyTorch'u seçti
→ bu zorluklar 2019'da çıkan TensorFlow 2 ile büyük ölçüde iyileşti, ancak PyTorch zaten araştırma odaklı konumunu sağlamlaştırdı
→ 2018'de TensorFlow kullanan araştırmacıların %55'i 2019'da PyTorch'a geçti
→ 2018'de PyTorch kullanan araştırmacıların %85'i 2019'da da PyTorch kullanmaya devam etti
- Papers With Code verilerine göre
→ TensorFlow kullanımı sürekli azalırken PyTorch ve diğer framework'ler giderek daha fazla kullanılıyor
→ TensorFlow 2 çıktıktan sonra da bu eğilim sürdü. TF1'de yaşanan zorlukları tersine çevirmeye yetmedi
-
Sonuç olarak model kullanılabilirliği açısından pazara PyTorch hakim
-
diğer istisnalar
→ GoogleAI çoğunlukla TensorFlow kullandı, ancak Google Brain JAX/Flax kullanıyor
→ DeepMind da JAX'i benimsedi ve JAX için bir sinir ağı kütüphanesi olan Haiku'yu geliştirdi (JAX için Sonnet)
→ JAX: Google tarafından ayrı geliştirilen bir framework. Araştırma tarafında giderek popülerleşiyor
Deployment
- TensorFlow baştan itibaren dağıtım odaklı uygulamalar için optimize edilmişti
→ TensorFlow Serving, TensorFlow Lite vb. ile cloud/sunucu/mobil/IoT cihazlarına zahmetsizce dağıtım yapılabiliyor
- PyTorch dağıtım açısından çok gerideydi, ancak son birkaç yılda bu farkı kapatmak için çalışıyor
→ TorchServe ve PyTorch Live
- Sonuç olarak, dağıtım açısından TensorFlow hâlâ daha üstün
→ özellikle TFLite'ın yerel ortamda ve Coral cihazlarında kullanılabilmesi diğer endüstriler için de çok önemli
→ PyTorch Live yalnızca mobile odaklanıyor, TorchServe ise hâlâ erken aşamada
Ecosystems
- PyTorch
→ resmi PyTorch Hub mevcut: Audio/Vision/NLP gibi çeşitli modeller içeriyor
→ SpeechBrain: resmi açık kaynak konuşma toolkit'i; ASR/konuşmacı tanıma/doğrulama gibi birçok özelliğe sahip
→ Fast.ai dahil çeşitli araçlar ve kütüphaneler mevcut
→ TorchElastic: AWS+Facebook ortak proje
→ TorchX: hızlı makine öğrenimi geliştirme ve dağıtımı için kütüphane
→ PyTorch Lightning: Keras of PyTorch
- TensorFlow
→ resmi TensorFlow Hub: BERT dahil çeşitli modeller
→ Model Garden: SOTA(State-of-the-ART) modeller için kaynak kod deposu
→ TensorFlow Extended(TFX): model dağıtımı için E2E platformu
→ Vertex AI: Google Cloud'un birleşik makine öğrenimi platformu
→ Media Pipe: yüz tanıma, el takibi, nesne tanıma gibi işlevler için makine öğrenimi pipeline'ları oluşturmayı sağlayan multimodal, cross-platform framework
→ Coral: yerel AI barındıran ürünleri (IoT) desteklemek için oluşturulmuş toolkit
→ TensorFlow.js: makine öğrenimi için JavaScript kütüphanesi
→ TensorFlow Cloud: yerel geliştirme ortamını Google Cloud'a bağlar
→ Colab: cloud tabanlı notebook ortamı (Jupyter'a benzer)
→ Playground: sinir ağlarının temellerini anlamak için iyi bir eğitim aracı
→ Datasets: Google'ın düzenli olarak yayımladığı veri setlerini depolar (PyTorch kullanıcıları da kullanabilir)
- Sonuç olarak ekosistem açısından TensorFlow daha üstün
→ Google bu alana uzun süredir çok yatırım yapıyor
→ Google Cloud ile bağlantı kurma ya da Coral cihazlarına port etmeyi kolaylaştırma gibi konularda da bazı alanlarda daha güçlü
Peki ikisinden hangisini kullanmalı?
- Bu alanda çalışıyorsanız seçim, hangi endüstride olduğunuza göre değişebilir (orijinal yazıda kolay seçim için bir flow chart sunuluyor)
→ endüstriyel ortamda derin öğrenme kullanıyorsanız zaten TensorFlow kullanıyor olabilirsiniz; devam edebilirsiniz
→ TorchServe nedeniyle PyTorch da değerlendirilebilir
→ mobile için PyTorch Live, ses/görüntü girdileri için TensorFlow
→ IoT'de AI kullanacaksanız TensorFlow Lite + Coral
- araştırmacıysanız?
→ büyük olasılıkla zaten PyTorch kullanıyorsunuzdur; devam edebilirsiniz
→ özel bir istisna olarak Reinforcement Learning yapıyorsanız TensorFlow'u düşünebilirsiniz
→ TensorFlow kullanmak istemiyorsanız JAX'i de değerlendirmeye değer
→ ne seçerseniz seçin, 2022'de JAX mutlaka izlenmeli
- öğretim üyesiyseniz?
→ eğitim programının hedeflerine göre değişebilir
→ doğrudan iş hayatında makine öğrenimi kullanacak mühendisler yetiştirmek istiyorsanız TensorFlow
→ derin öğrenmeyi ve derin öğrenme modellerini anlamak istiyorsanız PyTorch
- kariyer değiştiriyorsanız?
→ hem PyTorch hem TensorFlow iyi seçenekler
→ kullanımı daha kolay olanı seçin
→ belirli bir framework'e bağlı kalmak istemiyorsanız, sektörde standart olarak kullanılan TensorFlow daha iyi olabilir
→ iş ilanları ve işe alım tarafında TensorFlow daha avantajlıydı
- hobi olarak derin öğrenmeyle uğraşıyorsanız?
→ ne yapmak istediğinize bağlıdır, ancak temel olarak PyTorch daha iyi
- derin öğrenmede tamamen yeniyseniz?
→ Keras ile başlamanız önerilir
→ Python native'e benzer bir ortam arıyorsanız PyTorch, özellikle de PyTorch Lightning
1 yorum
Bunu 2019/2020'de çıkan konuşmalarla karşılaştırmak da ilginç.
Makine öğrenimi framework'lerinin bugünü [2019] https://tr.news.hada.io/topic?id=696
Makine öğrenimi uzmanlarının öngördüğü 2020 yapay zeka yönü https://tr.news.hada.io/topic?id=1213
Yapay zekayı kendi kendine öğrenip Google'a giren araştırmacıyla röportaj https://tr.news.hada.io/topic?id=1347
TensorFlow ekosistemi: makine öğrenimi geliştirmeden dağıtıma kadar https://tr.news.hada.io/topic?id=1757
Google'ın hazırladığı TensorFlow ile hızlandırılmış makine öğrenimi kursu [Korece] https://tr.news.hada.io/topic?id=1052