Kami terus-menerus melatih model bahasa untuk pekerjaan kami. Tim kami menggunakan lusinan kartu video berbeda yang dipilih untuk tugas berbeda: di suatu tempat kami membutuhkan stasiun DGX yang kuat, dan di suatu tempat kartu permainan lama seperti RTX 2080Ti sudah cukup. Memilih GPU yang optimal untuk pelatihan model dapat berdampak signifikan terhadap kecepatan dan efektivitas biaya proses.
Yang menarik adalah bahwa ada cukup banyak artikel di internet dengan perbandingan GPU untuk pembelajaran mesin, tetapi sangat sedikit fokus pada kecepatan untuk pelatihan model bahasa. Kebanyakan hanya tes inferensi yang ditemukan. Ketika chip H100 baru dirilis, laporan NVidia menyatakan bahwa itu sampai sembilan kali lebih cepat dari A100 dalam pelatihan, tetapi untuk tugas kami, kartu baru hanya 90% lebih cepat dari yang lama. Sebagai perbandingan, penyedia cloud kami memiliki perbedaan harga 2x antara GPU ini, jadi tidak ada gunanya beralih ke H100 baru untuk menghemat uang.
Selain itu, kami mengambil untuk tes stasiun DGX, yang terdiri dari 8 kartu grafis A100 80GB dan biaya 10 ribu dolar per bulan. Setelah tes, menjadi jelas bahwa rasio harga/kinerja stasiun ini tidak sesuai dengan kami sama sekali dan untuk uang ini, kami dapat mengambil 66 x RTX 3090, yang secara total akan jauh lebih berguna.
Model bahasa terjemahan kami memiliki hingga 500 juta parameter (rata-rata 100 juta hingga 300 juta). Ada kemungkinan bahwa jika kita meningkatkan jumlah parameter secara signifikan, rasio harga/kinerja DGX akan lebih baik. Saat ini, kami tidak melatih model bahasa besar yang dapat menerjemahkan antara semua bahasa dalam semua variasi sekaligus, tetapi menggunakan model bahasa terpisah untuk setiap pasangan bahasa, mis. Inggris-Jerman. Masing-masing model tersebut membutuhkan waktu 120 hingga 300 Mb.
Perlu dicatat bahwa bahasa yang berbeda memiliki jumlah data yang berbeda di Internet, dan sementara. Misalnya, untuk bahasa Spanyol, Anda dapat menemukan 500 juta kalimat dengan terjemahan, tetapi ketika melatih model untuk bahasa yang lebih langka seperti bahasa Tibet, Anda perlu memilih GPU khusus untuk tugas pembelajaran mesin berdasarkan data yang tersedia. Untuk membuat model terjemahan dari bahasa Inggris ke bahasa Spanyol, kami menggunakan server dengan RAM 4 x RTX 4500 dan 256GB. Pada saat yang sama, bahasa Tibet dapat dilatih pada RTX 2080 Ti dengan RAM 16GB, karena tidak masuk akal untuk meningkatkan kompleksitas jaringan saraf dan, sebagai hasilnya, untuk mengambil server yang lebih kuat dengan sejumlah kecil data.
![](https://lingvanex.com/static-main-pages/static/blog/img/2024/04/the-roi-of-localization.png)
Memilih prosesor grafis dan tokoh teoritis
Pelatihan model bahasa berlangsung di platform Data Studio internal kami menggunakan kerangka OpenNMT-tf. Fase ini meliputi persiapan data, pelatihan model, dan perbandingan model dengan terjemahan referensi. Menggunakan FP16 dan bukan FP32 selama pelatihan memungkinkan kami mengurangi waktu pelatihan model bahasa secara signifikan tanpa menurunkan kualitas terjemahan, namun tidak semua GPU kami mendukung hal tersebut.
Saat memilih prosesor grafis, merupakan standar untuk mempertimbangkan metrik seperti kekuatan pemrosesan (TFLOPS), memori video (VRAM), hasil benchmark GPU, dukungan perpustakaan dan kerangka kerja, anggaran, dan faktor lainnya (ukuran dan faktor bentuk kartu grafis, kebutuhan daya, pendinginan, dan kompatibilitas dengan sistem Anda). Saat melatih model pembuatan teks, Anda juga harus ingat bahwa bahasa yang berbeda akan menghabiskan jumlah sumber daya yang berbeda. Misalnya, 1 byte digunakan untuk menyandikan satu karakter untuk bahasa Latin, 2 byte untuk bahasa Sirilik, dan 3 byte untuk bahasa yang mengandung hieroglif. Memahami karakteristik apa yang akan dimiliki kartu grafis Anda memiliki dampak signifikan pada kecepatan proses pembelajaran.
Saat melatih model dalam hal GPU yang digunakan, kartu video dibagi menjadi dua kelompok sesuai dengan periode penggunaan: kartu video awal, yang digunakan untuk melakukan pengukuran pertama kecepatan belajar, dan kartu yang sedang digunakan. Karakteristik utama dari kartu grafis ini dapat ditemukan di Tabel 1 dan Tabel 2, masing-masing.
Tabel 1 - Prosesor grafis yang digunakan sebelumnya dan parameter teknisnya
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 |
Catatan
1. Dengan CUDA lebih besar dari 7.0, penggunaan FP16 akan memberikan dorongan dalam kecepatan latihan, tergantung pada versi CUDA dan karakteristik kartu grafis itu sendiri.
2. Jika spesifikasi kartu grafis menunjukkan bahwa rasio kinerja FP16 hingga FP32 lebih besar dari 1 banding 1, maka penggunaan presisi campuran akan dijamin untuk meningkatkan kecepatan pelatihan sebesar jumlah yang ditentukan dalam spesifikasi. Misalnya, untuk Quadro RTX 6000 nilai FP16 TFLOPS sebesar 32,62 (2:1) akan mempercepat latihan setidaknya dua kali (2,4 kali dalam praktik)
Tabel 2 - Model GPU yang digunakan saat ini dan karakteristik utamanya
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 |
* - nilai untuk FP16,TFLOPS dan FP32,TFLOPS diambil dari spesifikasi per GPU
Proses pelatihan dan pengujian GPU
Model-model tersebut dilatih menggunakan satu set 18 GPU. Dalam proses pelatihan jaringan saraf, kami menggunakan banyak pasangan bahasa (lebih dari seratus bahasa). Tes GPU telah membantu mengidentifikasi perangkat keras mana yang memiliki kinerja terbaik untuk tugas tertentu. Selama pelatihan pasangan bahasa kami, parameter jaringan saraf berikut diambil sebagai dasar:
- ukuran kosakata = 30 000
- numunit = 768
- lapisan = 6
- kepala = 16
- dimensi dalam = 4 096
Pertama, mari kita karakterisasi GPU yang termasuk dalam kelompok pertama berdasarkan Tabel 1. Waktu dalam menit dan detik yang dihabiskan untuk melatih model dengan perkiraan kecepatan 1.000 langkah dan kelipatan ukuran batch 100.000 unit akan dijadikan dasar untuk membandingkan indikator.
Kami menekankan bahwa untuk kelompok pertama, pengukuran kecepatan dilakukan dengan menggunakan alignment mekanisme dan hanya menggunakan FP32. Tanpa menggunakan mekanisme ini kecepatan belajar pada beberapa server bisa jauh lebih cepat.
Mekanisme penyelarasan memungkinkan pencocokan substring dalam teks dasar dan terjemahan. Diperlukan untuk menerjemahkan teks yang diformat, seperti halaman web, ketika substring dalam sebuah kalimat dapat disorot dalam font yang berbeda dan harus diterjemahkan dengan penyorotan.
Dengan mempertimbangkan parameter jaringan saraf yang disebutkan di atas, waktu terbaik dari tabel pertama ditunjukkan oleh GPU Nvidia H100 dengan waktu belajar 22 menit, dan waktu intermediate ditunjukkan oleh GPU merk yang sama GeForce RTX 4060 Ti dengan waktu belajar 72 menit dan tempat terakhir diambil oleh GPU Tesla V100-SXM 2 dengan waktu belajar 140 menit.
Ada juga delapan kartu Nvidia A10 dalam tes GPU dengan kurva belajar 20 menit dan 28 detik, dua kartu Nvidia A40 dengan waktu 56 menit, dan dua kartu Tesla V100-SXM yang mencatat waktu 86 menit. Penerapan beberapa kartu secara bersamaan dari rangkaian GPU yang sama dapat mempercepat proses pelatihan model dan menunjukkan waktu yang hampir bersamaan dengan GPU yang memiliki kapasitas lebih tinggi, namun teknik seperti itu mungkin tidak cukup rasional secara finansial dan prosedural. Hasil pengukuran kecepatan belajar dapat diamati pada Tabel nomor 3.
Tabel 3 - Pengukuran waktu pelatihan pada peta grafis yang digunakan sebelumnya
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 |
Selanjutnya, mari kita lakukan analisis komparatif pedal gas grafis yang saat ini digunakan (Tabel 2). Untuk kelompok prosesor grafis ini, pengukuran kecepatan dilakukan dengan menggunakan alignment mekanisme, serta menggunakan FP16 dan FP32. Pengukuran kecepatan termasuk mekanisme ini dan presisi campuran akan disajikan di bawah ini masing-masing pada Tabel 4 dan 5.
Jadi, setelah mengukur kecepatan GPU dari tabel ini, kita dapat mengatakan bahwa tempat pertama diambil oleh GPU seri RTX A4500 dengan waktu pelatihan 31 menit, tetapi harus ditekankan bahwa kecepatan model pelatihan seperti itu diperoleh dengan meningkatkan jumlah unit GPU yang digunakan hingga 4. Mengabaikan fakta ini, kecepatan pelatihan GPU yang disebutkan di atas akan jauh lebih tinggi, yang akan menempatkannya di tempat kedua dari belakang di tabel final.
GPU Quadro RTX 6000 series dengan waktu belajar 47 menit berada di posisi kedua. Perlu dicatat bahwa kecepatan pelatihan tersebut berbanding terbalik dengan jumlah unit prosesor yang digunakan, yaitu sama dengan empat. Menggunakan hanya satu GPU seperti itu akan memberikan kehilangan kecepatan sekitar 3,2 kali dan akibatnya akan menjadi sekitar 153 menit dan menempatkannya di tempat terakhir.
Baris ketiga diambil oleh GPU seri TITAN RTX dengan waktu 75 menit dan 85 detik. Skor kecepatan belajar ini disebabkan oleh penggunaan 2 prosesor, yang mengurangi waktu pelatihan model.
Pemimpin yang tidak perlu dipertanyakan lagi dalam hal kecepatan latihan dalam jumlah satu unit pasti akan menjadi GPU seri GeForce RTX 3090 dengan waktu 78 menit dan 26 detik. Meningkatkan jumlah unit GPU ini akan mempercepat kecepatan pelatihan model, yang jelas akan menyalip semua model GPU yang disebutkan di atas. Data pengukuran waktu pelatihan model dapat dilihat pada Tabel 4.
Tabel 4 - Analisis komparatif kecepatan pelatihan model bahasa pada GPU yang digunakan sebelumnya
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 |
Pengukuran kecepatan pelatihan berikut dilakukan menggunakan FP16. Dibandingkan dengan FP32, setengah presisi memungkinkan pengurangan jumlah memori yang dikonsumsi selama pelatihan model dan mempercepat komputasi pada GPU. Keakuratan representasi akan lebih rendah dibandingkan dengan penggunaan FP32.
Mengukur waktu pelatihan model yang menggunakan FP32 dari tabel sebelumnya, kita dapat mengatakan bahwa waktu pelatihan jaringan saraf berkurang hampir dua kali lipat. Berdasarkan hasil pengukuran kinerja, kita dapat mengamati dari tolok ukur GPU pembelajaran mesin pada Tabel 4 bahwa posisi GPU sebagian besar tidak berubah. Kartu seri Quadro RTX 6000 naik dari posisi kelima ke posisi keenam, mengalahkan GPU GeForce RTX 3090 dengan selisih 96 detik. Angka terakhir ditunjukkan pada Tabel 5.
Tabel 5 - Analisis komparatif kecepatan pelatihan model bahasa pada GPU yang digunakan sebelumnya
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 |