Sprzęt kolejnej rewolucji. Krzemowe woły robocze
To właśnie było powodem stworzenia przez amerykańską firmę Nvidia Corp, która jest wiodącym projektantem i producentem układów półprzewodnikowych na rynku AI, zmodyfikowanych wersji swoich produktów, których specyfikacje pozwalają na eksport do Chin. Regulacje wprowadzone przez amerykańskie władze spowodowały, że Nvidia nie mogła sprzedawać tam swoich najbardziej zaawansowanych chipów A100 (1) i H100. Zaprojektowane przez Nvidię niedawno A800 i H800 mogą bez przeszkód wejść na chiński rynek. H800 jest wykorzystywany przez Alibaba Group, Baidu i Tencenta, chińskich potentatów rozwijających projekty oparte na uczeniu maszynowym.
Cała powyższa sytuacja z wymuszonymi przez sankcje "zubożonymi" chipami Nvidii dla Chińczyków uwypukla rolę, jaką w trwającej rewolucji AI odgrywa sprzęt, wydajne, szybkie, procesory, które potrafią sprostać wysokim wymaganiom obliczeniowym.
Tajemnice wydajności sprzętu Nvidii
Nie jest specjalną tajemnicą, że to karty graficzne (GPU), w których specjalizuje się Nvidia, są bardziej wydajną od tradycyjnych procesorów opcją w dużych i skomplikowanych procesach obliczeniowych, stojących za algorytmami AI , od rozpoznawania pieszych przez autonomiczne pojazdy, przez diagnostykę obrazową w medycynie, po superkomputery i deep learning. Przewaga GPU nie polega jedynie na przetwarzaniu równoległym, co jest najczęściej podawanym powodem. Prawdziwa przyczyna jest nieco prostsza i dotyczy przepustowości pamięci. CPU potrafią pobrać (fetching) bardzo szybko niewielkie ilości danych. W scenariuszu kładącym nacisk na szybkość niezależnie od rozmiaru, GPU, mające znacznie większe opóźnienia, działają wolniej. Jednak gdy w grę wchodzi odczytywanie dużych pakietów danych, GPU radzi sobie nieporównywalnie lepiej, osiągając nawet 750 GB/s przepustowości. To sporo w porównaniu do najlepszych procesorów CPU, które wspierają maksymalnie 50 GB/s szybkości odczytu z pamięci.
GPU składają się z tysięcy rdzeni, a każde kolejne wczytanie danych jest w nich szybsze dzięki równoległości wątków. Aby rozwiązać zadanie polegające na obsłudze dużych ilości danych, trzeba czekać na ich pierwsze wczytanie (fetching). Każde kolejne będzie znacznie szybsze, gdyż to proces zrzucania (unloading) zabierający najwięcej czasu jest kolejkowany. GPU są w stanie przechowywać informacje w pamięci cache oraz plikach rejestru w celu ponownego użycia, co sprawia, że są bardziej wydajne w procesach głębokiej nauki maszynowej.
Pierwsza część procesu polega na pobraniu danych z dysku lub pamięci RAM i wgrania ich na pamięć karty lub cache L1 (pamięć operacyjna) i rejestr. Rejestry są połączone bezpośrednio z jednostką obliczeniową, dla GPU jest to procesor strumieniowy, a dla CPU rdzeń. To tutaj mają miejsce wszystkie obliczenia. Zwykle dąży się do tego, by L1 i rejestr były możliwie blisko jednostki obliczeniowej i jednocześnie były na tyle małe, żeby można było uzyskać do nich szybki dostęp. Karty graficzne są wydajne, gdyż każda ich jednostka obliczeniowa ma pakiet rejestrów nawet trzydzieści razy większych od tych w CPU, a jednocześnie dwukrotnie szybszych. Rezultatem jest nawet 14 MB zarezerwowanych dla pamięci rejestru pracujących z prędkością 80 TB/s. Dla porównania - przeciętna pamięć cache L1 procesora CPU pracuje z prędkością nie większą niż 5 TB/s, a rejestr rzadko ma więcej niż 128 KB i operuje z prędkością 10, może 20 TB/s.
Pozostałe pięć procent
O wiele mniej rozpowszechniony niż GPU Nvidii, ale znany w świecie AI, jest Tensor Processing Unit (TPU), układ scalony opracowany przez Google'a do uczenia maszynowego sieci neuronowych, wykorzystujący autorskie oprogramowanie Google TensorFlow. Google zaczął używać TPU wewnętrznie w 2015 roku, a w 2018 roku udostępnił je do użytku stron trzecich, zarówno jako część swojej infrastruktury chmury, jak też oferując mniejszą wersję układu na sprzedaż. W porównaniu z procesorem graficznym, TPU są przeznaczone do dużej ilości obliczeń o niskiej precyzji (np. zaledwie 8-bitowej) z większą liczbą operacji wejścia/wyjścia na dżul. Różne typy procesorów nadają się do różnych typów modeli uczenia maszynowego. TPU są dobrze przystosowane do neuronowych sieci konwolucyjnych (CNN), podczas gdy GPU mają zalety dla niektórych w pełni połączonych sieci neuronowych, a CPU mogą mieć zalety dla sieci rekurencyjnych (RNN).
Jednostka przetwarzania tensorowego została ogłoszona w maju 2016 roku na Google I/O, kiedy to firma powiedziała, że TPU była już używana wewnątrz ich centrów danych przez ponad rok. Od 2017 roku Google nadal wykorzystywał procesory i układy graficzne do innych rodzajów uczenia maszynowego. Między innymi miały być wykorzystane w szkoleniu algorytmu AlphaGo przed rozgrywką z arcymistrzem Lee Sedolem, a także w systemie AlphaZero, który produkował programy do gry w szachy. Google wykorzystał również TPU do przetwarzania tekstu w Google Street View. W usłudze zdjęć Google pojedyncza TPU może przetwarzać ponad sto milionów zdjęć dziennie. Jest ona również wykorzystywana w RankBrain, którego Google używa do dostarczania wyników wyszukiwania. W październiku 2019 roku Google zapowiedział smartfon Pixel 4, który zawiera Edge TPU o nazwie Pixel Neural Core. W 2021 roku kolejna generacja tej jednostki obliczeniowej pojawiła się w linii smartfonów Pixel 6.
W kontekście "sprzętu do AI" najczęściej mówi się kartach graficznych Nvidii lub TPU Google’a, ale nie są to jedyne konstrukcje na rynku, które mogą obsługiwać obliczenia wymagane przez modele i generatory. Na przykład firma AMD zaprezentowała w styczniu 2023 r. procesory AMD Ryzen z serii 7040, które są pierwszymi jednostkami x86 z wbudowanym akceleratorem sztucznej inteligencji. Układy są produkowane w 4-nanometrowym procesie technologicznym, oferując najmocniejszy na świecie zintegrowany układ graficzny, bazujący na RDNA 3.
Sztuczna inteligencja i jej rozwój opiera się na sprzęcie, głównie kartach graficznych. Z drugiej strony AI wykorzystywane jest jako pomoc w konstrukcji hardware’u, czego przykładem jest zaprezentowana niedawno przez izraelską firmę Hailo rodzina procesorów wizyjnych (VPU, Vision Processor Units) Hailo-15. Są one przeznaczone do bezpośredniego zamontowania w kamerach nadzorujących inteligentne miasta, centra handlowe, budynki, hale przemysłowe itp., pozwalając na bieżącą analizę rejestrowanych wydarzeń w tzw. przetwarzaniu kraw-dziowym (edge computing).
A narzut energetyczny rośnie
Za olśniewającymi możliwościami generatorów tekstu i obrazu skrywa się jednak pewna niewygodna i co tu kryć, dość przykra, tajemnica. Za każdym razem, gdy DALL-E tworzy obraz lub ChatGPT generuje poezję, po stronie serwerowni zachodzi mnóstwo obliczeń, operacji tzw. wnioskowania, które wymagają sporo energii elektrycznej. Już od lat wiadomo rosnącym udziale centrów danych w zużycia energii na świecie. Prognozy przewidują wzrost tego zużycia z 3 proc. w 2017 roku do 4,5 proc. do 2025 roku. W różnych krajach podaje się różne przewidywania. Chiny przewidują, że ich centra danych zużyją ponad 400 miliardów kWh energii elektrycznej w 2030 roku - 4 proc. całkowitego zużycia energii elektrycznej w tym kraju. Być może tworzone przed 2022 r. prognozy nie uwzględniają trwającej rewolucji AI.
Uwzględniać za to zdają się ją nowe przedrostki w Międzynarodowym Układzie Jednostek, które zostały przyjęte w listopadzie 2022 r. To: ronto i quecto dla małych liczb oraz ronna i quetta dla bardzo dużych liczb, przydatne do opisu ilości danych na serwerach internetowych. Nowe prefiksy dla największych i najmniejszych liczb świata zostały potwierdzone w głosowaniu na Generalnej Konferencji Miar i Wag (CGPM) w Wersalu we Francji. Przewiduje się, że do 2025 roku ilość informacji na świecie sięgnie 175 zettabajtów.
Wracając do problemu wydajności - to stały repertuar dyskusji o CPU i GPU, zaś w kontekście rozwoju AI - rozważań o energochłonności procesu wnioskowania versus szkolenia modelu. Ma to odniesienia do walki o "przezwyciężenie prawa Moore’a" i fizycznych ograniczeń w pakowaniu większej ilości tranzystorów na matrycach o większych rozmiarach. Jest jeszcze kwestia połączeń pomiędzy układami jednostek obliczeniowych. Tradycyjnie taniej było produkować procesory i układy pamięci oddzielnie, a przez wiele lat prędkość zegara procesora była kluczowym czynnikiem decydującym o wydajności. Obecnie to połączenia między układami scalonymi hamują rozwój mocy obliczeniowej. "Kiedy pamięć i przetwarzanie są oddzielone, połączenie komunikacyjne, które łączy te dwie domeny, staje się głównym wąskim gardłem systemu", wyjaśnia w jednej z wypowiedzi Jeff Shainline z amerykańskiego Narodowego Instytutu Standardów i Technologii (NIST) i podobne opinie formułuje wielu innych specjalistów.
System AI wykorzystuje różne rodzaje obliczeń podczas szkolenia modelu. W skrócie proces ten zaczyna się od załadowania ogromnych ilości danych, które następnie są przetwarzane w iteracjach nauki maszynowej. Tysiące rdzeni GPU przetwarzają ogromne zbiory danych, takich jak obrazy lub wideo. Jeśli wyniki szkolenia mają być osiągnięte szybko, to najprostszym, ale drogim sposobem jest wynajęcie tylu jednostek GPU w chmurze, ile potrzeba (i - na ile stać zarządzających projektem). Procesy wnioskowania AI wymagają mniejszych mocy obliczeniowych na początku, jednak potem ogromna liczba obliczeń i przewidywań potrzebnych do podjęcia decyzji wymaga znacznie więcej energii niż szkolenie w dłuższej perspektywie.
Jednym z kierunków poszukiwania oszczędności w tej dziedzinie są metody próbkowania i tzw. pipeliningu w przyspieszaniu głębokiej nauki przez zmniejszanie ilości przetwarzanych danych. Do grupy takich rozwiązań należy SALIENT (for SAmpling, SLIcing, and data movemeNT), opracowany przez naukowców z Massachusetts Institute of Technology i IBM w celu przezwyciężania hardware’owych wąskich gardeł. Podejście to ma radykalnie zmniejszyć wymagania dotyczące uruchamiania sieci neuronowych na dużych zbiorach danych. Niespodzianką nie jest jednak to, że te metody ograniczają dokładność i precyzję, czyli nie mogą zostać zastosowane do zadań np. w medycynie czy bezpieczeństwie.
Apple, Nvidia, Intel i AMD zapowiedziały budowę procesorów ze specjalne dla AI tworzonymi rozwiązaniami wbudowanymi w tradycyjne procesory. Amazon dla swoich usług AWS tworzy nowy procesor Inferentia2. Ale te rozwiązania wciąż wykorzystują tradycyjną architekturę von Neumanna procesorów, zintegrowanej pamięci SRAM i zewnętrznej pamięci DRAM, wszystkie wymagają energii elektrycznej do przenoszenia danych do i z pamięci.
Prace nad przeniesieniem obliczeń bliżej pamięci RAM trwają, choć są jeszcze w fazie wstępnej. Obliczenia w pamięci (inmemory computing lub IMC) rozwiązują opisane wyżej problemy, uruchamiając obliczenia macierzy AI bezpośrednio w module pamięci, unikając przesyłania danych przez magistralę pamięci. IMC sprawdza się w przypadku wnioskowania AI, ponieważ obejmuje ono względnie statyczny (ale duży) zbiór danych o wagach, do którego wielokrotnie uzyskuje się dostęp. Zawsze istnieje potrzeba przesłania pewnych danych do i na zewnątrz układu obliczeniowego, jednak IMC eliminuje większość kosztów transferu energii i opóźnień związanych z przemieszczaniem danych poprzez utrzymywanie danych w tej samej jednostce fizycznej, gdzie mogą być efektywnie używane i ponownie wykorzystywane do wielu obliczeń.
Jak powiedział w kwietniu 2022 roku na konferencji GTC, Bill Dally z Nvidii, w jego firmie sztuczna inteligencja uczestniczy już w projektowaniu nowych procesorów. Zatem nie jest wykluczone, że ostatecznie to sama AI zaprojektuje i zoptymalizuje hardware na swoje potrzeby, który rozwiązywałby wszystkie wyżej opisane problemy i ograniczenia.
Nvidia, która posiada około 95 proc. rynku chipów AI, przewiduje, że w ciągu dekady lat modele sztucznej inteligencji będą milion razy potężniejsze niż ChatGPT. Taką opinię wygłosił szef firmy, Jen-Hsun Huang, podczas prezentacji na GTC, dodając, że prawdziwe przełomy dopiero przed nami, a modele sztucznej inteligencji będą w stanie wykonywać jeszcze bardziej skomplikowane zadania (2), w tym przewidywanie zachowania ludzi i zwierząt, projektowanie nowych leków, materiałów i inne.
Mirosław Usidus