TPU
Tensör İşlem Birimi
- Okunuşu
- ti pi yu
Kısaca
TPU (Tensör İşlem Birimi), Google'ın sinir ağlarının matris hesapları için yaptığı çiptir; yapay zekâ modellerini çoğunlukla Google Cloud'da eğitip çalıştırır.
TPU nedir?
TPU, Google'ın sinir ağlarını hızlandırmak için tasarladığı, tek bir iş türü için üretilmiş bir çip, yani uygulamaya özgü tümleşik devredir (ASIC). Tensör, çok boyutlu bir sayı dizisinden ibarettir; bir sinir ağını eğitmek ya da çalıştırmak da büyük ölçüde büyük tensörleri birbiriyle çarpmaktır. Google, TPU'ları 2015'te veri merkezlerinde kullanmaya başladı ve 2016'da duyurdu; ilk nesil yalnızca eğitilmiş modelleri çalıştırabiliyordu, eğitim desteği ise 2017'de ikinci nesille geldi.
TPU'nun kalbi, sistolik dizi (systolic array) biçiminde düzenlenmiş binlerce küçük çarp-topla devresinden oluşan matris çarpım birimidir: sayılar bir hücreden diğerine akar, böylece bellekten okunan her değer yeniden getirilmek yerine defalarca kullanılır. TPU'lar çoğunlukla bfloat16 gibi düşük hassasiyetli biçimlerle hesap yapar; bu biçimler sinir ağları için yeterince doğrudur ve silikonda çok daha ucuzdur. Çipler hızlı ve özel bir ağla pod'lar hâlinde birbirine bağlanır; yedinci nesil Ironwood'un bir pod'u 9.216 çipi bir araya getirir.
Google, TPU'ları kendi sunucularınıza takacağınız kartlar olarak değil, çoğunlukla bir bulut hizmeti olarak sunmuştur: geliştiriciler onları Google Cloud'da kiralar; Google da Gemini dahil kendi modellerini eğitmek ve sunmak için onları kullanır. Kod bir TPU'ya XLA derleyicisi üzerinden ulaşır; JAX, TensorFlow ve PyTorch bir modelin işlemlerini TPU komutlarına dönüştürmek için bu derleyiciyi kullanır. Google'ın TPU'ları düşünerek geliştirdiği JAX, TPU'larda en yaygın tercihtir.
Çoğu kişinin kastettiği karşılaştırma TPU ile GPU arasındadır. GPU, grafikle başlamış, neredeyse her paralel kodu çalıştıran ve NVIDIA, AMD gibi birçok üreticinin sattığı genel amaçlı bir paralel işlemcidir; hemen her yapay zekâ kütüphanesi onu destekler. TPU ise tensör hesabını daha verimli yapmak için bu esneklikten vazgeçer; her şeyi pişirebilen bir mutfağın yanında tek tür ekmek için kurulmuş bir fırın hattı gibidir ve çoğunlukla tek bir şirketin bulutunda bulunur. Çok sayıda özel işlem içeren modeller genellikle GPU'larda daha kolay çalışır; büyük ve standart modeller, özellikle JAX ile yazılmış olanlar ise TPU'lara iyi uyar.
Önemli noktalar
- TPU, Google'ın özellikle sinir ağlarındaki matris hesapları için tasarladığı bir çiptir.
- Sistolik dizisi her değeri defalarca kullanarak yavaş bellek okumalarından tasarruf eder.
- TPU'lar Google Cloud üzerinden kiralanır ve Google'ın kendi modellerine güç verir.
- JAX, TensorFlow ve PyTorch, TPU'lara XLA derleyicisi üzerinden ulaşır.
- GPU'lar daha esnek ve daha kolay bulunur; TPU'lar esneklik yerine verimliliği seçer.
Örnek
import jax
import jax.numpy as jnp
print(jax.devices()) # on a Cloud TPU VM: a list of TpuDevice objects
@jax.jit # XLA compiles this function for the TPU's matrix units
def predict(weights, inputs):
return jnp.tanh(inputs @ weights)
key = jax.random.key(0)
weights = jax.random.normal(key, (4096, 4096), dtype=jnp.bfloat16)
inputs = jnp.ones((1024, 4096), dtype=jnp.bfloat16)
print(predict(weights, inputs).shape) # (1024, 4096)Sık sorulan sorular
TPU ile GPU arasındaki fark nedir?
GPU, grafiği ve neredeyse her paralel kodu çalıştıran, birçok üreticinin sattığı genel amaçlı bir paralel işlemcidir. TPU ise Google'ın özellikle sinir ağı hesapları için ürettiği çiptir: daha az esnektir ama büyük modellerde çok verimlidir ve çoğunlukla Google Cloud üzerinden kullanılabilir.
TPU satın alabilir miyim?
Genellikle hayır: Google veri merkezi TPU'larını, kullandıkça ödediğiniz bir bulut hizmeti olarak sunar. Google Colab ve Kaggle gibi notebook hizmetleri denemeler için sınırlı ücretsiz TPU süresi verir.
NPU nedir?
NPU (nöral işlem birimi), küçük modelleri cihaz üzerinde verimli çalıştırmak için telefonlara ve dizüstü bilgisayarlara yerleştirilen bir yapay zekâ hızlandırıcısıdır. TPU ile aynı fikri, yani sinir ağı hesapları için ayrılmış donanımı, çok daha küçük ölçekte uygular.
İlgili sayfalar
- GPUİşletim Sistemleri, s. 12GPU (grafik işlem birimi), binlerce küçük çekirdeğiyle aynı hesabı çok büyük veri üzerinde aynı anda yapan işlemcidir; grafik ve yapay zekâ için kullanılır.
- CPUİşletim Sistemleri, s. 3CPU (merkezî işlem birimi), program talimatlarını yürüten ve her yazılımın üzerinde çalıştığı aritmetik, mantık ve kontrol işlerini yapan işlemcidir.
- Derin ÖğrenmeYapay Zekâ ve Makine Öğrenmesi, s. 14Derin öğrenme, görüntü ve metin gibi ham verilerden karmaşık örüntüleri öğrenmek için çok katmanlı sinir ağları kullanan bir makine öğrenmesi alt kümesidir.
- Yapay Sinir AğıYapay Zekâ ve Makine Öğrenmesi, s. 54Yapay sinir ağı, bağlantılı yapay nöron katmanlarından oluşan ve sayısal ağırlıkları ayarlayarak verilerden örüntü öğrenen bir makine öğrenmesi modelidir.
- InferenceYapay Zekâ ve Makine Öğrenmesi, s. 27Inference, eğitilmiş bir makine öğrenmesi modelinin, öğrendiklerini değiştirmeden yeni verilerden tahmin ya da çıktı üretmek için kullanıldığı aşamadır.
- Google CloudDevOps ve Bulut, s. 24Google Cloud, Google'ın kendi ürünlerini çalıştıran küresel altyapıda hesaplama, depolama, veri ve yapay zekâ servisleri sunan genel bulut platformudur.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin