Biz daim işimiz üçün dil modelləri hazırlayırıq. Komandamız müxtəlif tapşırıqlar üçün seçilmiş onlarla müxtəlif video kartdan istifadə edir: haradasa bizə güclü DGX stansiyası lazımdır və haradasa RTX 2080Ti kimi köhnə oyun kartı kifayətdir. Model təlimi üçün optimal GPU-nun seçilməsi prosesin həm sürətinə, həm də qənaətcilliyinə əhəmiyyətli dərəcədə təsir göstərə bilər.
Maraqlısı odur ki, internetdə maşın öyrənməsi üçün GPU müqayisəsi ilə kifayət qədər məqalə var, lakin dil modeli təlimi üçün sürətə çox az diqqət yetirilir. Əsasən yalnız nəticə çıxarma testləri tapılır. Yeni H100 çipi buraxıldıqda, NVidia-nın hesabatında onun məşqdə A100-dən doqquz dəfəyə qədər sürətli olduğu bildirilirdi, lakin bizim tapşırıqlarımız üçün yeni kart köhnədən cəmi 90% daha sürətli idi. Müqayisə üçün qeyd edək ki, bulud provayderlərimizdə bu GPU-lar arasında 2x qiymət fərqi var idi, ona görə də pula qənaət etmək üçün yeni H100-ə keçməyin mənası yox idi.
Bundan əlavə, biz 8 A100 80GB qrafik kartından ibarət və ayda 10 min dollara başa gələn DGX stansiyasını sınaqdan keçirdik. Testdən sonra məlum oldu ki, bu stansiyanın qiymət/performans nisbəti bizə heç uyğun gəlmir və bu pul üçün biz 66 x RTX 3090 ala bilərik ki, bu da ümumilikdə daha faydalı olacaq.
Tərcümə dili modellərimizin 500 milyona qədər parametri var (orta hesabla 100 milyondan 300 milyona qədər). Mümkündür ki, parametrlərin sayını əhəmiyyətli dərəcədə artırsaq, DGX-nin qiymət/performans nisbəti daha yaxşı olacaq. Hal-hazırda biz bütün dillər arasında eyni anda bütün variasiyalarda tərcümə edə bilən böyük dil modellərini öyrətmirik, lakin hər bir dil cütü üçün ayrıca dil modellərindən istifadə edirik, məsələn. İngilis-alman. Belə modellərin hər biri 120 ilə 300 Mb arasında dəyişir.
Qeyd etmək lazımdır ki, müxtəlif dillərdə İnternetdə müxtəlif həcmdə məlumatlar var və bu zaman. Məsələn, ispan dili üçün tərcümələrlə 500 milyon cümlə tapa bilərsiniz, lakin Tibet kimi daha nadir dillər üçün modellər hazırlayarkən, mövcud məlumatlar əsasında maşın öyrənmə tapşırıqları üçün xüsusi GPU seçməlisiniz. İngilis dilindən ispan dilinə tərcümə modeli yaratmaq üçün biz 4 x RTX 4500 və 256 GB RAM olan serverdən istifadə edirik. Eyni zamanda, Tibet dili RTX 2080 Ti-də 16 GB RAM ilə öyrədilə bilər, çünki neyron şəbəkəsinin mürəkkəbliyini artırmaq və nəticədə az miqdarda məlumatla daha güclü server götürmək mənasızdır.
Qrafik prosessorların və nəzəri rəqəmlərin seçilməsi
OpenNMT-tf çərçivəsindən istifadə edərək daxili Data Studio platformamızda dil modeli təlimi keçirildi. Bu mərhələyə məlumatların hazırlanması, model təlimi və istinad tərcüməsi ilə model müqayisəsi daxildir. Təlim zamanı FP32 əvəzinə FP16-dan istifadə tərcümə keyfiyyətini aşağı salmadan dil modellərinin təlim vaxtını əhəmiyyətli dərəcədə azaltmağa imkan verdi, lakin bütün GPU-larımız bunu dəstəkləmədi.
Qrafik prosessor seçərkən emal gücü (TFLOPS), video yaddaş (VRAM), GPU etalon nəticələri, kitabxana və çərçivə dəstəyi, büdcə və digər amillər (qrafik kartın ölçüsü və forma faktoru, güc tələbləri) kimi ölçüləri nəzərə almaq standartdır, soyutma və sisteminizlə uyğunluq). Mətn yaratma modellərini öyrədərkən, müxtəlif dillərin müxtəlif miqdarda resurslar istehlak edəcəyini də nəzərə almalısınız. Məsələn, Latın dilləri üçün bir simvolu, kiril dilləri üçün 2 baytı və heroqlifləri ehtiva edən dillər üçün 3 baytı kodlaşdırmaq üçün 1 bayt istifadə olunur. Qrafik kartınızın hansı xüsusiyyətlərə malik olacağını başa düşmək öyrənmə prosesinin sürətinə əhəmiyyətli dərəcədə təsir göstərir.
Modelləri istifadə olunan GPU-lar baxımından öyrədən zaman video kartlar istifadə müddətinə görə iki qrupa bölünürdü: öyrənmə sürətinin ilk ölçülərini aparmaq üçün istifadə edilən erkən video kartlar və hazırda istifadə olunan kartlar. Bu qrafik kartların əsas xüsusiyyətlərini müvafiq olaraq Cədvəl 1 və Cədvəl 2-də tapmaq olar.
Cədvəl 1 - Əvvəllər istifadə edilmiş qrafik prosessorları və onların texniki parametrləri
Number of GPUs | GPU | VRAM, G | CUDA | FP16, TFLOPS | FP32, TFLOPS |
---|---|---|---|---|---|
1 | Tesla V100-SXM2 | HBM2, 16 | 7.0 | 31.33 | 16.31 |
2 | Tesla V100-SXM2 | HBM2, 32 | 7.0 | 31.33 | 15.67 |
1 | RTX 4060 Ti | GDDR6, 8 | 8.9 | 22.06 | 22.06 |
1 | Nvidia A40 | GDDR6, 48 | 8.6 | 37.42 | 37.42 |
2 | Nvidia A40 | GDDR6, 96 | 8.6 | 37.42 | 37.42 |
1 | Nvidia A100 | HBM2, 40 | 8.0 | 77.97 | 19.49 |
1 | Nvidia A100 | HBM2, 80 | 8.0 | 77.97 | 19.49 |
1 | Nvidia RTX A6000 | GDDR6, 48 | 8.6 | 38.71 | 38.71 |
1 | Nvidia A10 | GDDR6, 24 | 8.6 | 31.24 | 31.24 |
8 | Nvidia A10 | GDDR6, 192 | 8.6 | 31.24 | 31.24 |
1 | Nvidia H100 | HBM3, 80 | 9.0 | 204.9 | 51.22 |
Qeyd
1. CUDA 7.0-dan çox olduqda, FP16-dan istifadə CUDA versiyasından və qrafik kartın özünün xüsusiyyətlərindən asılı olaraq təlim sürətini artıracaq.
2. Qrafik kartın spesifikasiyası FP16-dan FP32-yə performans nisbətinin 1-dən 1-ə qədər olduğunu göstərirsə, qarışıq dəqiqlikdən istifadə edərək təlim sürətini spesifikasiyada göstərilən məbləğə qədər artırmağa zəmanət veriləcəkdir. Məsələn, Quadro RTX 6000 üçün FP16 TFLOPS dəyəri 32,62 (2:1) məşqi ən azı iki dəfə (praktikada 2,4 dəfə) sürətləndirəcək
Cədvəl 2 - Hal-hazırda istifadə olunan GPU modelləri və onların əsas xüsusiyyətləri
Number of GPUs in use | GPU | VRAM, G | CUDA | FP16, TFLOPS | FP32, TFLOPS |
---|---|---|---|---|---|
1 | Quadro RTX 6000 | GDDR6, 24 | 7.5 | 32.62 | 16.31 |
2 | Quadro RTX 6000 | GDDR6, 48 | 7.5 | 32.62 | 16.31 |
4 | Quadro RTX 6000 | GDDR6, 96 | 7.5 | 32.62 | 16.31 |
2 | Nvidia TITAN RTX | GDDR6, 48 | 7.5 | 32.62 | 16.31 |
4 | Nvidia RTX A4500 | GDDR6, 96 | 8.6 | 23.65 | 23.65 |
1 | Nvidia GeForce RTX 3090 | GDDR6X, 24 | 8.6 | 35.58 | 35.58 |
1 | Nvidia GeForce RTX 3070 | GDDR6, 8 | 8.6 | 20.31 | 20.31 |
* - FP16,TFLOPS və FP32,TFLOPS üçün dəyərlər GPU üzrə spesifikasiyalardan götürülüb
GPU təlim və sınaq prosesi
Modellər 18 GPU dəsti ilə hazırlanmışdır. Neyron şəbəkə təlimi prosesində biz çoxsaylı dil cütlərindən (yüzdən çox dil) istifadə etdik. GPU testləri hansı aparatın xüsusi tapşırıqlar üçün ən yaxşı performans göstərdiyini müəyyən etməyə kömək etdi. Dil cütlərimizin təlimi zamanı aşağıdakı neyron şəbəkə parametrləri əsas götürüldü:
- vocab ölçüsü = 30 000
- rəqəmlər = 768
- qatlar = 6
- başlar = 16
- daxili ölçü = 4 096
Birincisi, Cədvəl 1 əsasında birinci qrupa aid olan GPU-ları xarakterizə edək. Göstəricilərin müqayisəsi üçün əsas kimi modelin təqribən 1000 addım sürətlə hazırlanmasına sərf olunan dəqiqələr və saniyələr və 100.000 ədəd partiya ölçüsündən çox vaxt sərf olunacaq.
Vurğulayırıq ki, birinci qrup üçün sürət ölçmələri istifadə etməklə həyata keçirilib düzenleme mexanizm və yalnız istifadə FP32МАТЕРБА. Bu mexanizmdən istifadə etmədən bəzi serverlərdə öyrənmə sürəti daha sürətli ola bilər.
Hizalama mexanizmi əsas və tərcümə edilmiş mətndəki alt sətirləri uyğunlaşdırmağa imkan verir. Cümlədəki alt sətir fərqli şriftlə vurğulana bildikdə və vurğulama ilə tərcümə edilməli olduqda, veb səhifələr kimi formatlaşdırılmış mətni tərcümə etmək lazımdır.
Neyron şəbəkənin yuxarıda qeyd olunan parametrlərini nəzərə alaraq, birinci cədvəldən ən yaxşı vaxt GPU Nvidia H100 tərəfindən 22 dəqiqəlik öyrənmə vaxtı ilə göstərilmişdir aralıq vaxt isə eyni marka GeForce RTX 4060 Ti-nin GPU tərəfindən 72 dəqiqəlik öyrənmə müddəti ilə, sonuncu yeri isə 140 dəqiqəlik öyrənmə müddəti ilə GPU Tesla V100-SXM 2 tutdu.
GPU testində həmçinin 20 dəqiqə 28 saniyəlik öyrənmə əyrisi olan səkkiz Nvidia A10 kartı, 56 dəqiqəlik iki Nvidia A40 kartı və 86 dəqiqədə daxil olan iki Tesla V100-SXM kartı var idi. Eyni GPU seriyasının birdən çox kartının eyni vaxtda tətbiqi modellərin təlim prosesini sürətləndirə və daha yüksək imkanlara malik GPU-larla demək olar ki, eyni vaxtda göstərə bilər, lakin belə bir texnika maliyyə və prosedur baxımından kifayət qədər rasional olmaya bilər. Öyrənmə sürətinin ölçülməsinin nəticələrini Cədvəl 3 nömrəsində müşahidə etmək olar.
Cədvəl 3 - Əvvəllər istifadə edilmiş qrafik xəritələrdə təlim vaxtının ölçülməsi
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 32 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
8 | Nvidia A10 | 20,28 | 6 250 |
1 | Nvidia H100 | 22 | 25 000 |
1 | A100 (80 Gb) | 40 | 25 000 |
1 | A100 (40 Gb) | 56 | 15 000 |
2 | Nvidia A40 | 56 | 12 500 |
1 | RTX A6000 | 68,25 | 12 500 |
1 | GeForce RTX 4060 Ti | 72 | 4 167 |
1 | Nvidia A40 | 82,08 | 12 500 |
2 | Tesla V100-SXM | 86 | 4 167 |
1 | Nvidia A10 | 104,50 | 5 000 |
1 | Tesla V100-SXM2 | 140 | 4 167 |
Sonra, gəlin hazırda istifadə olunan qrafik qaz pedallarının müqayisəli təhlilini aparaq (Cədvəl 2). Bu qrup qrafik prosessorları üçün sürət ölçmələri istifadə edərək həyata keçirilirdi düzenleme mexanizm, həmçinin FP16 və FP32-dən istifadə. Bu mexanizm və qarışıq dəqiqlik daxil olmaqla sürət ölçmələri aşağıda müvafiq olaraq 4 və 5-ci Cədvəllərdə təqdim olunacaq.
Beləliklə, bu cədvəldən GPU-ların sürətini ölçdükdən sonra deyə bilərik ki, birinci yeri RTX A4500 seriyalı GPU 31 dəqiqəlik məşq vaxtı ilə tutub, lakin vurğulamaq lazımdır ki, belə bir təlim modelləri sürəti əldə edilib. istifadə olunan GPU vahidlərinin sayını 4-ə qədər artırmaqla. Bu faktı nəzərə almasaq, yuxarıda qeyd olunan GPU-nun məşq sürəti daha yüksək olacaq ki, bu da onu yekun cədvəldə sondan əvvəlki yerə qoyacaq.
47 dəqiqəlik öyrənmə müddəti olan Quadro RTX 6000 seriyalı GPU ikinci yerdədir. Qeyd etmək lazımdır ki, belə bir məşq sürəti istifadə olunan prosessorun dördə bərabər olan vahidlərinin sayı ilə tərs şərtlənir. Yalnız bir belə GPU-dan istifadə təxminən 3,2 dəfə sürət itkisi verəcək və nəticədə təxminən 153 dəqiqə olacaq və onu sonuncu yerə qoyacaq.
Üçüncü sətir TITAN RTX seriyalı GPU tərəfindən 75 dəqiqə 85 saniyə ilə götürülüb. Bu öyrənmə sürəti balı 2 prosessorun istifadəsi ilə bağlıdır ki, bu da modelin məşq vaxtını azaldır.
Bir vahidin sayında məşq sürəti baxımından şübhəsiz lider 78 dəqiqə 26 saniyə ilə mütləq GeForce RTX 3090 seriyalı GPU olacaq. Bu GPU-nun vahidlərinin sayının artırılması modelin məşq sürətini sürətləndirəcək və bu, yuxarıda qeyd olunan bütün GPU modellərini açıq şəkildə keçəcək. Model təlim vaxtının ölçülməsinə dair məlumatları Cədvəl 4-də görmək olar.
Cədvəl 4 - Əvvəllər istifadə edilmiş GPU-larda dil modeli təlim sürətinin müqayisəli təhlili
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 32 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
4 | Nvidia RTX A4500 | 31 | 5 000 |
4 | Quadro RTX 6000 | 47 | 6 250 |
2 | Nvidia TITAN RTX | 75,85 | 6 250 |
1 | GeForce RTX 3090 | 78,26 | 6 250 |
2 | Quadro RTX 6000 | 88 | 6 250 |
1 | GeForce RTX 3070 | 104,17 | 2 000 |
1 | Quadro RTX 6000 | 153 | 6 250 |
FP16 istifadə edərək aşağıdakı məşq sürəti ölçmələri aparıldı. FP32 ilə müqayisədə yarım dəqiqlik model təlimi zamanı istehlak edilən yaddaşın miqdarını azaltmağa və GPU-da hesablamanı sürətləndirməyə imkan verir. Təqdimatın dəqiqliyi FP32-nin istifadəsi ilə müqayisədə daha aşağı olacaq.
Əvvəlki cədvəldən FP32 istifadə edən modellərin məşq vaxtını ölçərək deyə bilərik ki, neyron şəbəkənin məşq vaxtı demək olar ki, iki dəfə azalıb. Performansın ölçülməsi nəticələrinə əsasən, biz Cədvəl 4-də maşın öyrənmə GPU meyarlarından müşahidə edə bilərik ki, GPU-ların mövqeləri əsasən dəyişməz qalıb. Quadro RTX 6000 seriyalı kart GeForce RTX 3090 GPU-nu 96 saniyə qabaqlayaraq beşinci mövqedən altıncı yerə yüksəldi. Son nömrələr Cədvəl 5-də göstərilmişdir.
Cədvəl 5 - Əvvəllər istifadə edilmiş GPU-larda dil modeli təlim sürətinin müqayisəli təhlili
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 16 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
4 | Nvidia RTX A4500 | 15,81 | 10 000 |
4 | Quadro RTX 6000 | 20,34 | 12 500 |
2 | Nvidia TITAN RTX | 32,68 | 6 250 |
2 | Quadro RTX 6000 | 37,93 | 10 000 |
1 | GeForce RTX 3090 | 38,89 | 10 000 |
1 | GeForce RTX 3070 | 48,51 | 2 500 |
1 | Quadro RTX 6000 | 52,56 | 10 000 |