İçeriğe geç
edumintsBlog
Makine Öğrenmesi3 dk okuma

Google, TPU'lar İçin Yerel Bir PyTorch Arka Ucu Olan TorchTPU'yu Açık Kaynak Olarak Sunuyor

Kaynak: Hacker News

Paylaş
Makine ÖğrenmesiEdumints Blog
İçindekiler 6 başlık

Proje Açıklaması#

TorchTPU, Google'ın Tensor İşleme Birimleri (TPU'lar) için yerel bir PyTorch arka ucu (backend) sağlayan açık kaynaklı bir projedir. Geliştiricilerin PyTorch modellerini ve operasyonlarını doğrudan TPU cihazları üzerinde çalıştırmasına olanak tanır. Proje; çeşitli PyTorch işlemleri için özel ATen çekirdekleri (kernels), çalışma zamanını optimize eden bir derleme önbelleği ve hem dağıtık eğitim hem de model çıkarımı (inference) için kapsamlı örnekler içerir. Yazılım mühendisleri ve yapay zeka araştırmacıları için bu araç, mevcut PyTorch kod tabanını büyük mimari değişiklikler yapmadan yüksek performanslı TPU donanımlarına taşıma fırsatı sunar.

Temel Özellikler#

Orijinal proje yapısında öne çıkan altı temel yetenek, modern derin öğrenme iş akışlarını doğrudan hızlandırmayı hedefler:

  • TPU için PyTorch ATen çekirdek uygulaması: Standart PyTorch operasyonlarının TPU donanımında yerel olarak çalışmasını sağlayarak soyutlama katmanı kayıplarını azaltır.
  • XLA hesaplamalarının optimize edilmiş yürütülmesi için derleme önbelleği: Tekrarlayan derleme maliyetlerini ortadan kaldırarak geliştirme ve eğitim döngülerini hızlandırır.
  • Dağıtık eğitim desteği (Veri Paralelliği, Tensör Paralelliği): Büyük dil modellerini birden fazla TPU çekirdeği üzerinde ölçeklendirmek için kritik altyapı sağlar.
  • Çeşitli modeller için hazır örnekler (Llama, Qwen, ResNet, DLRM, minGPT, UNet): Farklı mimarilerin TPU üzerinde nasıl yapılandırılacağını gösteren pratik referanslar sunar.
  • Graf modunda yürütme için torch.compile() entegrasyonu: Modern PyTorch 2.x derleme standartlarıyla tam uyumluluk sağlayarak kod optimizasyonunu otomatikleştirir.
  • Hata ayıklama (debugging) ve kıyaslama (benchmarking) yardımcı araçları: Performans darboğazlarını tespit etmek ve donanım verimliliğini ölçmek için yerleşik araçlar barındırır.

Kullanıcı Rehberi ve Etkileşimli Not Defterleri#

Projenin statik kullanıcı rehberine resmi dokümantasyon bağlantısından (https://torchtpu.readthedocs.io/) ulaşılabilir. Depo içindeki docs klasöründe ise Jupyter'e benzeyen Marimo tabanlı etkileşimli not defterleri yer alır. Geliştiriciler bu dosyaları marimo edit file.py komutuyla çalıştırıp tarayıcı üzerinden interaktif olarak deneyimleyebilir. Pratik bir öğrenme ve test süreci için bu ortamın bir TPU VM (en kolay kurulum için v6e GCE örneği) üzerinde çalıştırılması gerekir.

Kurulum ve Kaynaktan Derleme#

TorchTPU'nun Python sürüm desteği, PyTorch Sürüm Uyumluluk Matrisi ile eşleşmektedir ve güncel olarak Python 3.11+ sürümlerini destekler. Temiz bir geliştirme ortamı için standart venv veya modern uv aracıyla sanal ortam oluşturulması önerilir (python -m venv .venv veya uv venv .venv ardından source .venv/bin/activate).

Pip ile Kurulum#

En güncel genel sürümü (PyPI üzerinde 0.2.0) yüklemek için CPU tekerlek (wheel) indeksini referans alarak kurulum yapabilirsiniz (uv kullanıyorsanız komutun başına uv ekleyin): pip install torch_tpu==0.2.0 --extra-index-url https://download.pytorch.org/whl/cpu

Kaynaktan Derleme (Build from Source)#

Özel C++ seviyesinde geliştirme yapan mühendisler, paketi Bazel kullanarak kaynaktan derleyebilir: bazel build --config=wheel_common //ci/wheel:torch_tpu_wheel

Tüm açık kaynaklı Bazel derlemeleri, .bazelrc yapılandırması sayesinde varsayılan olarak optimize edilmiş modda (-c opt) çalışır. Optimize edilmemiş derlemeler (-c fastbuild, -c dbg) performansı düşürebileceğinden paket üretiminde kullanılmaz; ancak C++ kodunda hata ayıklama yaparken bu modlar bilinçli olarak tercih edilebilir. Büyük ölçekli model eğitimi ve donanım optimizasyonu çalışan geliştiriciler için bu yapı, yüksek performanslı üretim standartlarını anlamak adına mükemmel bir referanstır.

Kaynak ve atıf

Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • github.com/google-pytorch/torch_tpu