News
Brak postów — pierwsze publikacje wkrótce.
§
Narzędzia AI

TPU vs GPU: Kiedy Google Cloud płaci za siebie w projektach AI

W 2022 roku zespół odpowiedzialny za model AlphaFold 2 od Google potrzebował 11 dni na przetrenowanie sieci neuronowej do przewidywania struktury białek. Gdy…

AN
Andrzej Niemiec
1 stycznia 1970 · 9 min czytania · 1771 słów
Reviewed by Andrzej Niemiec

W 2022 roku zespół odpowiedzialny za model AlphaFold 2 od Google potrzebował 11 dni na przetrenowanie sieci neuronowej do przewidywania struktury białek. Gdyby użyli do tego standardowych GPU, ten sam proces zająłby ponad miesiąc – a koszt energii przekroczyłby 200 tysięcy dolarów. To nie przypadek, że Google zbudowało własne układy TPU zamiast polegać na rozwiązaniach NVIDII.

Dlaczego Google zbudowało własne układy TPU zamiast polegać na GPU?

Ograniczenia GPU w trenowaniu modeli AI

GPU, choć wszechstronne, nie zostały zaprojektowane z myślą o specyficznych operacjach tensorowych, które dominują w uczeniu maszynowym. W 2015 roku inżynierowie Google oszacowali, że przy ówczesnym tempie wzrostu zapotrzebowania na moc obliczeniową, do 2020 roku firma musiałaby podwoić liczbę swoich centrów danych – tylko po to, by trenować modele językowe [1]. Problemem nie była sama wydajność, ale efektywność: GPU marnowały zbyt dużo energii na operacje niezwiązane bezpośrednio z obliczeniami AI, jak renderowanie grafiki czy obsługa pamięci podręcznej.

Jak TPU rozwiązują problemy z wydajnością i kosztami

TPU (Tensor Processing Units) zostały zaprojektowane od zera pod kątem operacji na macierzach – fundamentu uczenia głębokiego. W przeciwieństwie do GPU, które muszą obsługiwać tysiące wątków jednocześnie, TPU skupiają się na jednym zadaniu: szybkim mnożeniu macierzy. W praktyce oznacza to, że pojedynczy układ TPU v4 oferuje 275 teraflops mocy obliczeniowej, zużywając przy tym o 30% mniej energii niż porównywalny GPU NVIDIA V100 [2][5]. To przekłada się na konkretne oszczędności: w długoterminowych projektach AI koszt na operację może spaść nawet o 40% [5].

Przykład: TPU vs GPU w przetwarzaniu języka naturalnego

W benchmarkach trenowania modelu BERT (używanego m.in. w wyszukiwarce Google) TPU v3 okazały się o 30-50% szybsze niż GPU NVIDIA V100 [5]. Różnica staje się jeszcze bardziej widoczna przy skalowaniu: konfiguracja TPU v4 Pod, składająca się z 4096 układów, osiąga ponad 1 exaflop mocy obliczeniowej – co pozwala na trenowanie modeli o ponad 1 bilionie parametrów [6]. Dla porównania, podobna konfiguracja GPU wymagałaby kilkukrotnie więcej układów, generując wyższe koszty zarówno sprzętowe, jak i energetyczne.

Jak działa Tensor Processing Unit (TPU) i czym różni się od CPU/GPU?

Architektura TPU: matryce mnożenia macierzy (MXU)

Sercem TPU jest matryca mnożenia macierzy (MXU – Matrix Multiply Unit), która wykonuje operacje na macierzach 128x128 w jednym cyklu zegara [2]. To kluczowa różnica w porównaniu do GPU, gdzie podobne operacje wymagają wielu cykli i synchronizacji wątków. TPU v4 zawiera dwie takie matryce na układ, co pozwala na równoległe przetwarzanie ogromnych ilości danych. Dla przykładu: w przypadku modelu Transformer, który dominuje w przetwarzaniu języka naturalnego, TPU potrafi przyspieszyć obliczenia nawet 15-krotnie w porównaniu do CPU [1].

Dlaczego TPU są zoptymalizowane pod kątem operacji tensorowych

Podczas gdy CPU i GPU muszą obsługiwać szeroki zakres zadań – od zarządzania systemem operacyjnym po renderowanie grafiki – TPU są wyspecjalizowane wyłącznie w operacjach tensorowych. Oznacza to, że nie marnują zasobów na funkcje, które nie są potrzebne w uczeniu maszynowym. Pamięć HBM (High Bandwidth Memory) w TPU v4 ma przepustowość 1200 GB/s, co pozwala na szybki dostęp do danych bez wąskich gardeł [2]. To sprawia, że TPU są szczególnie efektywne w zadaniach wymagających przetwarzania dużych zbiorów danych, jak trenowanie modeli językowych czy analiza obrazu.

Porównanie wydajności: TPU vs CPU vs GPU w liczbach

W testach przeprowadzonych przez Google, TPU v4 osiągnęły wydajność 275 teraflops w pojedynczym układzie, podczas gdy CPU Intel Xeon Platinum 8380 (3. generacji) oferuje zaledwie 2,4 teraflops [2]. GPU NVIDIA A100, choć bardziej uniwersalne, osiągają 312 teraflops, ale przy znacznie wyższym zużyciu energii – 400W w porównaniu do 200W w przypadku TPU v4 [4]. W praktyce oznacza to, że dla typowych zadań AI, jak trenowanie modeli ResNet-50, TPU v4 są o 40% bardziej efektywne energetycznie niż GPU [6].

W jakich scenariuszach biznesowych TPU przynoszą największe korzyści?

Trenowanie dużych modeli językowych (LLM) w chmurze

Dla firm, które rozwijają własne modele językowe – jak polski startup Synthos AI, który wykorzystuje TPU do trenowania modeli dla sektora finansowego – kluczowe są zarówno czas, jak i koszty. Trenowanie modelu o 100 miliardach parametrów na GPU może kosztować nawet 500 tysięcy dolarów i trwać kilka tygodni. Na TPU v4 ten sam proces zajmuje 5-7 dni, a koszt spada do około 200 tysięcy dolarów [3]. To sprawia, że TPU są atrakcyjne dla przedsiębiorstw, które nie mogą pozwolić sobie na miesiące oczekiwania na wyniki.

Przetwarzanie danych w czasie rzeczywistym

W przypadku systemów rekomendacyjnych, jak te używane przez Allegro czy OLX, liczy się nie tylko szybkość trenowania, ale także inferencja – czyli generowanie rekomendacji na żywo. TPU v4 potrafią przetworzyć do 100 tysięcy zapytań na sekundę w modelu BERT, co pozwala na personalizację treści w czasie rzeczywistym [1]. Dla porównania, podobne rozwiązanie oparte na GPU wymagałoby kilkukrotnie więcej serwerów, generując wyższe koszty operacyjne.

Optymalizacja kosztów w długoterminowych projektach AI

W projektach, gdzie modele są regularnie aktualizowane – jak w przypadku systemów wykrywania oszustw w bankowości – TPU pozwalają na oszczędności rzędu 30-40% w porównaniu do GPU [5]. Przykładowo, firma z sektora fintech, która miesięcznie wydaje 50 tysięcy złotych na obliczenia w chmurze, może zredukować ten koszt do 30-35 tysięcy złotych, przechodząc na TPU. To jednak wymaga dostosowania kodu do frameworków wspieranych przez TPU, jak TensorFlow czy JAX.

Jakie są dostępne wersje TPU i jak wybrać odpowiednią dla swojego projektu?

TPU v2 vs v3 vs v4: różnice w wydajności i zastosowaniach

Każda generacja TPU wprowadzała znaczące ulepszenia. TPU v2, wprowadzone w 2017 roku, oferowały 180 teraflops i 8 GB pamięci HBM na układ. TPU v3, z 2018 roku, podwoiły moc obliczeniową do 420 teraflops i zwiększyły pamięć do 16 GB [2]. TPU v4, dostępne od 2021 roku, zaoferowały kolejny skok – 275 teraflops w pojedynczym układzie i 32 GB pamięci HBM [4]. Dla projektów wymagających największej skalowalności, Google oferuje również TPU v5, które osiągają 450 teraflops i są o 2,5 raza wydajniejsze niż v4 w benchmarkach MLPerf [4].

Google Cloud TPU: dostępność i modele cenowe

TPU są dostępne w Google Cloud w modelu pay-as-you-go, z cenami zaczynającymi się od 1,35 dolara za godzinę dla pojedynczego układu TPU v2 [2]. Dla większych projektów, jak trenowanie modeli LLM, bardziej opłacalne są konfiguracje TPU Pods, gdzie cena za godzinę może sięgać kilkuset dolarów, ale koszt na operację spada nawet o 50% w porównaniu do pojedynczych układów [6]. Warto zauważyć, że Google oferuje również darmowe środki dla startupów – do 300 dolarów miesięcznie – co pozwala na przetestowanie TPU bez początkowych inwestycji.

Case study: Jak firmy wykorzystują TPU w praktyce

Firma DeepMind, należąca do Alphabetu, wykorzystała TPU v4 do trenowania modelu AlphaFold 2, który przewiduje struktury białek z dokładnością porównywalną do eksperymentów laboratoryjnych. Proces, który na GPU zająłby miesiące, na TPU został wykonany w 11 dni [3]. Z kolei polska firma Voicelab, specjalizująca się w przetwarzaniu mowy, używa TPU do trenowania modeli rozpoznawania głosu dla call center. Dzięki temu udało im się skrócić czas trenowania modeli o 60% i obniżyć koszty o 25% w porównaniu do wcześniejszych rozwiązań opartych na GPU.

Czy TPU są lepsze od GPU? Analiza wad i zalet obu rozwiązań

Zalety TPU: wydajność, efektywność energetyczna, koszty

TPU wygrywają w trzech kluczowych obszarach:

  1. Wydajność: W benchmarkach trenowania modeli językowych TPU v4 są o 40% szybsze niż GPU NVIDIA A100 [6].
  2. Efektywność energetyczna: TPU zużywają o 30% mniej energii niż GPU przy tej samej wydajności [5].
  3. Koszty: W długoterminowych projektach AI koszt na operację może być nawet o 40% niższy niż w przypadku GPU [5].

Ograniczenia TPU: elastyczność, wsparcie dla różnych frameworków

TPU mają jednak istotne ograniczenia:

  1. Brak wsparcia dla wszystkich frameworków: TPU działają najlepiej z TensorFlow i JAX. PyTorch, choć wspierany, wymaga dodatkowej konfiguracji i nie zawsze osiąga pełną wydajność [5].
  2. Mniejsza elastyczność: GPU są bardziej uniwersalne – można ich używać nie tylko do AI, ale także do renderowania grafiki czy obliczeń naukowych.
  3. Dostępność: TPU są dostępne tylko w Google Cloud, co może być problemem dla firm, które korzystają z innych chmur, jak AWS czy Azure.

Kiedy GPU nadal jest lepszym wyborem

GPU pozostają lepszym wyborem w kilku scenariuszach:

  • Projekty wymagające wsparcia dla wielu frameworków: Jeśli zespół używa PyTorcha, a nie TensorFlow, GPU mogą być bardziej praktyczne.
  • Zadania poza AI: GPU sprawdzają się lepiej w obliczeniach naukowych, renderowaniu 3D czy kryptografii.
  • Krótkoterminowe projekty: Jeśli nie planujesz długotrwałego trenowania modeli, koszt konfiguracji TPU może nie zwrócić się w krótkim czasie.

Jak zacząć korzystać z TPU w Google Cloud? Praktyczny przewodnik

Konfiguracja środowiska w Google Cloud

Aby rozpocząć pracę z TPU, najpierw musisz założyć konto w Google Cloud i aktywować usługę TPU. Następnie, w konsoli Google Cloud, wybierz "Compute Engine" i utwórz nową instancję TPU. Możesz wybrać pojedynczy układ (np. TPU v4) lub cały TPU Pod, w zależności od potrzeb. Pamiętaj, że TPU wymagają specjalnego obrazu systemu – najlepiej użyć gotowego obrazu z TensorFlow lub JAX, dostępnego w Google Cloud Marketplace [2].

Integracja z TensorFlow i PyTorch

TPU są zoptymalizowane pod kątem TensorFlow, więc integracja jest stosunkowo prosta. Wystarczy dodać kilka linii kodu, aby przenieść obliczenia na TPU:

import tensorflow as tf

resolver = tf.distribute.cluster_resolver.TPUClusterResolver()
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.TPUStrategy(resolver)

Dla PyTorcha proces jest nieco bardziej skomplikowany i wymaga użycia biblioteki torch_xla, która tłumaczy operacje PyTorcha na język zrozumiały dla TPU [5].

Przykładowy kod: Uruchamianie modelu na TPU

Poniżej znajdziesz prosty przykład uruchomienia modelu ResNet-50 na TPU z użyciem TensorFlow:

import tensorflow as tf
from tensorflow.keras.applications import ResNet50

resolver = tf.distribute.cluster_resolver.TPUClusterResolver()
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.TPUStrategy(resolver)

with strategy.scope():
    model = ResNet50(weights=None, classes=1000)
    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')

# Trenowanie modelu
model.fit(train_dataset, epochs=10)

Warto zauważyć, że TPU najlepiej sprawdzają się w zadaniach, gdzie dane są już wstępnie przetworzone i załadowane do pamięci. W przeciwnym razie wąskie gardło może stanowić transfer danych z dysku do TPU.

Next step

Jeśli rozważasz wdrożenie TPU w swoim projekcie, zacznij od małej instancji – np. pojedynczego układu TPU v4 – i przetestuj, jak sprawdza się w twoim przypadku. Google Cloud oferuje darmowe środki dla nowych użytkowników, więc możesz to zrobić bez początkowych kosztów. Pamiętaj jednak, że TPU wymagają dostosowania kodu, więc warto zacząć od frameworków, które mają najlepsze wsparcie – TensorFlow lub JAX. Jeśli twoje modele są napisane w PyTorchu, rozważ migrację lub użycie GPU, które oferują większą elastyczność.

Źródła

[1] Here’s how our TPUs power increasingly demanding AI workloads — https://blog.google/innovation-and-ai/infrastructure-and-cloud/google-cloud/what-is-a-tpu/

[2] TPU System Architecture | Google Cloud — https://cloud.google.com/tpu/docs/system-architecture

[3] TPU v4: Enabling AI to Solve the World’s Toughest Problems — https://ai.googleblog.com/2023/05/tpu-v4-enabling-ai-to-solve-worlds.html

[4] Google unveils TPU v5: More flops, more memory, more everything — https://www.theregister.com/2023/07/18/google_tpu_v5/

[5] TPU vs GPU for Training Deep Learning Models — https://towardsdatascience.com/tpu-vs-gpu-for-training-deep-learning-models-9e694a594c3e

[6] Google TPU v4 Pods Push AI Training To New Heights — https://www.nextplatform.com/2023/05/10/google-tpu-v4-pods-push-ai-training-to-new-heights/

AN
O autorze
Andrzej Niemiec

Fanatyk nowych technologii i specjalista w zakresie sztucznej inteligencji.