Бид ажлынхаа хэлний загварыг байнга сургаж байдаг. Манай баг өөр өөр ажилд сонгосон олон арван өөр видео карт ашигладаг: хаа нэгтээ бидэнд хүчирхэг DGX станц хэрэгтэй, хаа нэгтээ RTX 2080Ti гэх мэт хуучин тоглоомын карт хангалттай. Загварын сургалтанд хамгийн оновчтой GPU-г сонгох нь үйл явцын хурд болон зардлын үр ашигт ихээхэн нөлөөлдөг.
Сонирхолтой нь интернетэд GPU-г машин сургалтын харьцуулалттай цөөн хэдэн нийтлэл байдаг ч хэлний загварын сургалтын хурдад маш цөөхөн анхаарал хандуулдаг. Ихэнхдээ зөвхөн дүгнэлтийн тест олддог. Шинэ H100 чип гарах үед NVidia-ийн тайланд энэ нь сургалтын явцад A100-аас ес дахин хурдан байсан боловч бидний даалгаврын хувьд шинэ карт нь хуучин картаас ердөө 90% хурдан байсан гэж мэдэгджээ. Харьцуулбал, манай үүлэн үйлчилгээ үзүүлэгчид эдгээр GPU-ийн хооронд 2х үнийн зөрүүтэй байсан тул мөнгө хэмнэхийн тулд шинэ H100 руу шилжих нь утгагүй байсан.
Үүнээс гадна бид 8 A100 80GB график картаас бүрдэх, сард 10 мянган долларын үнэтэй DGX станцыг туршиж үзсэн. Туршилтын дараа энэ станцын үнэ/гүйцэтгэлийн харьцаа бидэнд огт тохирохгүй байгаа нь тодорхой болсон бөгөөд энэ мөнгөний хувьд бид 66 x RTX 3090 авах боломжтой бөгөөд энэ нь нийтдээ илүү ашигтай байх болно.
Манай орчуулгын хэлний загварууд 500 сая хүртэлх параметртэй (дунджаар 100-300 сая). Хэрэв бид параметрийн тоог мэдэгдэхүйц нэмэгдүүлбэл DGX-ийн үнэ/гүйцэтгэлийн харьцаа илүү сайн байх болно. Одоогоор бид бүх хэлний хооронд нэг дор бүх хувилбараар орчуулах боломжтой том хэлний загваруудыг сургадаггүй, харин хэлний хос тус бүрт тусдаа хэлний загварыг ашигладаг, жишээлбэл. Англи-Герман. Ийм загвар бүр нь 120-300 Mb хүртэл байдаг.
Янз бүрийн хэлүүд интернетэд өөр өөр хэмжээний өгөгдөлтэй байдаг гэдгийг тэмдэглэх нь зүйтэй. Жишээлбэл, испани хэлний хувьд та орчуулгатай 500 сая өгүүлбэр олох боломжтой, гэхдээ төвд гэх мэт ховор хэлний загваруудыг сургахдаа байгаа өгөгдөл дээр үндэслэн машин сургалтын даалгаврын тусгай GPU сонгох хэрэгтэй. Англи хэлнээс испани хэл рүү орчуулах загварыг бий болгохын тулд бид 4 x RTX 4500 ба 256 ГБ RAM-тай сервер ашигладаг. Үүний зэрэгцээ төвд хэлийг RTX 2080 Ti дээр 16 ГБ RAM-тай сургах боломжтой, учир нь энэ нь мэдрэлийн сүлжээний нарийн төвөгтэй байдлыг нэмэгдүүлж, улмаар бага хэмжээний өгөгдөл бүхий илүү хүчирхэг сервер авах нь утгагүй юм.
График процессор болон онолын тоо баримтыг сонгох
Хэлний загварын сургалт нь OpenNMT-tf хүрээг ашиглан манай дотоод Data Studio платформ дээр явагдсан. Энэ үе шатанд өгөгдөл бэлтгэх, загвар сургалт, жишиг орчуулгатай загвар харьцуулах зэрэг багтсан. Сургалтын явцад FP32-ийн оронд FP16-г ашиглах нь орчуулгын чанарыг алдагдуулахгүйгээр хэлний загваруудын сургалтын хугацааг мэдэгдэхүйц бууруулах боломжийг бидэнд олгосон боловч манай бүх GPU үүнийг дэмжээгүй.
График процессорыг сонгохдоо боловсруулах хүч (TFLOPS), видео санах ой (VRAM), GPU жишиг үр дүн, номын сан, хүрээний дэмжлэг, төсөв болон бусад хүчин зүйлсийг (график картын хэмжээ ба хэлбэр хүчин зүйл, эрчим хүчний шаардлага) авч үзэх нь стандарт юм, хөргөлт, таны системтэй нийцтэй байдал). Текст үүсгэх загваруудыг сургахдаа өөр өөр хэл өөр өөр нөөцийг зарцуулна гэдгийг санах хэрэгтэй. Жишээлбэл, латин хэлэнд нэг тэмдэгт, кирилл хэлэнд 2 байт, иероглиф агуулсан хэлэнд 3 байт кодлоход 1 байт ашигладаг. Таны график карт ямар шинж чанартай болохыг ойлгох нь сургалтын үйл явцын хурдад ихээхэн нөлөөлдөг.
Загваруудыг ашигласан GPU-ийн хувьд сургахдаа видео картуудыг ашигласан хугацааны дагуу хоёр бүлэгт хуваасан: сургалтын хурдны анхны хэмжилтийг хийхэд ашигладаг эртний видео картууд болон одоо ашиглагдаж байгаа картууд. Эдгээр график картуудын үндсэн шинж чанарыг Хүснэгт 1 ба Хүснэгт 2-оос тус тус олж болно.
Хүснэгт 1 - Өмнө нь ашиглаж байсан график процессорууд болон тэдгээрийн техникийн параметрүүд
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 |
Тэмдэглэл
1. CUDA нь 7.0-ээс их байвал FP16-г ашиглах нь CUDA хувилбар болон график картын онцлогоос хамааран сургалтын хурдыг нэмэгдүүлэх болно.
2. Хэрэв график картын тодорхойлолт нь FP16 ба FP32 гүйцэтгэлийн харьцаа 1-ээс 1-ээс их байгааг харуулж байвал холимог нарийвчлалыг ашигласнаар сургалтын хурдыг тодорхойлолтод заасан хэмжээгээр нэмэгдүүлэх баталгаатай болно. Жишээлбэл, Quadro RTX 6000-ийн хувьд FP16 TFLOPS утга 32.62 (2:1) нь дасгалыг дор хаяж хоёр удаа (практикт 2.4 удаа) хурдасгах болно
Хүснэгт 2 - Одоогоор GPU загварууд болон тэдгээрийн үндсэн шинж чанаруудыг ашиглаж байна
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 болон FP32,TFLOPS-ийн утгыг GPU тус бүрийн техникийн үзүүлэлтээс авсан болно
GPU сургалт, туршилтын үйл явц
Загваруудыг 18 GPU ашиглан сургасан. Мэдрэлийн сүлжээний сургалтын явцад бид олон тооны хэлний хос (зуу гаруй хэл) ашигласан. GPU тестүүд нь тодорхой ажлуудад аль техник хангамж хамгийн сайн ажилладагийг тодорхойлоход тусалсан. Манай хэлний хосуудыг сургах явцад дараах мэдрэлийн сүлжээний параметрүүдийг үндэс болгон авсан:
- vocab хэмжээ = 30 000
- numunits = 768
- давхаргууд = 6
- толгойнууд = 16
- дотоод хэмжээс = 4 096
Нэгдүгээрт, Хүснэгт 1 дээр үндэслэн эхний бүлэгт хамаарах GPU-г тодорхойлъё. Загварыг ойролцоогоор 1000 алхам, багцын хэмжээ нь 100,000 нэгжийн үржвэрээр сургахад зарцуулсан минут, секундын хугацааг үзүүлэлтүүдийг харьцуулах үндэс болгон авна.
Эхний бүлгийн хувьд хурдны хэмжилтийг ашиглан хийсэн гэдгийг бид онцолж байна зэрэгцүүлэх механизм ба зөвхөн ашиглах FP32. Энэ механизмыг ашиглахгүйгээр зарим сервер дээр суралцах хурд илүү хурдан байж болно.
Тохируулах механизм нь үндсэн болон орчуулсан текст дэх дэд мөрүүдийг тааруулах боломжийг олгодог. Өгүүлбэр дэх дэд мөрийг өөр фонтоор тодруулж, тодотголтой орчуулах шаардлагатай үед вэб хуудас гэх мэт форматтай текстийг орчуулах шаардлагатай.
Мэдрэлийн сүлжээний дээр дурдсан параметрүүдийг харгалзан эхний хүснэгтээс хамгийн сайн цагийг GPU Nvidia H100 22 минутын суралцах хугацаатай харуулсан мөн завсрын хугацааг ижил брэндийн GeForce RTX 4060 Ti-ийн GPU 72 минутын суралцах хугацаатай харуулсан бөгөөд сүүлийн байрыг GPU Tesla V100-SXM 2 140 минутын суралцах хугацаатай эзэлжээ.
Мөн GPU шалгалтанд 20 минут 28 секундын сургалтын муруйтай найман Nvidia A10 карт, 56 минутын хугацаатай хоёр Nvidia A40 карт, 86 минутын хурдтай хоёр Tesla V100-SXM карт байсан. Нэг цуврал GPU-ийн олон картыг нэгэн зэрэг ашиглах нь загваруудын сургалтын үйл явцыг хурдасгаж, илүү өндөр хүчин чадалтай GPU-тай бараг ижил цагийг харуулах боломжтой боловч ийм техник нь санхүүгийн болон процедурын хувьд хангалттай оновчтой биш байж магадгүй юм. Сурах хурдны хэмжилтийн үр дүнг Хүснэгт 3-аас харж болно.
Хүснэгт 3 - Өмнө нь ашигласан график газрын зураг дээрх сургалтын цагийн хэмжилт
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 |
Дараа нь одоо ашиглагдаж байгаа график хийн дөрөөний харьцуулсан шинжилгээг хийцгээе (Хүснэгт 2). Энэ бүлгийн график процессоруудын хувьд хурдны хэмжилтийг ашиглан хийсэн зэрэгцүүлэх механизм, түүнчлэн FP16 ба FP32 ашиглах. Энэ механизм болон холимог нарийвчлалыг багтаасан хурдны хэмжилтийг 4 ба 5-р хүснэгтэд тус тус үзүүлэв.
Тиймээс, энэ хүснэгтээс GPU-ийн хурдыг хэмжсэнээр эхний байрыг RTX A4500 цуврал GPU 31 минутын бэлтгэлтэй авсан гэж хэлж болно, гэхдээ сургалтын загваруудын ийм хурдыг олж авсан гэдгийг онцлон тэмдэглэх нь зүйтэй. ашигласан GPU-ийн нэгжийн тоог 4 хүртэл нэмэгдүүлэх замаар. Энэ баримтыг үл харгалзан дээр дурдсан GPU-ийн сургалтын хурд хамаагүй өндөр байх бөгөөд энэ нь эцсийн хүснэгтийн эцсийн өмнөх байранд орох болно.
47 минутын суралцах хугацаатай Quadro RTX 6000 цуврал GPU хоёрдугаар байрт бичигдэж байна. Ийм сургалтын хурд нь ашигласан процессорын нэгжийн тоогоор урвуу нөхцөлтэй байдаг бөгөөд энэ нь дөрөвтэй тэнцүү гэдгийг тэмдэглэх нь зүйтэй. Зөвхөн нэг ийм GPU ашиглах нь ойролцоогоор 3.2 удаа хурдаа алдаж, улмаар ойролцоогоор 153 минут болж, хамгийн сүүлийн байранд байрлуулна.
Гурав дахь мөрийг TITAN RTX цуврал GPU 75 минут 85 секундын амжилтаар авсан. Сурах хурдны энэхүү оноо нь 2 процессор ашигласантай холбоотой бөгөөд энэ нь загварын сургалтын хугацааг багасгасан.
Нэг нэгжийн тоогоор сургалтын хурдны хувьд эргэлзээгүй тэргүүлэгч нь 78 минут 26 секундын хугацаатай GeForce RTX 3090 цуврал GPU байх нь гарцаагүй. Энэхүү GPU-ийн нэгжийн тоог нэмэгдүүлэх нь загварын сургалтын хурдыг хурдасгах бөгөөд энэ нь дээр дурдсан бүх GPU загваруудыг илт гүйцэж түрүүлэх болно. Загварын сургалтын цагийн хэмжилтийн өгөгдлийг Хүснэгт 4-ээс харж болно.
Хүснэгт 4 - Өмнө нь ашиглаж байсан GPU-ийн хэлний загварын сургалтын хурдны харьцуулсан дүн шинжилгээ
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 ашиглан хийсэн. FP32-тэй харьцуулахад хагас нарийвчлалтай нь загварын сургалтын явцад зарцуулсан санах ойн хэмжээг багасгаж, GPU дээрх тооцооллыг хурдасгах боломжийг олгодог. Дүрслэлийн нарийвчлал нь FP32 ашиглахаас бага байх болно.
Өмнөх хүснэгтээс FP32 ашигласан загваруудын сургалтын хугацааг хэмжихэд мэдрэлийн сүлжээний сургалтын хугацаа бараг хоёр дахин багассан гэж хэлж болно. Гүйцэтгэлийн хэмжилтийн үр дүнд үндэслэн бид 4-р хүснэгт дэх машин сургалтын GPU жишиг үзүүлэлтээс GPU-ийн байрлал үндсэндээ өөрчлөгдөөгүй хэвээр байгааг ажиглаж болно. Quadro RTX 6000 цуврал карт нь GeForce RTX 3090 GPU-г 96 секундээр хожиж, тавдугаар байрнаас зургаа дахь байр руу шилжсэн. Эцсийн тоонуудыг 5-р хүснэгтэд үзүүлэв.
Хүснэгт 5 - Өмнө нь ашиглагдаж байсан GPU-ийн хэлний загварын сургалтын хурдны харьцуулсан дүн шинжилгээ
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 |