W tym kursie NLP Cloud wyjaśniamy, dlaczego specyficzny sprzęt jest często niezbędny do przyspieszenia przetwarzania obciążeń związanych z uczeniem maszynowym. Sprawdzamy również, jakie są najlepsze akceleratory dostępne na rynku w 2023 roku: GPU, TPU, IPU, Inferentia, Habana Gaudi...
Oto struktura kursu:
Witam wszystkich, tu Julien Salinas z NLP Cloud.
W tym kursie zobaczymy, jakiego rodzaju akceleratorów sprzętowych możemy dziś używać, aby przyspieszyć nasze obciążenia związane z wnioskowaniem.
Aby zrozumieć akcelerację sprzętową, ważne jest, aby pamiętać, że aplikacje AI są obecnie w większości oparte na sieciach neuronowych, znanych również jako głębokie uczenie.
Mnożenie macierzy jest niezbędną operacją w sieciach neuronowych, ponieważ pozwala im uczyć się złożonych danych i złożonych reprezentacji danych.
W sieci neuronowej dane wejściowe są reprezentowane przez macierz, a wagi połączeń między neuronami są również reprezentowane przez macierz.
Kiedy te dwie macierze są mnożone, wynikiem jest nowa macierz, która reprezentuje wyjście neuronów.
Proces ten jest powtarzany przez wiele warstw neuronów, umożliwiając sieci uczenie się coraz bardziej abstrakcyjnych i złożonych cech danych wejściowych.
Macierze są podstawowymi elementami modeli sztucznej inteligencji, dlatego ważne jest, aby używać sprzętu, który jest bardzo dobry w wykonywaniu operacji na macierzach.
Kolejnym ważnym aspektem są liczby zmiennoprzecinkowe.
Punkty zmiennoprzecinkowe są ważne w sieciach neuronowych, ponieważ pozwalają na reprezentację wartości ułamkowych.
Jak już wspomnieliśmy, sieci neuronowe obejmują duże macierze z wieloma wpisami.
Używanie tylko wartości całkowitych szybko doprowadziłoby do błędów przepełnienia.
Korzystając z wartości zmiennoprzecinkowych, sieci neuronowe mogą reprezentować wartości z wieloma miejscami po przecinku, co pozwala na bardziej precyzyjne obliczenia i lepszą dokładność wyników.
Podsumowując, aby wydajnie przetwarzać obciążenia związane ze sztuczną inteligencją, potrzebujemy sprzętu, który dobrze radzi sobie z mnożeniem macierzy i obliczeniami zmiennoprzecinkowymi.
Dwie główne opcje, które można obecnie rozważyć w przypadku obciążeń związanych z uczeniem maszynowym, to procesory CPU i układy GPU.
CPU, czyli Central Processing Unit, to procesor ogólnego przeznaczenia, który obsługuje szeroki zakres zadań w systemie komputerowym, w tym uruchamianie aplikacji, zarządzanie systemem operacyjnym i wykonywanie obliczeń matematycznych.
Procesory zostały zaprojektowane tak, aby były wszechstronne i mogły obsługiwać wiele rodzajów zadań, ale nie są zoptymalizowane pod kątem żadnego konkretnego rodzaju obciążenia.
GPU, czyli Graphic Processing Unit, to wyspecjalizowany procesor zaprojektowany do obsługi złożonych, równoległych obciążeń, takich jak renderowanie grafiki i uczenie maszynowe.
Układy GPU posiadają tysiące mniejszych rdzeni, które współpracują ze sobą w celu jednoczesnego przetwarzania dużych ilości danych, dzięki czemu są znacznie szybsze niż procesory centralne w przypadku niektórych rodzajów obciążeń.
Operacje na macierzach można łatwo zrównoleglić na kilku małych rdzeniach, dlatego też procesory graficzne doskonale sprawdzają się w tej dziedzinie.
Ponadto, procesory graficzne mają zazwyczaj znacznie więcej jednostek zmiennoprzecinkowych niż procesory centralne, co pozwala im wykonywać operacje zmiennoprzecinkowe znacznie szybciej.
Teraz już wiesz, dlaczego procesor często nie wystarcza do dzisiejszych obciążeń AI i dlaczego konkretny sprzęt jest często bardzo ważny.
Przyjrzyjmy się teraz wyborom, jakie masz, jeśli chodzi o konkretne akceleratory sprzętowe.
Układy GPU NVIDIA są potężnym narzędziem do przetwarzania grafiki i oferują szereg funkcji, które czynią je idealnymi do gier, uczenia maszynowego, edycji wideo oraz zastosowań projektowych i inżynieryjnych.
Jako inżynier oprogramowania sztucznej inteligencji, bez wątpienia będziesz musiał grać z procesorami graficznymi NVIDIA, ponieważ mają one obecnie centralną pozycję na rynku GPU.
Ich najpotężniejsze karty dla AI w 2023 roku to A100 i H100.
AMD oferuje również szeroką gamę procesorów graficznych, w tym do uczenia maszynowego.
Ich gama produktów RockM jest interesująca i zachęcam do zapoznania się z nią.
Google buduje również własne chipy AI, zwane TPU dla TensorFlow Processing Unit.
Firma wykorzystuje te chipy wewnętrznie, ale także proponuje je w swojej ofercie Google Cloud.
Nie można jednak kupić TPU dla siebie.
TPU działają nieco inaczej niż GPU, ale będzie to temat na inny dedykowany film.
Graphcore to brytyjska firma produkująca specyficzny sprzęt AI o nazwie IPU, odpowiednik TPU Google.
IPU można zarówno kupić, jak i używać w chmurze za pośrednictwem jednego z partnerów.
AWS buduje własne chipy AI.
Mają chip dedykowany wnioskowaniu, zwany Inferentia, oraz drugi dedykowany treningowi, zwany Tranium.
Chipy te są stosunkowo tanie.
Nie można kupić takich chipów dla siebie, ale można ich używać na AWS EC2 lub Sage Maker.
Intel zbudował również własny chip AI o nazwie Habana Gaudi, który jest bardzo wydajną, ale bardzo kosztowną alternatywą.
Akceleratory sprzętowe są potężne, ale także bardzo drogie i niełatwe do nabycia z powodu globalnego niedoboru półprzewodników.
W związku z tym rozsądnie jest pracować nad optymalizacją obciążenia AI w jak największym stopniu, aby mogło ono działać na mniejszym sprzęcie.
W wielu sytuacjach procesory mogą być nawet przyzwoitą opcją dla wielu obciążeń związanych z uczeniem maszynowym.
Jak widać obecnie, w 2023 roku NVIDIA jest de facto rozwiązaniem, jeśli chodzi o akcelerację sprzętową w sztucznej inteligencji i uczeniu maszynowym.
Co ciekawe, pojawiają się jednak pewne alternatywy.
Być może za kilka lat, przy kolejnych projektach AI, będziesz korzystać z innych rodzajów akceleratorów.
Mam nadzieję, że ten kurs był przydatny i życzę miłego dnia.