YaLM 100B adalah jaringan saraf mirip GPT untuk menghasilkan dan memproses teks. Ini dapat digunakan secara bebas oleh pengembang dan peneliti dari seluruh dunia.
Model ini memanfaatkan 100 miliar parameter. Diperlukan waktu 65 hari untuk melatih model tersebut pada sekelompok 800 kartu grafis A100 dan 1,7 TB teks online, buku, dan banyak sumber lain dalam bahasa Inggris dan Rusia.
Detail pelatihan dan praktik terbaik mengenai akselerasi dan stabilisasi dapat ditemukan di artikel Medium (Bahasa Inggris) dan Habr (Rusia).
Kami menggunakan DeepSpeed untuk melatih model dan mendapatkan inspirasi dari contoh Megatron-LM. Namun, kode dalam repo ini tidak sama dengan kode yang digunakan untuk melatih model. Sebaliknya, ini adalah contoh stok dari repo DeepSpeed dengan sedikit perubahan yang diperlukan untuk menyimpulkan model kami.
Pastikan Anda memiliki ruang disk kosong sebesar 200GB sebelum mengunduh bobot. Model (kode didasarkan pada microsoft/DeepSpeedExamples/Megatron-LM-v1.1.5-ZeRO3) seharusnya berjalan pada beberapa GPU dengan paralelisme tensor. Ini diuji pada 4 GPU (A100 80g) dan 8 (V100 32g), tetapi mampu bekerja dengan konfigurasi berbeda dengan total memori GPU ≈200GB yang membagi dimensi bobot dengan benar (misalnya 16, 64, 128).
bash download/download.sh
untuk mengunduh bobot model dan kosakata../yalm100b_checkpoint/weights/
, dan kosakata akan diunduh ke ./yalm100b_checkpoint/vocab/
.docker/pull.sh
. Ini kompatibel dengan A100 dan V100.docker/build.sh
(yang hanya akan membuat image buruh pelabuhan dari docker/Dockerfile
).docker/run.sh
(volume, nama, dan parameter lainnya dapat diubah) . Anda dapat memulai dengan skrip berikut:
examples/generate_interactive.sh
: pembuatan interaktif dari baris perintah, cara paling sederhana untuk mencoba model.examples/generate_conditional_sampling.sh
: pembuatan kondisional dengan strategi pengambilan sampel. Top-p digunakan secara default, silakan mengubah suhu atau menggunakan top-k. Inputnya adalah jsonlines (contoh: examples/example_cond_input.json
), outputnya akan berupa jsonlines yang sama dengan kolom teks yang dihasilkan ditambahkan ke setiap baris.examples/generate_conditional_greedy.sh
: sama seperti sebelumnya, tetapi generasinya serakah. Cocok untuk memecahkan masalah dengan beberapa tembakan.examples/generate_unconditional.sh
: generasi tanpa syarat. Tidak ada input yang digunakan, output akan berupa jsonlines. Model ini diterbitkan di bawah lisensi Apache 2.0 yang mengizinkan penelitian dan penggunaan komersial, Megatron-LM dilisensikan di bawah lisensi Megatron-LM.
Kumpulan data yang digunakan untuk pelatihan YaLM-100B terdiri dari bagian-bagian berikut (persentase kasar diukur dalam token yang dilihat oleh model):
25% The Pile - kumpulan data bahasa Inggris terbuka oleh tim Eleuther AI
75% Teks dalam bahasa Rusia dikumpulkan oleh tim kami (persentase dari seluruh kumpulan data diberikan)
49% halaman web Rusia dari indeks Pencarian Yandex difilter dari ~100Tb hingga ~1Tb dengan heuristik berikut:
12% Berita dari berbagai sumber dari indeks Pencarian Yandex
10% Buku dari kumpulan data yang digunakan dalam Tesarus Distribusi Rusia
3% Teks lain-lain dari Kumpulan Data Taiga
1,5% Dialog dari media sosial diproses dengan cara yang mirip dengan cara Reddit diproses di The Pile
0,5% bagian Wikipedia bahasa Rusia
Beberapa subset dilalui hingga 3 kali selama pelatihan.
Model dilatih pada cluster 800 A100 selama ~65 hari. Pada saat itu, ia mengkonsumsi 300 miliar token. Anda dapat melihat TensorBoard dengan LR dan jadwal peningkatan, metrik pelatihan, dan "termometer" kami di halaman HF.