


Parameter model ChatGPT ≠ 175 bilion, seseorang membuktikannya menggunakan bukti dengan percanggahan
Kepopularan ChatGPT berterusan sehingga hari ini, dengan berita tergempar dan tafsiran teknikal yang mengelilinginya sentiasa muncul. Mengenai nombor parameternya, terdapat andaian biasa bahawa ChatGPT mempunyai bilangan parameter yang sama seperti model parameter 175 bilion yang diperkenalkan dalam kertas GPT-3. Walau bagaimanapun, orang yang bekerja secara mendalam dalam bidang model bahasa besar tahu bahawa ini tidak benar. Dengan menganalisis lebar jalur memori GPU A100, kami mendapati bahawa kelajuan inferens sebenar API ChatGPT jauh lebih pantas daripada kelajuan inferens teori maksimum bagi model bersamaan Padat 175 bilion.
Artikel ini akan menggunakan bukti dengan percanggahan untuk membuktikan dan menyokong hujah di atas, hanya menggunakan beberapa pengetahuan teori yang dipelajari di kolej. Juga ambil perhatian bahawa terdapat juga masalah yang bertentangan, iaitu sesetengah orang mendakwa bahawa ChatGPT hanya mempunyai parameter X bilion (X jauh lebih rendah daripada 1750). Walau bagaimanapun, dakwaan ini tidak dapat disahkan kerana orang yang membuatnya biasanya bercakap daripada khabar angin.
Berikut ialah proses penghujahan terperinci.
Kaedah percanggahan
Mula-mula andaikan bahawa model ChatGPT mempunyai 175 bilion parameter, dan format INT8 biasanya digunakan untuk menyimpan pemberat LLM untuk inferens kependaman yang lebih rendah dan saiz pemprosesan yang lebih tinggi dan keperluan memori yang lebih rendah (dua kali kurang memori daripada menyimpan dalam format float16). Setiap parameter INT8 memerlukan 1 bait untuk penyimpanan. Pengiraan mudah menunjukkan bahawa model memerlukan 175GB ruang storan.
Gambar daripada kertas INT8 SmoothQuant, alamat: https://arxiv.org/abs/2211.10438
Dari segi inferens, model bahasa gaya GPT adalah "autoregresif" pada setiap hantaran hadapan, meramalkan token kemungkinan besar seterusnya (untuk sesuatu seperti model RLHF ChatGPT, yang meramalkan token seterusnya yang diutamakan oleh anotasi manusianya). Ini bermakna 200 token dijana, jadi 200 hantaran hadapan perlu dilakukan. Untuk setiap hantaran ke hadapan, kita perlu memuatkan semua berat model daripada memori lebar jalur tinggi (HBM) ke dalam unit pengkomputeran matriks (teras pengkomputeran tensor GPU), yang bermaksud bahawa kita perlu memuatkan 175GB berat untuk setiap hantaran ke hadapan.
Pada platform Microsoft Azure, bilangan maksimum A100 yang boleh diperuntukkan pada nod ialah 8. Ini bermakna selari tensor maksimum bagi setiap contoh model ialah 8. Jadi daripada memuatkan 175GB pemberat setiap pas ke hadapan, anda hanya perlu memuatkan 21.87GB setiap GPU setiap pas ke hadapan kerana keselarian tensor boleh menyelaraskan pemberat dan pengiraan pada semua GPU.
Gambar adalah daripada kertas Megatron-LM, alamat: https://arxiv.org/ abs/1909.08053
Pada versi A100 80GB SXM, lebar jalur memori maksimum ialah 2TB/s. Ini bermakna dengan saiz batch=1 (terhad oleh lebar jalur memori), kelajuan hantaran hadapan teori maksimum ialah 91 kali/saat. Selain itu, kebanyakan masa dihabiskan untuk memuatkan pemberat dan bukannya mengira pendaraban matriks.
NOTA: Untuk fp16/bfloat16, hantaran hadapan teori maksimum apabila dihadkan oleh jalur lebar memori Kelajuan mencapai 45.5 kali/saat.
Apakah kependaman sebenar ChatGPT?
Jalankan skrip yang ditulis dalam Python pada waktu malam (overhead larian pada waktu malam adalah lebih rendah) untuk menguji kependaman penggunaan ChatGPT melalui OpenAI API Kelajuan empirikal maksimum yang dicapai oleh hadapan lulus ialah 101 kali / Saat. Kertas kerja ini menggunakan keputusan empirikal maksimum bagi eksperimen kerana keperluan untuk mendapatkan overhed terendah daripada bahagian belakang OpenAI dan sistem pemprosesan kelompok dinamik.
Kesimpulan
Menurut andaian dan hujah sebelum ini, kita dapati terdapat percanggahan, kerana hasilnya adalah berdasarkan bukti empirikal Jauh lebih cepat daripada hasil teori maksimum berdasarkan lebar jalur memori platform A100. Oleh itu boleh disimpulkan bahawa model ChatGPT yang digunakan oleh OpenAI untuk inferens pastinya tidak bersamaan dengan model padat 175 bilion parameter.
Soalan Lazim
1 Mengapa meramalkan bilangan parameter model inferens ChatGPT dan bukannya bilangan parameter model latihan?
Menggunakan kaedah lebar jalur memori untuk menganggar bilangan parameter model, yang hanya digunakan pada model inferens. Kami tidak tahu pasti sama ada OpenAI menggunakan teknik seperti penyulingan untuk menjadikan model inferensnya lebih kecil daripada model latihannya.
Banyak serangga mempunyai bentuk larva yang dioptimumkan untuk mengekstrak tenaga dan nutrien daripada persekitaran, dan bentuk dewasa yang berbeza sama sekali dengan keperluan yang sangat berbeza untuk pengoptimuman perjalanan dan pembiakan. ——Dari Geoffrey Hinton, Oriol Vinyals, Jeff Dean, 2015.
2. Adakah andaian lain?
Buktinya sebenarnya merangkumi 3 andaian:
- Anggapkan bahawa masa yang diperlukan untuk mengira pendaraban matriks yang besar adalah relatif kepada Setiap hantaran hadapan mengambil masa 0 untuk memuatkan parameter; Jika masa yang diperlukan untuk komunikasi dan pendaraban matriks antara GPU tidak diandaikan sebagai 0, token teori maksimum sesaat daripada 175 bilion model parameter akan dikurangkan
- Anggapkan ChatGPT ialah; berdasarkan varian Seni Bina Transformer.
- 3. Apakah maksud Setara Padat?
Sejak beberapa tahun kebelakangan ini, penyelidik telah menjalankan penyelidikan ke atas LLM pakar hibrid jarang seperti Switch Transformer. Setara padat menunjukkan bilangan parameter yang digunakan dalam setiap hantaran hadapan. Dengan menggunakan kaedah yang diterangkan dalam artikel ini, tidak ada cara untuk membuktikan bahawa ChatGPT bukanlah model KPM jarang parameter 175 bilion.
4. Adakah anda mempertimbangkan pengoptimuman inferens Transformer cache KV?
Walaupun dengan pengoptimuman cache KV, setiap pas hadapan masih perlu memuatkan keseluruhan model cache KV hanya menjimatkan FLOP, tetapi tidak mengurangkan penggunaan lebar jalur memori (sebenarnya Ia meningkat kerana cache KV perlu dimuatkan pada setiap hantaran hadapan).
5.
Walaupun Flash Attention berprestasi lebih baik dari segi kecekapan jalur lebar memori dan kelajuan masa nyata, setiap hantaran hadapan masih memerlukan pemuatan keseluruhan model, jadi hujah sebelumnya masih berlaku.
6. Pernahkah anda mempertimbangkan paralelisme saluran paip/strategi selari yang lebih halus?
Menggunakan paralelisme saluran paip menghasilkan bilangan hantaran hadapan maksimum yang sama. Walau bagaimanapun, dengan menggunakan kumpulan mikro dan saiz kumpulan yang lebih besar, daya pemprosesan (jumlah token/saat) boleh ditingkatkan.
7. Pernahkah anda mempertimbangkan untuk meningkatkan selari tensor melebihi 8?
Platform A100 menyokong 16 A100 setiap nod, tetapi Azure tidak menyokong ciri ini. Hanya Google Cloud menyokong ciri ini, tetapi hampir tiada siapa yang menggunakannya. Tidak mungkin Azure akan membuat nod tersuai dengan 16 A100 untuk OpenAI dan tidak mengeluarkannya sebagai versi GA awam untuk melunaskan kos mereka bentuk atau mengekalkan nod baharu. Berkenaan selari tensor antara nod, itu hanya satu kemungkinan, tetapi ini adalah cara yang kurang kos efektif untuk membuat inferens pada A100. Malah NVIDIA tidak mengesyorkan pemprosesan selari tensor antara nod.
8 Pernahkah anda mempertimbangkan untuk menggunakan INT4?
Walaupun menggunakan INT4 telah terbukti berkesan, Pengkompil Kernel GPU OpenAI tidak menyokong pemuatan, penyimpanan atau pendaraban matriks INT4, dan tiada rancangan untuk menambah INT pada peta jalan teknologi mereka . Memandangkan tiada sokongan untuk pemuatan atau stor INT4, anda tidak boleh menyimpan pemberat sebagai INT4 dan kemudian mengukur kembali kepada format ketepatan tinggi (seperti INT8, bfloat16, dsb.).
Atas ialah kandungan terperinci Parameter model ChatGPT ≠ 175 bilion, seseorang membuktikannya menggunakan bukti dengan percanggahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam sistem Debian, fungsi Readdir digunakan untuk membaca kandungan direktori, tetapi urutan yang dikembalikannya tidak ditentukan sebelumnya. Untuk menyusun fail dalam direktori, anda perlu membaca semua fail terlebih dahulu, dan kemudian menyusunnya menggunakan fungsi QSORT. Kod berikut menunjukkan cara menyusun fail direktori menggunakan ReadDir dan QSORT dalam sistem Debian:#termasuk#termasuk#termasuk#termasuk // fungsi perbandingan adat, yang digunakan untuk qSortintCompare (Constvoid*A, Constvoid*b) {Returnstrcmp (*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(

Dalam sistem Debian, panggilan sistem Readdir digunakan untuk membaca kandungan direktori. Jika prestasinya tidak baik, cuba strategi pengoptimuman berikut: Memudahkan bilangan fail direktori: Split direktori besar ke dalam pelbagai direktori kecil sebanyak mungkin, mengurangkan bilangan item yang diproses setiap panggilan readdir. Dayakan Caching Kandungan Direktori: Bina mekanisme cache, kemas kini cache secara teratur atau apabila kandungan direktori berubah, dan mengurangkan panggilan kerap ke Readdir. Cafh memori (seperti memcached atau redis) atau cache tempatan (seperti fail atau pangkalan data) boleh dipertimbangkan. Mengamalkan struktur data yang cekap: Sekiranya anda melaksanakan traversal direktori sendiri, pilih struktur data yang lebih cekap (seperti jadual hash dan bukannya carian linear) untuk menyimpan dan mengakses maklumat direktori

Artikel ini menerangkan cara menyesuaikan tahap pembalakan pelayan Apacheweb dalam sistem Debian. Dengan mengubah suai fail konfigurasi, anda boleh mengawal tahap maklumat log yang direkodkan oleh Apache. Kaedah 1: Ubah suai fail konfigurasi utama untuk mencari fail konfigurasi: Fail konfigurasi apache2.x biasanya terletak di direktori/etc/apache2/direktori. Nama fail mungkin apache2.conf atau httpd.conf, bergantung pada kaedah pemasangan anda. Edit Fail Konfigurasi: Buka Fail Konfigurasi dengan Kebenaran Root Menggunakan Editor Teks (seperti Nano): Sudonano/ETC/APACHE2/APACHE2.CONF

Dalam sistem Debian, OpenSSL adalah perpustakaan penting untuk pengurusan penyulitan, penyahsulitan dan sijil. Untuk mengelakkan serangan lelaki-dalam-pertengahan (MITM), langkah-langkah berikut boleh diambil: Gunakan HTTPS: Pastikan semua permintaan rangkaian menggunakan protokol HTTPS dan bukannya HTTP. HTTPS menggunakan TLS (Protokol Keselamatan Lapisan Pengangkutan) untuk menyulitkan data komunikasi untuk memastikan data tidak dicuri atau diganggu semasa penghantaran. Sahkan Sijil Pelayan: Sahkan secara manual Sijil Pelayan pada klien untuk memastikan ia boleh dipercayai. Pelayan boleh disahkan secara manual melalui kaedah perwakilan urlSession

Langkah -langkah untuk memasang sijil SSL pada pelayan mel Debian adalah seperti berikut: 1. Pasang OpenSSL Toolkit terlebih dahulu, pastikan bahawa OpenSSL Toolkit telah dipasang pada sistem anda. Jika tidak dipasang, anda boleh menggunakan arahan berikut untuk memasang: sudoapt-getupdateudoapt-getinstallopenssl2. Menjana permintaan kunci dan sijil peribadi seterusnya, gunakan OpenSSL untuk menjana kunci peribadi RSA 2048-bit dan permintaan sijil (CSR): Membuka

Fungsi Readdir dalam sistem Debian adalah panggilan sistem yang digunakan untuk membaca kandungan direktori dan sering digunakan dalam pengaturcaraan C. Artikel ini akan menerangkan cara mengintegrasikan Readdir dengan alat lain untuk meningkatkan fungsinya. Kaedah 1: Menggabungkan Program Bahasa C dan Pipeline Pertama, tulis program C untuk memanggil fungsi Readdir dan output hasilnya:#termasuk#termasuk#includeintMain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

Mengkonfigurasi firewall pelayan Mail Debian adalah langkah penting dalam memastikan keselamatan pelayan. Berikut adalah beberapa kaedah konfigurasi firewall yang biasa digunakan, termasuk penggunaan iptables dan firewalld. Gunakan iptables untuk mengkonfigurasi firewall untuk memasang iptables (jika belum dipasang): sudoapt-getupdateudoapt-getinstalliplesview peraturan iptables semasa: konfigurasi sudoiptable-l

Panduan ini akan membimbing anda untuk belajar cara menggunakan syslog dalam sistem Debian. SYSLOG adalah perkhidmatan utama dalam sistem Linux untuk sistem pembalakan dan mesej log aplikasi. Ia membantu pentadbir memantau dan menganalisis aktiviti sistem untuk mengenal pasti dan menyelesaikan masalah dengan cepat. 1. Pengetahuan asas syslog Fungsi teras syslog termasuk: mengumpul dan menguruskan mesej log secara terpusat; menyokong pelbagai format output log dan lokasi sasaran (seperti fail atau rangkaian); Menyediakan fungsi tontonan log dan penapisan masa nyata. 2. Pasang dan konfigurasikan syslog (menggunakan rsyslog) Sistem Debian menggunakan rsyslog secara lalai. Anda boleh memasangnya dengan arahan berikut: sudoaptupdatesud
