Yapay zekâ haberlerinde ekran kartı üreticilerinin adı neden bu kadar sık geçiyor? Telefon tanıtımlarında anlatılan “sinir işlem birimi” ne işe yarıyor? Bulut sağlayıcılarının sunduğu TPU, bildiğimiz işlemciden nasıl ayrılıyor? Bu yazıda yapay zekâ donanımını, mühendislik derslerine girmeden ama yüzeyde de kalmadan anlatıyoruz.
Her şeyin altında yatan işlem: Matris çarpımı
Bir sinir ağı, dışarıdan ne kadar sihirli görünse de, temelde çok büyük sayı tablolarının birbiriyle çarpılıp toplanmasından ibarettir. Bir dil modeline cümle yazdığınızda, kelimeler sayı dizilerine çevrilir ve bu diziler katman katman, milyonlarca ağırlıkla çarpılır. Bu işlemlerin büyük kısmı birbirinden bağımsızdır; yani aynı anda yapılabilir.
Donanım tartışmasının özü buradadır: Yapay zekâ için iyi bir işlemci, karmaşık tek bir işi hızlı yapan değil, basit işlemlerin çok sayıdaki kopyasını aynı anda yapabilen işlemcidir.
CPU: Az sayıda usta
Bilgisayarınızın ana işlemcisi (CPU), birkaç ile birkaç düzine arasında güçlü çekirdekten oluşur. Her çekirdek çok yeteneklidir: Dallanan kodları, beklenmedik koşulları, işletim sisteminin binbir işini ustaca yönetir. CPU’yu, her türlü işi yapabilen birkaç deneyimli usta olarak düşünebilirsiniz.
Ama bir duvarı boyamak için birkaç usta yerine yüzlerce çırak çağırmak daha mantıklıdır. Yapay zekâ hesaplamaları da tam olarak bu tür bir iştir: Tekrarlayan, basit ve paralel.
Bu, CPU’nun yapay zekâda işe yaramadığı anlamına gelmez. Verinin hazırlanması, dosyaların okunması, sonuçların uygulamaya aktarılması gibi işler yine ana işlemcide yürür. Çok küçük modeller ya da ara sıra yapılan basit tahminler için CPU tek başına da yeterli olabilir; yalnızca büyük modellerde hız farkı katlanarak büyür.
GPU: Bir stadyum dolusu çırak
Ekran kartı işlemcisi (GPU), ilk olarak ekrandaki milyonlarca pikselin rengini aynı anda hesaplamak için tasarlandı. Bunun için binlerce küçük çekirdek barındırır. Her biri tek başına CPU çekirdeğinden zayıftır ama hep birlikte çalıştıklarında matris çarpımında çok büyük bir hız farkı yaratırlar. Araştırmacılar 2010’ların başında derin öğrenme modellerini GPU’larda eğitmeye başladığında bu fark alanın gidişatını değiştirdi.
GPU’ların yapay zekâdaki hâkimiyeti yalnızca donanımla ilgili değildir. NVIDIA’nın CUDA platformu ve onun üzerine kurulu kütüphaneler, yıllar içinde PyTorch ve TensorFlow gibi araçların varsayılan zemini hâline geldi. Bir modeli “her yerde çalışır” hâle getirmenin en kısa yolu çoğu zaman bu ekosistemden geçer. AMD ve diğer üreticiler de kendi yazılım yığınlarıyla bu alanda rekabet ediyor.
Hız kadar önemli iki şey: Bellek ve bant genişliği
Yapay zekâ işlerinde GPU seçerken çoğu kişi önce işlem gücüne bakar. Oysa iki özellik en az onun kadar belirleyicidir:
- Ekran kartı belleği (VRAM): Modelin ağırlıkları hızlı çalışabilmek için bu belleğe sığmalıdır. Sığmazsa model ya hiç çalışmaz ya da çok yavaşlar.
- Bellek bant genişliği: Bir dil modeli her yeni kelimeyi üretirken ağırlıkların büyük kısmını bellekten okumak zorundadır. Bu yüzden metin üretim hızı çoğu zaman işlem gücünden çok, belleğin ne kadar hızlı okunabildiğiyle sınırlanır.
Bir benzetmeyle: Çok hızlı bir aşçınız olabilir, ama malzemeler depodan yavaş geliyorsa yemek yine geç çıkar.
TPU: Tek bir iş için tasarlanmış fabrika
TPU (Tensor Processing Unit), Google’ın sinir ağı hesaplamaları için özel olarak tasarladığı bir yonga türüdür. GPU gibi genel amaçlı bir paralel işlemci değil, belirli bir işe odaklanmış bir uygulamaya özel tümleşik devredir (ASIC).
TPU’ların merkezinde “sistolik dizi” denen bir yapı bulunur. Bunu bir montaj hattı gibi düşünebilirsiniz: Sayılar bir hücreden diğerine akarken her hücre küçük bir çarpma ve toplama yapıp sonucu yanındakine aktarır. Veriyi her adımda belleğe gidip getirmek yerine hat boyunca akıttığı için matris çarpımında oldukça verimlidir.
TPU’ları bir mağazadan alıp bilgisayarınıza takamazsınız; genellikle Google Cloud üzerinden kiralanarak kullanılırlar. Google kendi büyük modellerini eğitirken de bu yongalardan yararlanır. Kullanıcı açısından önemli nokta şudur: TPU’lar belirli yazılım çerçeveleriyle (örneğin JAX ve TensorFlow, ayrıca PyTorch için destek katmanlarıyla) en iyi sonucu verir. Kodunuz hangi ekosisteme dayanıyorsa, donanım seçiminiz de ona göre şekillenir.
NPU: Cebinizdeki tasarruflu yardımcı
NPU (Neural Processing Unit), telefonlara, tabletlere ve son yıllarda dizüstü bilgisayarlara eklenen, yapay zekâ işlemlerini düşük enerjiyle yapmak için tasarlanmış bir birimdir. Apple’ın Neural Engine’i, Qualcomm yongalarındaki Hexagon birimi ve yeni nesil dizüstü işlemcilerdeki NPU’lar bu kategoriye girer.
NPU’nun amacı en yüksek hızı elde etmek değil, pili tüketmeden sürekli çalışabilmektir. Fotoğraflarda yüz tanıma, arka plan bulanıklaştırma, canlı altyazı, sesli komutları cihaz üzerinde anlama ya da küçük bir dil modeliyle metin önerme gibi işler NPU’nun alanıdır. Bu sayede veri buluta gitmeden cihazda işlenebilir.
NPU’lar genellikle hazır bir modeli çalıştırmak, yani çıkarım (inference) yapmak için kullanılır; büyük modelleri sıfırdan eğitmek için tasarlanmamışlardır. Ayrıca her uygulamanın NPU’yu kullanabilmesi için yazılımın buna göre hazırlanmış olması gerekir; donanımın varlığı tek başına yetmez.
Eğitim ve çıkarım: İki farklı ihtiyaç
Donanım konuşurken bu iki aşamayı ayırmak önemlidir:
- Eğitim: Modelin milyarlarca örnekten öğrendiği aşamadır. Haftalar sürebilen, binlerce hızlandırıcının birbirine bağlandığı veri merkezlerinde yapılır. Burada yongalar arasındaki iletişim hızı da tek bir yonganın gücü kadar önemlidir.
- Çıkarım: Eğitilmiş modelin sorularınızı yanıtladığı aşamadır. Tek bir istek görece küçüktür ama milyonlarca kullanıcıya hizmet verildiğinde toplam yük çok büyür. Bu aşamada enerji verimliliği ve gecikme ön plana çıkar.
Üçü yan yana
| GPU | TPU | NPU | |
|---|---|---|---|
| Nerede bulunur? | Masaüstü, iş istasyonu, veri merkezi | Google veri merkezleri, bulut | Telefon, tablet, dizüstü |
| Güçlü yanı | Esneklik ve geniş yazılım desteği | Büyük ölçekli matris işlemlerinde verimlilik | Düşük güç tüketimi, cihaz üzerinde çalışma |
| Tipik kullanım | Eğitim ve çıkarım | Büyük ölçekli eğitim ve çıkarım | Küçük modellerle çıkarım |
| Erişim | Satın alma veya bulut kiralama | Bulut kiralama | Cihazın içinde hazır |
Donanım seçerken kendinize sorun
- Eğitim mi yapacağım, yoksa hazır modeli mi çalıştıracağım? Çoğu geliştirici yalnızca çıkarım yapar; bu da ihtiyacı ciddi biçimde küçültür.
- Kullanacağım model ne kadar bellek istiyor? Önce modelin boyutunu öğrenin, sonra ekran kartı belleğine bakın.
- Yazılımım hangi donanımı destekliyor? Kullandığınız kütüphanenin desteklemediği bir donanım, kâğıt üzerinde ne kadar güçlü olursa olsun işinize yaramaz.
- Sürekli mi, ara sıra mı çalışacak? Ayda birkaç gün kullanacağınız bir güç için donanım almak yerine bulutta saatlik kiralamak çoğu zaman daha mantıklıdır.
- Enerji ve ses sizin için önemli mi? Güçlü bir GPU, ev ya da ofis ortamında ciddi ısı ve fan sesi demektir.
Kısacası, yapay zekâ donanımında “en iyi işlemci” diye bir şey yoktur; işe göre doğru araç vardır. Veri merkezinde dev bir modeli eğiten ekip ile telefonda fotoğraf düzenleyen uygulama aynı sorunu çözmüyor. Hangi sorunu çözdüğünüzü netleştirdiğinizde, hangi harfle başlayan işlemciye ihtiyacınız olduğu da kendiliğinden ortaya çıkar.
“GPU, TPU, NPU: Yapay zekâ donanımına kısa rehber” haberi, Etesio Teknoloji’nin yapay zekâsı Safinaz tarafından Türkçeleştirilip yayına alınmıştır.
