Benchmarki gpu głębokiego uczenia

Nieustannie szkolimy modele językowe do naszej pracy. Nasz zespół wykorzystuje dziesiątki różnych kart wideo wybranych do różnych zadań: gdzieś potrzebujemy potężnej stacji DGX, a gdzieś starą kartę do gier, taką jak RTX 2080Ti, wystarczy. Wybór optymalnego procesora graficznego do treningu modelowego może znacząco wpłynąć zarówno na szybkość, jak i opłacalność procesu.

Interesujące jest to, że istnieje sporo artykułów w Internecie z porównaniem GPU do uczenia maszynowego, ale bardzo niewiele skupia się na szybkości treningu modeli językowych. Znajdują się tu głównie tylko testy wnioskowania. Kiedy wypuszczono nowy chip H100, w raporcie NVidii stwierdzono, że na treningu był nawet dziewięć razy szybszy niż A100, ale do naszych zadań nowa karta była tylko o 90% szybsza od starej. Dla porównania, nasi dostawcy usług w chmurze mieli 2-krotną różnicę cen między tymi procesorami graficznymi, więc nie było sensu przechodzić na nowy H100, aby zaoszczędzić pieniądze.

Oprócz tego wzięliśmy na test stację DGX, która składa się z 8 kart graficznych A100 80 GB i kosztuje 10 tysięcy dolarów miesięcznie. Po teście stało się jasne, że stosunek ceny do wydajności tej stacji w ogóle nam nie odpowiada i za te pieniądze możemy wziąć 66 x RTX 3090, co w sumie będzie znacznie bardziej przydatne.

Nasze modele języków tłumaczeniowych mają do 500 milionów parametrów (średnio od 100 milionów do 300 milionów). Możliwe, że jeśli znacząco zwiększymy liczbę parametrów, stosunek ceny do wydajności DGX będzie lepszy. Obecnie nie trenujemy dużych modeli językowych, które mogą tłumaczyć między wszystkimi językami we wszystkich odmianach jednocześnie, ale używamy oddzielnych modeli językowych dla każdej pary językowej, np. Angielsko - niemieckiej. Każdy z takich modeli zajmuje od 120 do 300 Mb.

Warto zauważyć, że różne języki mają różną ilość danych w Internecie i podczas. Na przykład w przypadku języka hiszpańskiego można znaleźć 500 milionów zdań z tłumaczeniami, ale podczas szkolenia modeli dla rzadszych języków, takich jak tybetański, musisz wybrać konkretny procesor graficzny do zadań uczenia maszynowego w oparciu o dostępne dane. Aby stworzyć model tłumaczenia z angielskiego na hiszpański, używamy serwera z 4 x RTX 4500 i 256 GB RAM. Jednocześnie język tybetański można trenować na RTX 2080 Ti z 16 GB pamięci RAM, ponieważ nie ma sensu zwiększać złożoności sieci neuronowej, a w rezultacie przyjmować potężniejszy serwer z niewielką ilością danych.

Wybór procesorów graficznych i figur teoretycznych

Szkolenie z modelu językowego odbyło się na naszej wewnętrznej platformie Data Studio z wykorzystaniem frameworka OpenNMT-tf. Faza ta obejmowała przygotowanie danych, szkolenie modeli i porównanie modeli z tłumaczeniem referencyjnym. Korzystanie z 16 PR zamiast 32 PR podczas szkolenia pozwoliło nam znacznie skrócić czas szkolenia modeli językowych bez pogorszenia jakości tłumaczenia, ale nie wszystkie nasze procesory graficzne to wspierały.

Wybierając procesor graficzny, standardem jest uwzględnienie takich wskaźników, jak moc obliczeniowa (TFLOPS), pamięć wideo (VRAM), wyniki testów porównawczych GPU, obsługa bibliotek i frameworków, budżet i inne czynniki (rozmiar i kształt karty graficznej, wymagania dotyczące mocy, chłodzenie i kompatybilność z systemem). Trenując modele generowania tekstu, należy również pamiętać, że różne języki będą zużywać różne ilości zasobów. Na przykład 1 bajt jest używany do kodowania jednego znaku dla języków łacińskich, 2 bajty dla języków cyrylicy i 3 bajty dla języków zawierających hieroglify. Zrozumienie, jakie cechy będzie miała Twoja karta graficzna, ma istotny wpływ na szybkość procesu uczenia się.

Podczas szkolenia modeli pod kątem stosowanych GPU karty wideo podzielono na dwie grupy ze względu na okres użytkowania: wczesne karty wideo, które służyły do dokonywania pierwszych pomiarów szybkości uczenia się oraz karty aktualnie używane. Główne cechy tych kart graficznych można znaleźć odpowiednio w tabeli 1 i tabeli 2.

Tabela 1 - Wcześniej używane procesory graficzne i ich parametry techniczne
 

Number of GPUsGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Tesla V100-SXM2HBM2, 167.031.3316.31
2Tesla V100-SXM2HBM2, 327.031.3315.67
1RTX 4060 TiGDDR6, 88.922.0622.06
1Nvidia A40GDDR6, 488.637.4237.42
2Nvidia A40GDDR6, 968.637.4237.42
1Nvidia A100HBM2, 408.077.9719.49
1Nvidia A100HBM2, 808.077.9719.49
1Nvidia RTX A6000GDDR6, 488.638.7138.71
1Nvidia A10GDDR6, 248.631.2431.24
8Nvidia A10GDDR6, 1928.631.2431.24
1Nvidia H100HBM3, 809.0204.951.22


Uwagi
1. Przy CUDA większym niż 7,0 użycie FP16 zwiększy szybkość treningu, w zależności od wersji CUDA i charakterystyki samej karty graficznej.
2. Jeżeli specyfikacja karty graficznej wskazuje, że stosunek wydajności FP16 do FP32 jest większy niż 1 do 1, wówczas przy zastosowaniu mieszanej precyzji zagwarantowane zostanie zwiększenie szybkości treningu o kwotę określoną w specyfikacji. Na przykład dla Quadro RTX 6000 wartość TFLOPS FP16 wynosząca 32,62 (2:1) przyspieszy trening co najmniej dwukrotnie (w praktyce 2,4 razy)

Tabela 2 - Obecnie stosowane modele GPU i ich główne cechy
 

Number of GPUs in useGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Quadro RTX 6000GDDR6, 247.532.6216.31
2Quadro RTX 6000GDDR6, 487.532.6216.31
4Quadro RTX 6000GDDR6, 967.532.6216.31
2Nvidia TITAN RTXGDDR6, 487.532.6216.31
4Nvidia RTX A4500GDDR6, 968.623.6523.65
1Nvidia GeForce RTX 3090GDDR6X, 248.635.5835.58
1Nvidia GeForce RTX 3070GDDR6, 88.620.3120.31

* - wartości dla FP16, TFLOPS i FP32, TFLOPS są pobierane ze specyfikacji dla każdego procesora graficznego

Proces szkolenia i testowania GPU

Modele trenowano przy użyciu zestawu 18 procesorów graficznych. W procesie treningu sieci neuronowych korzystaliśmy z licznych par językowych (ponad sto języków). Testy GPU pomogły określić, który sprzęt działa najlepiej w przypadku określonych zadań. Podczas szkolenia naszych par językowych przyjęto za podstawę następujące parametry sieci neuronowej
 

  • rozmiar Vocab = 30 000
  • numunits = 768
  • warstwy = 6
  • głowy = 16
  • wymiar wewnętrzny = 4 096


Po pierwsze, scharakteryzujmy procesory graficzne, które należały do pierwszej grupy na podstawie tabeli 1. Czas w minutach i sekundach spędzony na szkoleniu modelu z przybliżoną prędkością 1000 kroków i wielokrotnością wielkości partii 100 000 jednostek zostanie przyjęty jako podstawa do porównania wskaźników.

Podkreślamy, że dla pierwszej grupy pomiary prędkości wykonano przy użyciu tzw wyrównanie mechanizm i tylko używanie FP32. Bez użycia tego mechanizmu prędkość uczenia się na niektórych serwerach może być znacznie większa.

Mechanizm wyrównywania umożliwia dopasowanie podciągów w tekście podstawowym i przetłumaczonym. Konieczne jest przetłumaczenie sformatowanego tekstu, np. stron internetowych, gdy podciąg w zdaniu może zostać podświetlony inną czcionką i powinien zostać przetłumaczony z podświetleniem.

Biorąc pod uwagę wyżej wymienione parametry sieci neuronowej, najlepszy czas z pierwszej tabeli pokazał GPU Nvidia H100 z czasem uczenia 22 minut, a czas pośredni pokazał GPU tej samej marki GeForce RTX 4060 Ti z czasem nauki 72 minuty i ostatnie miejsce zajął GPU Tesla V100-SXM 2 z czasem nauki 140 minut.

W teście GPU znalazło się również osiem kart Nvidia A10 z krzywą uczenia 20 minut i 28 sekund, dwie karty Nvidia A40 z czasem 56 minut i dwie karty Tesla V100-SXM, które taktowały 86 minut. Jednoczesne zastosowanie wielu kart tej samej serii procesorów graficznych może przyspieszyć proces szkolenia modeli i pokazać się niemal w tym samym czasie z procesorami graficznymi o większej pojemności, ale taka technika może nie być wystarczająco racjonalna finansowo i proceduralnie. Wyniki pomiarów prędkości uczenia się można zaobserwować w tabeli nr 3.

Tabela 3 - Pomiary czasu szkolenia na dotychczas stosowanych mapach graficznych
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
8Nvidia A1020,286 250
1Nvidia H1002225 000
1A100 (80 Gb)4025 000
1A100 (40 Gb)5615 000
2Nvidia A405612 500
1RTX A600068,2512 500
1GeForce RTX 4060 Ti724 167
1Nvidia A4082,0812 500
2Tesla V100-SXM864 167
1Nvidia A10104,505 000
1Tesla V100-SXM21404 167


Następnie przeprowadźmy analizę porównawczą aktualnie używanych graficznych pedałów gazu (tabela 2). Dla tej grupy procesorów graficznych wykonano pomiary prędkości za pomocą wyrównanie mechanizmu, a także z wykorzystaniem FP16 i FP32. Pomiary prędkości obejmujące ten mechanizm i mieszaną precyzję zostaną przedstawione poniżej odpowiednio w tabelach 4 i 5.

Tak więc, zmierzywszy prędkość układów GPU z tej tabeli, możemy powiedzieć, że pierwsze miejsce zajął układ GPU serii RTX A4500 z czasem treningu 31 minut, ale należy podkreślić, że taką prędkość modeli treningowych uzyskano zwiększając liczbę jednostek używanego układu GPU do 4. Pomijając ten fakt, prędkość treningowa wspomnianego GPU będzie znacznie wyższa, co umieści go na przedostatnim miejscu w końcowej tabeli.

Na drugim miejscu znajduje się procesor graficzny Quadro RTX serii 6000 z czasem nauki 47 minut. Należy zauważyć, że taka prędkość treningu jest odwrotnie uwarunkowana liczbą jednostek używanego procesora, która jest równa czterem. Użycie tylko jednego takiego procesora graficznego spowodowałoby utratę prędkości około 3,2 razy, a co za tym idzie, około 153 minut i umieściłoby go na ostatnim miejscu.

Trzecią linię zajął procesor graficzny serii TITAN RTX z czasem 75 minut i 85 sekund. Ten wynik szybkości uczenia się wynika z użycia 2 procesorów, co skróciło czas szkolenia modelu.

Niekwestionowanym liderem pod względem szybkości treningowej w ilości jednej jednostki na pewno będzie GPU serii GeForce RTX 3090 z czasem 78 minut i 26 sekund. Zwiększenie liczby jednostek tego GPU przyspieszy prędkość treningu modelu, który wyraźnie wyprzedzi wszystkie wyżej wymienione modele GPU. Dane dotyczące modelowych pomiarów czasu treningu można zobaczyć w tabeli 4.

Tabela 4 - Analiza porównawcza szybkości treningu modelu językowego na wcześniej używanych procesorach graficznych
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A4500315 000
4Quadro RTX 6000476 250
2Nvidia TITAN RTX75,856 250
1GeForce RTX 309078,266 250
2Quadro RTX 6000886 250
1GeForce RTX 3070104,172 000
1Quadro RTX 60001536 250


Za pomocą FP16 wykonano następujące pomiary prędkości treningowej. W porównaniu do FP32, półprecyzja pozwala zmniejszyć ilość pamięci zużywanej podczas treningu modelu i przyspieszyć obliczenia na procesorze graficznym. Dokładność reprezentacji będzie niższa niż przy zastosowaniu FP32.

Mierząc czas treningu modeli wykorzystujących FP32 z poprzedniej tabeli, możemy powiedzieć, że czas treningu sieci neuronowej został skrócony prawie dwukrotnie. Na podstawie wyników pomiaru wydajności możemy zaobserwować na podstawie testów porównawczych GPU uczenia maszynowego w Tabeli 4, że pozycje procesorów graficznych pozostały w dużej mierze niezmienione. Karta serii Quadro RTX 6000 awansowała z piątej pozycji na szóstą, pokonując o 96 sekund procesor graficzny GeForce RTX 3090. Ostateczne liczby przedstawiono w tabeli 5.

Tabela 5 - Analiza porównawcza szybkości treningu modeli językowych na wcześniej używanych procesorach graficznych
 

Using the alignment mechanism
Effective batch size = 100 000
FP 16
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A450015,8110 000
4Quadro RTX 600020,3412 500
2Nvidia TITAN RTX32,686 250
2Quadro RTX 600037,9310 000
1GeForce RTX 309038,8910 000
1GeForce RTX 307048,512 500
1Quadro RTX 600052,5610 000

Często zadawane pytania (FAQ)

Czy warto kupić GPU do głębokiego uczenia się?

Zakup procesora graficznego do głębokiego uczenia się może znacznie zwiększyć szybkość i wydajność szkolenia, co czyni go wartościową inwestycją w przypadku poważnych projektów. Decyzja powinna jednak uwzględniać takie czynniki, jak budżet, konkretne przypadki użycia oraz to, czy rozwiązania chmurowe mogą być bardziej opłacalne.

Który procesor graficzny jest najlepszy do głębokiego uczenia się?

NVIDIA A100 jest często uważana za najlepszy wybór do głębokiego uczenia się, oferując wyjątkową wydajność i pamięć dla dużych modeli. Dla użytkowników dbających o budżet, NVIDIA RTX 3090 zapewnia silne możliwości skutecznego szkolenia modeli.

Czy AMD czy NVIDIA jest lepsza do głębokiego uczenia się?

NVIDIA jest ogólnie preferowana do głębokiego uczenia się ze względu na solidny ekosystem oprogramowania, który zwiększa wydajność i kompatybilność z popularnymi frameworkami. Chociaż procesory graficzne AMD uległy poprawie, nadal pozostają w tyle za firmą NVIDIA pod względem optymalizacji i obsługi aplikacji do głębokiego uczenia się.

Czy GPU pomaga w NLP?

Tak, procesory graficzne znacznie przyspieszają trening sieci neuronowych w przetwarzaniu języka naturalnego (NLP), wydajnie obsługując obliczenia równoległe. To zwiększenie prędkości pozwala na szybsze eksperymentowanie i iterację, co prowadzi do poprawy wydajności modelu i skrócenia czasu treningu.

Czekają na nas kolejne fascynujące lektury

Rozpoznawanie mowy na miejscu: co to jest?

Rozpoznawanie mowy na miejscu: co to jest?

September 27, 2024

Ocena znaczenia statystycznego w systemie tłumaczeń

Ocena znaczenia statystycznego w systemie tłumaczeń

September 10, 2024

Zwrot z inwestycji w lokalizację

Zwrot z inwestycji w lokalizację

September 09, 2024

Skontaktuj się z pomocą techniczną

* Pola wymagane

Wysyłając ten formularz, zgadzam się, że Warunki korzystania z usługi i Polityka prywatności będą regulować odpowiednio korzystanie z otrzymywanych przeze mnie usług i przetwarzanie przekazywanych przeze mnie danych osobowych.

E-mail

Zakończony

Twoje żądanie zostało pomyślnie wysłane

×