Panduan "alkimia" GPT-4: MoE, jumlah parameter, biaya pelatihan, dan rahasia inferensi

Asli: Mengambil Gajah

Sumber: Unicorn Luar Negeri

Penulis: Dylan Patel, Gerald Wong

Diedit oleh: Haina, Wenli, Cage

Editor: Siqi

Sumber gambar: Dihasilkan oleh AI‌ Tanpa Batas

Artikel ini disusun dari kolom SemiAnalysis oleh Dylan Patel dan Gerald Wong. Belum lama ini, Dylan Patel menyampaikan kabar tentang surat internal Google: Kami Tidak Memiliki Parit, Dan OpenAI Juga Tidak.

GPT-4 adalah hasil kombinasi mendalam antara sains dan inovasi teknik. Ada banyak trik di tengah. Bagi dunia luar, jika Anda dapat memahami struktur GPT-4, itu seperti mendapatkan "resep alkimia" dari model terkuat. Konten ini memberikan arsitektur GPT-4, infrastruktur pelatihan dan inferensi, kuantitas parameter, kumpulan data pelatihan, nomor token, biaya, dan model MoE serta parameter lainnya dan detail informasi dengan sangat detail.

Dylan dan Gerald percaya bahwa alasan mengapa OpenAI tidak mengungkapkan arsitektur GPT-4 bukan karena apa yang disebut pertimbangan Keamanan AI, tetapi karena arsitektur ini mudah ditiru; George Hotz, yang dikenal sebagai "peretas jenius" , juga mengungkapkan Pendapat serupa, namun, George berpendapat bahwa GPT-4 terdiri dari MoE dari 8 model ahli, masing-masing dengan sekitar 1100 parameter.

Kedua penulis memperkirakan bahwa perusahaan seperti Google, Meta, Anthropic, Inflection, Character.ai, Tencent, ByteDance, Baidu, dll. Akan memiliki kemampuan model yang sama atau bahkan lebih kuat seperti GPT-4 dalam jangka pendek. Meskipun arsitektur GPT-4 "mudah disalin", dalam pandangan mereka, OpenAI memiliki parit yang paling tahan lama—jumlah pengguna akhir terbanyak, talenta teknik terkemuka, dan keunggulan penggerak pertama dalam perubahan model antargenerasi.

Pengingat ramah: Data dalam artikel berasal dari koleksi dan penelitian multi-pihak penulis asli, dan belum dikonfirmasi oleh OpenAI. Penelitian Dylan Patel secara umum dianggap sangat andal dan dapat digunakan sebagai referensi yang baik untuk GPT-4 bahan penelitian yang mendalam. Selain itu, menurut kami pandangan yang mudah direproduksi dalam artikel tersebut dapat dicurigai sebagai "pesta utama", karena selain OpenAI dan Google, ilmuwan yang ahli dalam pelatihan dan penalaran kerangka MoE yang kompleks saat ini langka, dan GPT-4 saat ini hanyalah generasi pertama MoE, bukan jawaban akhir yang diberikan oleh OpenAI, dan banyak pengalaman dalam prosesnya tidak tersedia untuk tim lain, dan pengalaman ini pasti akan menjadi keunggulan unik OpenAI.

Berikut ini adalah daftar isi artikel ini, dan disarankan untuk membacanya bersamaan dengan poin-poin utama.

👇

01 Ikhtisar

02 Struktur Model

03 Kumpulan Data

04 Strategi Paralel

05 Biaya pelatihan

06 MOE

07 Penalaran

08 Infra dan biaya penalaran

09 Mekanisme perhatian multi-permintaan

10 gelombang berturut-turut

11 Penguraian sandi spekulatif

12 Penglihatan Multimodal

01.Ikhtisar

Kemampuan teknik OpenAI dan apa yang telah mereka buat luar biasa, tetapi bukan berarti solusinya tidak dapat diatasi. Solusi mereka sangat elegan, dan juga melibatkan pertimbangan dan keseimbangan serangkaian faktor kompleks, dan perluasan skala model hanyalah sebagian darinya. ** Parit OpenAI yang paling tahan lama berasal dari tiga aspek: pertama, mereka memiliki pengguna paling banyak di dunia nyata, kedua, bakat teknik terkemuka, dan terakhir, mereka cenderung terus mempertahankan keunggulan dalam pengembangan model di masa mendatang. **

Tidak hanya penting untuk memahami mengapa GPT-4 memilih arsitektur tertentu, tetapi baru-baru ini, kami juga akan menguraikan biaya pelatihan dan inferensi GPT-4 pada A100, dan cara menggunakan H100 dalam arsitektur model generasi berikutnya.

Dari GPT-3 ke GPT-4, OpenAI ingin meningkatkan ukuran model sebanyak 100 kali lipat Inti dari proses ini tentu saja adalah masalah biaya**. Transformer padat adalah arsitektur model yang umum digunakan seperti OpenAI GPT-3, Google PaLM, Meta LLaMA, TII Falcon, MosaicML MPT, dll. Saat ini, setidaknya ada 50 perusahaan yang menggunakan arsitektur ini untuk melatih LLM, yang merupakan contoh arsitektur yang bagus , tetapi skalabilitasnya sangat terbatas.

AI Brick Wall membahas biaya pelatihan model dalam artikel ini, sebelum GPT-4 dirilis. Dari perspektif biaya pelatihan, model padat (transformator padat) akan menghadapi "Dinding Bata AI" sendiri.Buat beberapa upaya arsitektur tingkat atas.

AI Brick Wall: Perangkat keras pada tahap ini telah mencapai batasnya dalam hal Transformer Padat, sehingga tidak praktis dan mahal untuk terus memperluas skala model ke model dengan satu triliun atau sepuluh triliun parameter. Sebelum perangkat keras generasi baru, berbagai strategi dan teknik diperlukan untuk mengurangi biaya pelatihan, meningkatkan efisiensi pelatihan model, dan memperluas model ke jumlah parameter yang lebih tinggi. Penulis yakin rangkaian teknologi ini akan terealisasi sekitar tahun 2023, dan perusahaan yang mampu berpartisipasi antara lain OpenAI, Google, DeepMind, Microsoft, dan Nvidia. Banyak dari strategi ini dipresentasikan pada konferensi NeurIPS dan kemungkinan akan berdampak besar pada aplikasi AI.

Namun selama 6 bulan terakhir, kami menyadari bahwa biaya pelatihan mungkin bukan masalah. Meski menghabiskan jutaan atau bahkan ratusan juta dolar untuk melatih model terdengar gila, sebenarnya hal itu sepele bagi raksasa teknologi. Model besar adalah proyek investasi modal (item baris Capex), dan semakin besar modelnya, semakin baik hasilnya. Satu-satunya faktor pembatas adalah apakah manusia memiliki kemampuan dan waktu yang cukup untuk memberikan umpan balik dan memodifikasi arsitektur model sambil memperluas model skala.

Meta menginvestasikan lebih dari $16 miliar dalam "Metaverse" setiap tahun, Google menghabiskan sekitar $10 miliar untuk upaya proyek baru, Amazon menghabiskan lebih dari $50 miliar untuk Alexa, dan mata uang kripto untuk "hal-hal yang tidak berharga" Lebih dari $100 miliar terbuang sia-sia. Masyarakat secara keseluruhan akan menghabiskan lebih dari $100 miliar untuk membuat superkomputer yang mampu melatih model berskala besar yang dapat diproduksi dengan berbagai cara. Beberapa negara dan perusahaan akan mengulangi upaya pelatihan** pada model besar, yang merupakan "perlombaan senjata di luar angkasa"** baru. Dibandingkan dengan "pemborosan sumber daya" sebelumnya, nilai sebenarnya akan terwujud dalam jangka pendek karena munculnya asisten manusia dan agen otonom.

Namun dalam beberapa tahun ke depan, Google, Meta dan OpenAI, Microsoft dan perusahaan lain akan menghabiskan lebih dari 100 miliar dolar AS untuk membangun superkomputer untuk melatih model tersebut.

Masalah yang lebih penting untuk memperluas ukuran model, "AI Brick Wall" yang sebenarnya, terletak pada tautan inferensi. Tujuannya di sini adalah untuk memisahkan daya komputasi pelatihan dari daya komputasi inferensi, jadi untuk model apa pun yang akan diterapkan, masuk akal untuk melatih di luar optimal Chinchilla DeepMind. (Pemilihan catatan: Meningkatkan jumlah data pelatihan untuk membuat model belajar berlebihan adalah strategi untuk meningkatkan kemampuan model kecil dan mengurangi biaya penalaran.) Inilah mengapa arsitektur model jarang (arsitektur model jarang) digunakan. Alasan di bawah arsitektur ini tidak Semua parameter perlu diaktifkan.

Chinchilla optimal: Dari makalah Pelatihan Model Bahasa Besar Komputasi-Optimal Deepmind, ini menunjukkan ukuran model dan ukuran data apa yang harus digunakan untuk mendapatkan kerugian terendah ketika ada jumlah total FLOPS yang tetap.

Saat ini, optimal Chinchilla adalah strategi optimal di sisi pelatihan, dan berlatih dengan lebih banyak token untuk mengungguli efek optimal Chinchilla adalah strategi optimal di sisi inferensi. Dan karena biaya penalaran memperhitungkan "kepala besar", sebagian besar perusahaan akan memilih strategi yang melebihi optimal Chinchilla.

Inti dari masalah dalam tautan inferensi adalah biaya penerapan model ke pengguna dan Agen terlalu tinggi. Biaya inferensi beberapa kali lebih tinggi daripada biaya pelatihan, dan penyelesaian masalah ini adalah tujuan OpenAI dalam hal arsitektur dan infrastruktur model.

Dalam hal inferensi dengan model besar, terutama model padat, ukuran model bisa menjadi masalah multivarian. Pada Perangkat AI- Pedang Bermata Dua Artikel ini telah membahas situasi dalam konteks edge computing. Sederhananya, perangkat terminal tidak akan pernah memiliki throughput dan bandwidth memori yang diperlukan untuk mengimplementasikan model bahasa yang besar.Bahkan jika bandwidth mencukupi, efisiensi perangkat tepi dalam memanfaatkan sumber daya komputasi perangkat keras sangat rendah. Pusat data menghadapi masalah serupa.

Pemanfaatan sumber daya komputasi sangat penting untuk data center dan cloud. (Catatan: Saat ini, batas atas pemanfaatan GPU/TPU di industri adalah sekitar 50%.) Alasan penting mengapa perangkat lunak NVIDIA dipuji secara luas adalah karena dalam proses meluncurkan GPU generasi baru secara berkelanjutan, NVIDIA juga terus-menerus memperbarui Generasi perangkat lunak yang mendorong peningkatan pemanfaatan FLOPS dengan mengaktifkan pergerakan data yang lebih cerdas di sekitar chip, antar chip, dan antar memori.

FLOPS: Floating Point Operations Per Second, adalah satuan yang digunakan untuk mengukur kecepatan operasi komputer. Semakin tinggi FLOPS, semakin baik komputer dapat menangani masalah tersebut. Daya komputasi GPU terutama berasal dari FLOPS yang dapat disediakannya.Semakin tinggi FLOPS yang disediakan oleh GPU, semakin kuat daya komputasinya.

Pada tahap ini, kasus penggunaan untuk inferensi LLM sebagian besar adalah "asisten langsung", yang berarti harus mencapai throughput yang cukup tinggi agar benar-benar berguna bagi pengguna. Mengambil manusia sebagai analogi, kecepatan membaca rata-rata manusia adalah sekitar 250 kata per menit, dan beberapa orang dapat mencapai sekitar 1.000 kata per menit Sesuai dengan model, itu berarti mengeluarkan setidaknya 8,33 token per detik, sebaiknya 33,33 token per detik token, adalah mungkin untuk memenuhi semua kebutuhan manusia.

Namun, karena keterbatasan bandwidth memori, bahkan pada server GPU NVIDA H100 terbaru, model padat (dense model) dengan parameter triliunan parameter tidak dapat mencapai throughput ini secara matematis. Setiap kali token dihasilkan, ia perlu dimuat dari memori ke chip, dan kemudian token ini dikirim lagi untuk menghasilkan token berikutnya. Selain itu, cache KV (KV Cache) untuk mengimplementasikan mekanisme perhatian juga memerlukan bandwidth tambahan.

KV Cache (KV Cache): Selama proses pengambilan sampel, model Transformer akan melakukan operasi perhatian diri (Self-Attention), yang mana perlu mengekstraksi nilai kunci untuk setiap item dalam urutan saat ini (apakah itu /konteks atau token yang dihasilkan) vektor (Nilai Kunci, KV). Vektor ini disimpan dalam matriks, sering disebut cache KV atau cache masa lalu. Fungsi cache KV adalah untuk menghindari penghitungan ulang vektor nilai kunci setiap kali token diambil sampelnya. Menggunakan nilai K dan V yang telah dihitung sebelumnya dapat menghemat banyak waktu komputasi, meskipun akan memakan ruang penyimpanan. Cache KV memainkan peran yang sangat penting dalam model Transformer dan dapat sangat membantu meningkatkan efisiensi dan performa model.

Diagram ini mengasumsikan bahwa gagal memadukan setiap operasi tidak efisien, dan bahwa mekanisme perhatian memerlukan bandwidth memori yang sebanding dan overhead perangkat keras saat pembacaan parameter. Pada kenyataannya, bahkan dengan pustaka yang "dioptimalkan" seperti NVIDIA FasterTransformer, biaya overhead keseluruhan akan lebih tinggi.

Gambar di atas menunjukkan bandwidth memori yang diperlukan untuk melayani LLM pengguna tunggal dengan throughput yang cukup tinggi. Dari gambar tersebut dapat diketahui bahwa:

• Bahkan bandwidth 8 kali lipat dari H100 tidak dapat melayani model padat dengan skala 1 triliun parameter dengan kecepatan 33,33 token per detik;

• Selain itu, pemanfaatan FLOPS 8x H100 masih di bawah 5% pada 20 token per detik, yang menghasilkan biaya inferensi yang sangat tinggi.

Faktanya, untuk sistem H100 paralel tensor 8 arah saat ini, batasan inferensi adalah sekitar 300 miliar parameter feed-forward.

Namun, OpenAI mencapai kecepatan membaca manusia dengan A100 dan model dengan >1 triliun parameter, tersedia secara luas dengan harga rendah $0,06 per 1000 token, dan ini dimungkinkan justru karena arsitekturnya yang jarang.

Selanjutnya kita akan membahas arsitektur model GPT-4, infra untuk pelatihan dan penalaran, jumlah parameter, komposisi kumpulan data pelatihan, jumlah token, jumlah lapisan, strategi paralel, encoder visual multi-modal, dll di belakang serangkaian desain teknik yang berbeda Pertimbangan, teknik implementasi, dan bagaimana OpenAI mengatasi hambatan dalam inferensi model besar.

02. Model struktur

Skala GPT-4 lebih dari 10 kali GPT-3, kami perkirakan memiliki sekitar 1,8 triliun parameter, dan parameter ini didistribusikan pada 120 lapisan transformator. Sebagai perbandingan, parameter GPT-3 adalah sekitar 1750 miliar. (Catatan: GPT-3 hanya memiliki 12 lapisan trafo, dan jumlah lapisan adalah 1/10 dari GPT-4.)

Untuk mengendalikan biaya, OpenAI memilih menggunakan model MoE. OpenAI menggunakan 16 pakar tipe MLP.2 dalam model, masing-masing dengan sekitar 111 miliar parameter. Dua dari model ahli ini dipanggil di setiap umpan maju.

• Mixture-of-Experts (MoE): Model MoE adalah arsitektur pembelajaran yang mendalam, yang biasanya terdiri dari beberapa ahli (Experts), setiap ahli bertanggung jawab untuk memproses aspek yang berbeda dari data input, dan memiliki set parameter sendiri (ada juga beberapa parameter, seperti penyematan, yang dapat digunakan bersama oleh semua pakar, yaitu parameter bersama). Dalam proses penalaran model, sesuai dengan karakteristik data input yang berbeda, model akan mengarahkan input ke pakar yang berbeda. Setiap pakar memproses input yang ditugaskan sesuai dengan set parameternya dan menyelesaikan output. Keluaran akhir adalah integrasi output dari masing-masing pakar. .

• MLP: Perceptron Multi-Lapisan (Multi-Layer Perceptron).MLP adalah jaringan syaraf tiruan yang mencakup banyak lapisan tersembunyi.Biasanya ada beberapa ahli MLP independen dalam model MoE.

Ada banyak literatur yang membahas tentang cara merutekan (assign) setiap token yang tertunda ke model expert, namun dikatakan bahwa himpunan algoritma yang digunakan oleh OpenAI cukup sederhana, setidaknya GPT-4 seperti ini.

Selain itu, sekitar 55 miliar parameter bersama digunakan dalam mekanisme perhatian.

Setiap inferensi maju (menghasilkan token) hanya menggunakan sekitar 280 miliar parameter dan 560 TFLOP, dibandingkan dengan sekitar 1,8 triliun parameter dan 3700 TFLOP yang diperlukan untuk setiap inferensi maju jika model padat digunakan murni.

03. Dataset

GPT-4 dilatih dengan sekitar 13 triliun token, yang masuk akal mengingat CommonCrawl RefinedWeb berisi sekitar 5 triliun token berkualitas tinggi. Sebagai referensi, model PaLM Deepmind Chinchilla dan Google masing-masing dilatih dengan sekitar 1,4 triliun token dan sekitar 0,78 triliun token, dan PaLM2 dikatakan dilatih dengan sekitar 5 triliun token.

CommonCrawl Refinedweb: CommonCrawl adalah proyek nirlaba yang bertujuan untuk membangun dan memelihara kumpulan data Internet yang terbuka dan dapat diakses yang menggunakan teknologi perayap web untuk memindai halaman web di Internet secara teratur dan mengatur halaman web serta metadata dan arsip terkait. CommonCrawl RefinedWeb adalah pustaka teks berkualitas tinggi yang telah disaring oleh CommonCrawl dari data mentah yang dikumpulkan setelah peninjauan algoritme dan manusia.

Kumpulan data yang digunakan oleh OpenAI untuk melatih GPT-4 bukanlah 13 triliun token unik. Sebaliknya, karena kurangnya token berkualitas tinggi, kumpulan data ini berisi banyak zaman. Ada 2 zaman untuk data berbasis teks dan 4 zaman untuk data berbasis kode. (Catatan: Ini mengacu pada beberapa teks dan kode berkualitas tinggi yang telah dipelajari oleh model berkali-kali.) Ini jauh dari pencapaian Chinchilla-optimal (model perlu dilatih untuk menggandakan jumlah token), yang juga menunjukkan bahwa jaringan mudah untuk Mendapatkan token saja tidak cukup. Token teks berkualitas tinggi yang benar-benar ada di jaringan harus 1000 kali lipat dari yang tersedia saat ini, dan token audio dan video bahkan lebih, tetapi mengumpulkan token ini tidak dapat dicapai hanya dengan mengorek web. Sayangnya, kami belum menemukan banyak informasi tentang RLHF OpenAI ke data.

Epoch mengacu pada proses penggunaan semua sampel di seluruh set pelatihan (training set) untuk melatih model satu kali. Secara khusus, suatu zaman mencakup beberapa langkah pelatihan (training steps), setiap langkah pelatihan adalah memasukkan sejumlah kecil sampel ke dalam model untuk pelatihan, dan memperbarui parameter model untuk meminimalkan fungsi kerugian (loss function).

Jika epoch terlalu kecil, model mungkin tidak dapat memanfaatkan sepenuhnya informasi dalam set pelatihan, yang mengakibatkan underfitting, yaitu model tidak dapat menyesuaikan data pelatihan dengan baik, sehingga menghasilkan kinerja yang buruk pada set pengujian . Sebaliknya, jika epoch terlalu besar, model mungkin mengalami overfitting, mempelajari terlalu banyak noise dan fitur lokal di set pelatihan, sambil mengabaikan fitur global.

Pada tahap pra-pelatihan, panjang konteks (seqlen) adalah 8k. Versi konteks 32k dari GPT-4 diimplementasikan di atas penyetelan halus 8k setelah prapelatihan.

Ukuran batch secara bertahap ditingkatkan pada cluster selama beberapa hari, tetapi pada akhirnya, OpenAI menggunakan ukuran batch hingga 60 juta. Tentu saja, karena tidak setiap parameter melihat semua parameter, ini hanyalah ukuran batch 7,5 juta per ahli.

Ukuran batch mengacu pada jumlah sampel latih untuk setiap iterasi (iterasi) atau lintasan maju (forward pass). Selama pelatihan model, data dibagi menjadi beberapa batch untuk pelatihan, dan ukuran batch menunjukkan jumlah sampel di setiap batch. Keuntungan dari pelatihan batch adalah dapat menghindari batasan memori dan menghemat sumber daya komputasi untuk penghitungan ulang hasil antara.

Ukuran Batch Size memiliki dampak besar pada efek latihan dan kecepatan model. Semakin besar Ukuran Batch, semakin besar perhitungan parameter pembaruan setiap kali, tetapi proses pelatihan akan lebih stabil, karena sampel di setiap Batch dapat rata-rata kebisingan dan ketidakpastian. Di sisi lain, jika Ukuran Batch terlalu kecil, proses pelatihan mungkin menjadi tidak stabil dan membutuhkan lebih banyak langkah pelatihan untuk mencapai solusi optimal. Selain itu, ukuran Batch Size juga akan dibatasi oleh resource hardware. Oleh karena itu, dalam aplikasi praktis, sangat penting untuk memilih Ukuran Batch yang sesuai.

04. Strategi paralel

Pemrosesan paralel pada semua GPU A100 sangat penting.

OpenAI menggunakan paralelisme tensor skala 8 arah (8 arah) (Paralelisme Tensor), alasannya adalah 8 arah (8 arah) karena ini adalah batas NVLink. Selain itu, kami juga mendengar bahwa OpenAI menggunakan strategi paralelisme pipa 15 arah (15 arah). Secara teoritis, 15-way terlalu banyak mengingat komunikasi data dan waktu komputasi, tetapi juga wajar jika dibatasi oleh kapasitas memori.

Ada beberapa paradigma paralel terdistribusi klasik dalam pelatihan model besar, yaitu paralelisme pipa (Pipeline Parallelism), paralelisme data (Data Parallelism) dan paralelisme tensor (Tensor Parallesim). FastSpeed, kerangka kerja pelatihan terdistribusi sumber terbuka Microsoft, menggabungkan ketiga paradigma paralel ini.

Jika Anda hanya menggunakan paralelisme pipa dan paralelisme tensor, parameter pada setiap GPU membutuhkan sekitar 30GB di bawah FP16, dan setelah cache KV dan overhead KV diperhitungkan, jika sebagian besar GPU yang digunakan oleh OpenAI adalah 40GB A100, arsitektur dari Ini adalah juga masuk akal secara teori. OpenAI dapat menggunakan ZeRo tahap 1, FSDP tingkat blok, atau paralelisme data bersama hibrid.

• KV overhead (KV overhead): mengacu pada beban yang disebabkan oleh tambahan overhead dalam sistem penyimpanan KV. Overhead ini dapat mencakup metadata untuk menyimpan dan mengelola pasangan kunci-nilai, struktur indeks, replikasi dan sinkronisasi data, komunikasi jaringan, dan banyak lagi. Peningkatan overhead KV dapat menyebabkan penurunan kinerja, peningkatan persyaratan penyimpanan, dan peningkatan kompleksitas sistem.

• ZeRo Tahap 1: ZeRO (Zero Redundancy Optimizer) berarti setiap kartu menyimpan status pengoptimal yang lengkap. Jika setiap kartu hanya menyimpan sebagian dari status pengoptimal, status pengoptimal dari semua kartu bersama-sama membentuk status lengkap, yaitu Pos (Partition Optimizer States), yang disebut ZeRO-stage1.

• FSDP tingkat blok: mengacu pada teknologi Kuantisasi Dinamis Presisi Penuh (Full Precision Dynamic Quantization) berbasis blok. Akurasi model yang lebih tinggi dapat dipertahankan selama pelatihan dan penalaran, membuat biaya inferensi model menjadi lebih rendah.

Alasan mengapa model lengkap FSDP tidak digunakan mungkin karena tingginya biaya komunikasi. Meskipun OpenAI memiliki jaringan berkecepatan tinggi di antara sebagian besar node, mungkin tidak semuanya, menurut kami setidaknya ada beberapa cluster dengan bandwidth koneksi yang jauh lebih rendah daripada yang lain.

Tidak jelas bagaimana OpenAI menghindari gelembung besar dengan paralelisme pipa yang begitu tinggi. Kemungkinan mereka hanya menanggung biayanya.

Gelembung: Penundaan atau waktu tunggu di setiap batch karena paralelisme pipa tingkat tinggi. Ini berarti bahwa dalam proses komputasi yang sangat paralel, karena kecepatan perhitungan yang berbeda dari bagian yang berbeda, beberapa bagian mungkin perlu menunggu bagian lain menyelesaikan perhitungan, yang mengakibatkan penundaan atau waktu diam. Dalam hal ini, "gelembung" mengacu pada interval menganggur atau menunggu ini. Kalimat ini berarti bahwa mereka mungkin hanya menerima bahwa ada waktu menganggur atau keterlambatan dalam proses perhitungan.

05. Biaya pelatihan

OpenAI menggunakan sekitar 2.15e25 FLOPS dalam pelatihan GPT-4, pada sekitar 25.000 GPU A100 selama 90 hingga 100 hari pelatihan, di mana penggunaan daya komputasi maksimum sekitar 32% hingga 36%. **

Pemanfaatan yang sangat rendah ini sebagian disebabkan oleh banyaknya kegagalan yang memerlukan memulai kembali pos pemeriksaan, dengan gelembung yang disebutkan di atas menghabiskan banyak biaya.

Alasan lainnya adalah pengurangan semua di begitu banyak GPU sangat mahal. Terutama jika kami menduga bahwa cluster sebenarnya terdiri dari banyak cluster yang lebih kecil dengan koneksi jaringan yang relatif lemah, seperti koneksi non-blocking 800G/1.6T antara berbagai bagian cluster, tetapi Beberapa ini hanya dapat terhubung pada kecepatan 200G/400G.

all-reduce adalah operasi komunikasi dalam komputasi paralel, yang digunakan untuk mewujudkan reduksi data global dalam komputasi terdistribusi. Dalam pembelajaran mendalam terdistribusi, all-reduce adalah operasi komunikasi umum untuk berbagi dan menggabungkan informasi gradien di antara beberapa node komputasi, untuk memperbarui parameter model selama pelatihan.

Jika biaya mereka di Cloud sekitar $1 per jam per A100, itu berarti ~$63 juta untuk sesi pelatihan ini saja**. Ini tidak termasuk semua percobaan, percobaan yang gagal, dan biaya lain untuk pengumpulan data, RLHF, staf, dll. Ketika faktor-faktor ini diperhitungkan, biaya sebenarnya jauh lebih tinggi. Selain itu, Anda juga perlu mempertimbangkan bahwa Anda perlu memiliki tim untuk menyelesaikan konfigurasi chip, peralatan jaringan, dan pusat data, menanggung investasi modal (Capex), dan menyewakannya kepada Anda.

Saat ini pra-pelatihan dapat dilakukan dalam waktu sekitar 55 hari dengan sekitar 8.192 H100 dengan biaya total $21,5 juta, masing-masing GPU H100 berharga $2/jam.

Kami berharap sembilan perusahaan memiliki lebih banyak GPU H100 pada akhir tahun. Mungkin H100 ini tidak semuanya akan digunakan untuk pelatihan model, tetapi perusahaan ini pasti akan merangkul model besar dan menjadi pemain penting. Meta berharap memiliki lebih dari 100.000 H100 pada akhir tahun, sebagian besar darinya akan digunakan di pusat data mereka sendiri untuk inferensi, meskipun kluster tunggal terbesar mereka akan memiliki lebih dari 25.000 GPU H100. (Catatan: Sumber daya komputasi Meta akan membuat kemampuan LLaMA berkembang menjadi variabel penting untuk penerapan open source dan pribadi.) Banyak perusahaan akan melatih model dengan kemampuan yang sama seperti GPT-4 sebelum akhir tahun ini.

06.MoE

MoE adalah cara yang efektif untuk mengurangi jumlah parameter selama inferensi, sekaligus meningkatkan jumlah parameter, yang membantu menyandikan lebih banyak informasi per token pelatihan. Karena sangat sulit untuk mendapatkan token berkualitas tinggi yang cukup, maka perlu memilih arsitektur MoE. Karena jika OpenAI benar-benar ingin mengimplementasikan Chinchilla-Optimal, mereka harus melatih jumlah token dua kali lipat sekarang.

Meski begitu, OpenAI membuat beberapa trade-off. Misalnya, berurusan dengan MoE selama inferensi sangat sulit karena tidak semua bagian model digunakan saat membuat setiap token. Ini berarti bahwa beberapa bagian mungkin tidak aktif sementara bagian lain sedang digunakan. Ini dapat berdampak serius pada pemanfaatan saat melayani pengguna.

Para peneliti membuktikan bahwa menggunakan 64 hingga 128 ahli memberikan hasil kerugian yang lebih baik daripada menggunakan 16 ahli, tetapi ini hanya penelitian. Ada beberapa alasan untuk mengurangi jumlah ahli. Salah satu alasan OpenAI memilih 16 ahli adalah karena memiliki lebih banyak ahli membuat lebih sulit untuk menggeneralisasi dan mencapai konvergensi. Mengingat pelatihan yang begitu besar, OpenAI memilih untuk lebih konservatif dalam jumlah ahli.

Juga, menggunakan lebih sedikit pakar sangat membantu untuk arsitektur inferensi. Ada berbagai pengorbanan yang rumit saat beralih ke arsitektur inferensi MoE. Mari kita mulai dengan pengorbanan inferensi LLM dasar, lalu jelajahi masalah yang dihadapi OpenAI dan pilihan yang mereka buat.

07. Penalaran

Pada bagian ini, pertama-tama kami ingin menunjukkan bahwa setiap perusahaan LLM yang kami hubungi menganggap pustaka inferensi FasterTransformer NVIDIA sangat buruk, dan TensorRT bahkan lebih buruk. Tanpa kemampuan untuk menggunakan template Nvidia dan memodifikasinya, itu berarti membuat solusi Anda sendiri dari awal. NVIDIA perlu menyelesaikan masalah ini sesegera mungkin untuk menyesuaikan dengan kebutuhan inferensi LLM, jika tidak maka akan menjadi alat terbuka sebenarnya. Lebih mudah untuk menambahkan dukungan perangkat keras pihak ketiga. Semakin banyak model besar yang datang, dan jika NVIDA tidak dapat memberikan keunggulan perangkat lunak dalam inferensi, dan kernel masih perlu ditulis tangan, maka AMD MI300 dan perangkat keras lainnya akan memiliki pasar yang jauh lebih besar.

Ada 3 faktor kunci dalam tautan inferensi LLM, yang terutama terkait dengan jumlah chip yang digunakan.

1. Latensi

Model harus merespons dalam penundaan yang wajar. Orang tidak mau menunggu beberapa detik sebelum mulai menerima keluaran dalam aplikasi obrolan. Waktu pemrosesan token input dan output dapat berfluktuasi.

2. Hasil

Model harus menampilkan sejumlah token per detik. Penggunaan manusia sekitar 30 token per detik, dan throughput bisa lebih rendah atau lebih tinggi untuk berbagai kasus penggunaan lainnya.

3. Pemanfaatan

Perangkat keras yang menjalankan model harus mencapai utilisasi yang tinggi atau biayanya akan mahal. Meskipun dimungkinkan untuk mencapai pemanfaatan yang lebih tinggi dengan mengelompokkan lebih banyak permintaan pengguna dengan latensi yang lebih tinggi dan throughput yang lebih rendah, hal ini meningkatkan kesulitan.

Inferensi LLM terutama untuk menyeimbangkan dua faktor utama, bandwidth memori dan perhitungan.

Secara sederhana, setiap parameter harus dibaca dengan dua FLOP yang terkait dengannya. Oleh karena itu, rasio sebagian besar chip (misalnya, H100 SXM hanya memiliki bandwidth memori 3TB/dtk, tetapi memiliki FP8 2.000 TFLOP/dtk) sama sekali tidak seimbang dalam inferensi dengan ukuran batch 1. Jika hanya satu pengguna yang dilayani, yaitu dengan ukuran batch 1, bandwidth memori yang diperlukan untuk mengalirkan setiap parameter untuk setiap pembuatan token mendominasi waktu inferensi, dan waktu komputasi hampir dapat diabaikan.

Agar dapat menskalakan model besar ke banyak pengguna, ukuran batch harus lebih besar dari 1, dan banyak pengguna berbagi biaya pembacaan parameter. Misalnya, dengan ukuran batch 256 atau 512, setiap byte memori yang dibaca sesuai dengan 512 FLOP/s atau 1024 FLOP/s. Rasio ini lebih dekat dengan rasio bandwidth memori H100 ke FLOPS. Membantu mencapai pemanfaatan yang lebih tinggi, tetapi memiliki kelemahan latensi yang lebih tinggi.

Banyak orang berpikir bahwa kapasitas memori adalah hambatan utama untuk inferensi LLM, karena ukuran model mungkin muat di banyak chip, tetapi pandangan ini mungkin bermasalah. Meskipun inferensi model besar membutuhkan banyak chip, dan kapasitas memori yang lebih tinggi menghasilkan lebih sedikit chip yang diadaptasi, sebenarnya lebih baik menggunakan lebih banyak chip daripada yang dibutuhkan untuk mengurangi latensi, meningkatkan throughput, dan ukuran batch yang lebih besar dapat digunakan untuk terus meningkatkan pemanfaatan.

Google juga menyebutkan penanganan ketiga masalah di atas dalam makalah inferensi PaLM. Perlu dicatat bahwa **ini untuk model padat seperti PaLM, bukan model jarang seperti GPT4. **

Jika suatu aplikasi memerlukan latensi serendah mungkin, kami memerlukan lebih banyak chip dan membagi model dengan cara sebanyak mungkin agar ekonomis. Ukuran batch yang lebih kecil memungkinkan latensi yang lebih rendah, tetapi ukuran batch yang lebih kecil juga menghasilkan [pemanfaatan] MFU yang lebih buruk, menghasilkan total biaya per token yang lebih tinggi (dalam chip detik atau dolar).

Jika aplikasi memerlukan inferensi offline, dan latensi tidak menjadi masalah, maka tujuan utamanya adalah memaksimalkan throughput per chip (mis. meminimalkan total biaya per token). Meningkatkan ukuran batch adalah yang paling efisien, karena ukuran batch yang lebih besar umumnya mengarah pada [pemanfaatan] MFU yang lebih baik, tetapi strategi partisi tertentu yang tidak efektif untuk ukuran batch kecil tumbuh seiring dengan pertumbuhan ukuran batch dan menjadi efektif.

**Lebih banyak chip dan ukuran batch yang lebih besar lebih murah karena meningkatkan utilisasi, tetapi ini juga memperkenalkan variabel ketiga, Waktu Jaringan. ** Metode penerapan model pada banyak chip dapat secara efektif mengatasi penundaan, tetapi dengan mengorbankan penggunaan.

Bagian pemuatan berat dari waktu penyimpanan dan waktu komputasi non-perhatian sebanding dengan ukuran model dan berbanding terbalik dengan jumlah chip. Untuk tata letak partisi tertentu, waktu yang dibutuhkan untuk komunikasi chip-to-chip berkurang lebih cepat (atau tidak sama sekali) dengan jumlah chip yang digunakan, sehingga jumlah chip bertambah, ini menjadi hambatan yang semakin penting.

Kami memperhatikan bahwa persyaratan memori cache KV meledak saat ukuran dan ukuran batch bertambah.

Jika suatu aplikasi perlu menghasilkan teks dengan konteks perhatian yang panjang (long attention contexts), itu akan sangat meningkatkan waktu inferensi. Untuk model dengan lebih dari 500B perhatian multi-head, cache perhatian KV bisa menjadi sangat besar: untuk model dengan ukuran batch 512 dan panjang konteks 2048, jumlah total cache KV adalah 3TB, yaitu 3 kali ukuran parameter model. Memori on-chip (memori on-chip) perlu memuat cache KV dari memori off-chip (memori off-chip), yang dimuat setiap kali token dibuat. Selama periode ini, inti komputasi dari chip pada dasarnya menganggur.

Panjang urutan yang panjang sangat menyusahkan untuk bandwidth memori dan kapasitas memori. Alasan mengapa GPT-3.5 turbo OpenAI dengan konteks 16k dan GPT-4 dengan konteks 32k mahal adalah karena mereka tidak dapat mengambil batch yang lebih besar karena kendala memori.

Batch yang lebih kecil menghasilkan pemanfaatan perangkat keras yang lebih rendah. Selain itu, cache KV membengkak saat panjang urutan bertambah. Cache KV tidak dapat dibagikan di antara pengguna, sehingga diperlukan pembacaan memori terpisah, yang selanjutnya mengurangi bandwidth memori. Lihat di bawah untuk informasi lebih lanjut tentang MQA.

08. Infra dan biaya penalaran

Infra

Arsitektur MoE membuat inferensi GPT-4 menghadapi tantangan dalam hal latensi, throughput, dan pemanfaatan. Karena forward pass dari setiap token dapat dialihkan ke model ahli yang berbeda, sangat sulit untuk mencapai latensi rendah, throughput tinggi, dan pemanfaatan tinggi dalam kasus ini, terutama pada ukuran batch tinggi.

Arsitektur GPT-4 OpenAI berisi 16 model ahli, dan setiap saluran maju memiliki 2 router. Ini berarti bahwa dengan ukuran batch 8, pembacaan parameter setiap ahli hanya dapat mengambil "1" dari ukuran batch. Lebih serius lagi, ini juga menghasilkan ukuran batch 8 untuk satu pakar, sedangkan ukuran batch pakar lain mungkin hanya 4, 1, atau 0.

Selain itu, algoritme perutean merutekan penerusan ke arah yang berbeda setiap kali token dibuat, yang menghasilkan variasi signifikan dalam latensi token-to-token dan ukuran kumpulan pakar. Artinya, saat memproses token yang berbeda, ahli yang berbeda dapat ditugaskan untuk tugas yang berbeda, dan beban komputasi serta ukuran batch dapat bervariasi.

Infra inferensi adalah salah satu pertimbangan utama OpenAI untuk memilih sejumlah kecil pakar dalam desain MoE. Jika mereka menggunakan lebih banyak ahli, bandwidth memori menjadi hambatan yang lebih besar untuk inferensi. OpenAI sering mencapai ukuran batch di atas 4k pada kluster inferensinya sendiri, yang berarti bahkan dengan penyeimbangan muatan yang optimal di antara para pakar, setiap pakar hanya dapat mencapai ukuran batch sekitar 500. Ini membutuhkan penggunaan yang sangat besar untuk mencapainya.

Pemahaman kami adalah bahwa OpenAI menjalankan inferensi pada sekelompok 128 GPU dan memiliki banyak kelompok seperti itu di pusat data dan wilayah geografis yang berbeda. Inferensi dilakukan secara paralel dengan tensor 8 arah dan pipeline 16 arah. Menggunakan 8 GPU per node, setiap GPU hanya memiliki sekitar 130B parameter, atau kurang dari 30GB per GPU di bawah FP16, dan kurang dari 15GB di bawah FP8/int8. Hal ini memungkinkan menjalankan inferensi pada 40GB A100 selama ukuran cache KV untuk semua batch tidak membengkak terlalu banyak.

FP16, FP8, dan int8 adalah representasi presisi (presisi) numerik yang berbeda, yang sering digunakan dalam proses perhitungan dalam pembelajaran mendalam untuk mengurangi penggunaan memori dan sumber daya komputasi, sehingga meningkatkan efisiensi pelatihan model dan penalaran.

FP16, FP8, dan int8 masing-masing mengacu pada angka floating-point 16-bit, angka floating-point 8-bit, dan bilangan bulat 8-bit.Ketepatannya lebih rendah daripada angka floating-point presisi tunggal 32-bit (FP32 ), tetapi dapat sangat mengurangi memori dan sumber daya komputasi. Gunakan untuk mempercepat pelatihan model dan inferensi dalam pembelajaran mendalam. Misalnya, menggunakan FP16 dapat mengurangi lebih dari separuh waktu komputasi tanpa kehilangan terlalu banyak presisi, sedangkan menggunakan int8 dapat mengurangi waktu komputasi dengan faktor sekitar 4 tanpa kehilangan terlalu banyak presisi.

Perlu dicatat bahwa penggunaan perhitungan presisi rendah dapat memiliki dampak tertentu pada akurasi model, sehingga diperlukan trade-off antara akurasi dan efisiensi, dan metode representasi akurasi yang paling tepat harus dipilih sesuai dengan tugas tertentu. persyaratan.

Untuk menghindari komunikasi jaringan yang terlalu tidak teratur dan pada saat yang sama menghindari biaya yang mahal untuk menghitung ulang cache KV antara setiap pembuatan token, berbagai lapisan yang berisi berbagai ahli tidak dipisahkan pada node yang berbeda untuk berbagi cache KV.

**Kesulitan terbesar untuk semua ekstensi model MoE mendatang dan perutean bersyarat. Ini adalah cara menangani batas 120 lapisan perutean di sekitar cache KV. **

Dalam model MoE, jumlah lapisan perutean per cabang tidak boleh melebihi 120 lapisan, jika tidak, cache KV tidak dapat ditangani secara efektif. Ini karena selama proses inferensi model, setiap cabang perlu menghitung cache KV, yang menyebabkan peningkatan biaya komputasi.

Solusi sederhana untuk masalah ini adalah dengan menempatkan rute rentang di 15 node berbeda berdasarkan batas lapisan 120. Dengan cara ini, beban komputasi dapat didistribusikan secara merata pada node yang berbeda, sehingga meningkatkan efisiensi dan performa model. Namun, karena node pertama perlu melakukan pemuatan dan penyematan data, penting untuk menempatkan lebih sedikit lapisan pada node kepala cluster inferensi.

Selain itu, dalam proses encoding dan decoding data input, mungkin terdapat beberapa gangguan terkait decoding inferensial, yang akan kita bahas lebih lanjut nanti. Masalah yang lebih kritis adalah menentukan apakah kebisingan tersebut harus dipercaya. Ini juga dapat menjelaskan mengapa masuk akal untuk memasukkan lebih sedikit lapisan pada simpul kepala.

** biaya penalaran **

Dibandingkan dengan model Davinchi dengan parameter 175B, GPT-4 memiliki 1,6 kali parameter feed-forward, tetapi biayanya 3 kali lipat dari Davinchi. Ini terutama karena GPT-4 membutuhkan cluster yang lebih besar dan mencapai pemanfaatan yang lebih rendah.

Kami menduga bahwa menggunakan 128 A100 untuk inferensi dengan panjang konteks GPT-4 8k (seqlen) berharga sekitar $0,0049 per 1k token. Saat menggunakan 128 H100 untuk inferensi pada konteks GPT-4 8k, biaya per 1k token adalah sekitar $0,0021. (Catatan: Harga GPT-4-8k saat ini adalah token input 0,03/1k, token output 0,06/1k. Saat ini, penggunaan chip inferensi OpenAI tidak akan semewah spekulasi penulis. Perhitungan ini dapat digunakan sebagai terikat untuk pengurangan harga di masa depan.) Penting untuk dicatat bahwa **biaya ini dihitung pada pemanfaatan tinggi dan ukuran batch. **

Mungkin juga asumsi kami salah, mengingat pemanfaatan cluster OpenAI terkadang sangat rendah.

Kami berhipotesis bahwa OpenAI mematikan cluster selama penurunan dan menggunakan kembali node tersebut untuk tugas lain, seperti melanjutkan pelatihan pos pemeriksaan model uji kecil, atau bereksperimen dengan berbagai teknik baru. Melakukan hal itu membantu menjaga biaya inferensi tetap rendah, jika tidak, pemanfaatan OpenAI bisa lebih rendah lagi, menyiratkan lebih dari 2x perkiraan biaya.

Lanjutkan pelatihan pos pemeriksaan dari model pengujian kecil, biasanya saat melatih model pembelajaran mendalam, mulai ulang pelatihan model yang lebih kecil (mis., subset yang hanya menggunakan subset dari ) untuk menguji struktur atau algoritme model baru dengan cepat dalam waktu singkat . Pendekatan ini dapat membantu peneliti melakukan iterasi dengan cepat pada desain model dan menemukan struktur dan parameter model yang optimal.

09. Mekanisme perhatian multi-permintaan

Penggunaan Multi-Query Attention cukup umum, tetapi kami ingin menekankan bahwa OpenAI melakukan hal yang sama. Secara umum, hanya diperlukan 1 kepala perhatian, dan kapasitas memori dapat dikurangi secara signifikan untuk caching KV. Meski begitu, GPT-4 dengan konteks 32k pasti tidak bisa berjalan di 40GB A100, dan ukuran batch maksimum 8k sudah dibatasi. Jika tidak ada MQA, ukuran batch maksimum 8k akan sangat terbatas, dan manfaat ekonomi akan sangat berkurang.

• Multi-Query Attention (MQA): Fast Transformer Decoding: One Write-Head is All You Need Makalah ini mengusulkan konsep MQA pada tahun 2019, dan kemudian menjadi mekanisme perhatian pemrosesan bahasa alami yang sering digunakan.

Dalam mekanisme perhatian tradisional, kueri (kueri) dicocokkan dengan sekumpulan pasangan kunci-nilai untuk mendapatkan representasi berbobot untuk setiap kunci. Sedangkan dalam perhatian multi-kueri, ada banyak kueri, dan setiap kueri dicocokkan dengan pasangan nilai kunci untuk mendapatkan representasi bobot yang berbeda untuk setiap kunci. Proses ini dapat dilihat sebagai penyandian input di bawah beberapa "tampilan" yang berbeda, menghasilkan representasi yang lebih komprehensif dan akurat.

• Attention Head (Kepala): Dalam model deep learning, biasanya berisi banyak lapisan (layer) dan kepala (head), yang digunakan untuk memetakan keluaran model ke ruang keluaran yang diinginkan. Lapisan kepala biasanya ditambahkan ke model untuk memenuhi tugas tertentu.Misalnya, dalam tugas pemrosesan bahasa alami, kepala biasanya digunakan untuk mengubah keluaran model menjadi teks untuk klasifikasi teks dan tugas lainnya. Pada model deep learning, head biasanya diikuti oleh layer terakhir, yang digunakan untuk mengubah output dari layer terakhir menjadi bentuk output yang diinginkan.

10. Pemrosesan batch berkelanjutan

Untuk memungkinkan latensi maksimum tertentu dan mengoptimalkan biaya inferensi, OpenAI menggunakan ukuran batch variabel dan teknik batching berkelanjutan. Pendekatan ini dapat meningkatkan pemanfaatan sumber daya komputasi tanpa mengorbankan kinerja model, dan mencapai latensi yang lebih rendah dan throughput yang lebih tinggi selama proses inferensi model. Jika Anda tidak memahami konsep pemrosesan batch berkelanjutan, artikel resmi AnyScale Bagaimana batching berkelanjutan memungkinkan throughput 23x dalam inferensi LLM sekaligus mengurangi latensi p50 patut dibaca. (Catatan Pickup: Kerangka kerja komputasi terdistribusi yang dikembangkan Ray oleh Anyscale digunakan oleh OpenAI dalam pipa infra model. Pickup telah menerbitkan penelitian tentang perusahaan ini sebelumnya.)

Pengelompokan berkelanjutan: Teknik yang digunakan selama pelatihan pembelajaran mendalam untuk meningkatkan efisiensi pelatihan dan pemanfaatan sumber daya melalui perangkat keras. Metode pemrosesan batch tradisional adalah memuat sejumlah data pelatihan ke dalam memori pada satu waktu, dan kemudian melatih data ini. Metode ini dapat meningkatkan efisiensi pelatihan, tetapi juga dapat membuang ruang memori.

Pemrosesan batch berkelanjutan adalah membagi data pelatihan menjadi beberapa batch kecil, dan hanya memuat satu batch kecil untuk pelatihan setiap kali, dan kemudian memuat batch kecil berikutnya setelah pelatihan selesai, dan seterusnya, hingga keseluruhan selesai proses pelatihan set data pelatihan. Menggunakan teknik pengelompokan berkelanjutan dapat meningkatkan efisiensi pelatihan sekaligus mengurangi penggunaan memori, dan juga dapat meningkatkan stabilitas dan generalisasi model.

Sumber: Skala apa saja

11. Dekode spekulatif

Ada rumor bahwa OpenAI menggunakan teknologi Spekulatif Decoding dalam tugas inferensi model GPT-4. Meskipun kami tidak dapat memastikan keakuratan pesan ini, variasi umum dalam latensi dan varians dari satu token ke token lainnya untuk tugas pengambilan sederhana dan tugas yang lebih kompleks tampaknya menunjukkan bahwa teknik ini mungkin dilakukan. Namun, karena terlalu banyak variabel, kami tidak dapat memastikan apakah teknik ini benar-benar digunakan.

Untuk menghindari perselisihan konten, beberapa konten dalam Mempercepat Inferensi LLM dengan Penguraian Kode Spekulatif Bertahap dikutip di sini, dan konten utamanya dicetak tebal.

Penggunaan LLM umumnya dibagi menjadi dua fase:

1. Tahap pra-pengisian

Pada fase ini, sebuah hint() pertama kali diberikan sebagai input dan dijalankan melalui model untuk menghasilkan cache KV dan log keluaran pertama. Diantaranya, logits adalah keluaran vektor distribusi probabilitas oleh LLM pada setiap langkah waktu, yang digunakan untuk merepresentasikan kemungkinan setiap token. Fase prepopulasi ini biasanya cepat karena perhitungan paralel.

2. Tahap decoding

Pada tahap ini, token dipilih dari log keluaran dan diumpankan kembali ke model untuk menghasilkan log untuk token berikutnya. Ini diulangi sampai jumlah token yang diinginkan dihasilkan. Karena setiap decoding harus dihitung secara berurutan untuk menghasilkan token, intensitas aritmatika dari tahap kedua ini (yaitu flop/byte bandwidth memori yang dihitung) sangat rendah saat dijalankan dalam batch kecil, menyebabkan kurang dimanfaatkannya daya komputasi.) Oleh karena itu, decoding adalah biasanya merupakan bagian termahal dari generasi autoregresif.

Inilah mengapa jauh lebih murah untuk memasukkan token daripada token keluaran dalam panggilan API OpenAI.

Ide inti dari decoding spekulatif adalah menggunakan model draf yang lebih kecil dan lebih cepat untuk mendekode beberapa token sebelumnya dan memasukkannya ke dalam model oracle sebagai batch. Jika prediksi model draf benar (yaitu setuju dengan prediksi model oracle), satu batch dapat digunakan untuk mendekode beberapa token, menghemat banyak bandwidth memori dan waktu per token.

Model Oracle mengacu pada model LLM yang lebih besar dan lebih lambat yang digunakan dalam metode decoding spekulatif untuk memvalidasi prediksi model draf. Model Oracle akan menghitung distribusi probabilitas token berikutnya berdasarkan hasil prediksi model draf dan token yang dihasilkan sebelumnya, lalu mengembalikan distribusi probabilitas ini ke model draf sebagai output.

Dengan menggunakan model Oracle untuk memverifikasi hasil prediksi model draf, kesalahan dan penyimpangan dalam proses decoding selanjutnya dari model draf dapat dihindari, sehingga meningkatkan akurasi dan stabilitas model. Pada saat yang sama, model Oracle juga dapat membantu model draf untuk mempelajari dan memahami informasi konteks dalam model bahasa dengan lebih baik, sehingga meningkatkan kemampuan generasi dan efek model.

Namun, jika model yang lebih besar menolak token yang diprediksi oleh model draf, kumpulan lainnya akan dibuang dan algoritme akan kembali ke decoding token-by-token standar. Penguraian sandi spekulatif juga dapat digabungkan dengan skema pengambilan sampel penolakan untuk mengambil sampel token dari distribusi asli. Perhatikan bahwa pendekatan ini hanya berfungsi dalam pengaturan batch kecil di mana bandwidth menjadi penghambat.

Singkatnya, decoding spekulatif memperdagangkan komputasi untuk bandwidth, dan ada dua alasan utama mengapa ini merupakan target pengoptimalan kinerja yang menarik. Pertama, decoding spekulatif tidak menurunkan kualitas model sama sekali, karena hanya meningkatkan kecepatan inferensi dan throughput model dengan memodifikasi proses perhitungan tahap decoding. Kedua, manfaat yang diberikannya umumnya tidak tergantung pada metode lain, karena keunggulannya terletak pada konversi perhitungan sekuensial menjadi eksekusi paralel, sedangkan metode lain terutama dimulai dengan struktur model, parameter, pelatihan, dll. untuk pengoptimalan.

Metode inferensi saat ini memprediksi urutan tunggal untuk setiap batch. Namun** metode ini tidak dapat diskalakan dengan baik untuk batch besar atau model draf dengan presisi rendah. **Secara intuitif, untuk urutan token berkelanjutan yang panjang, kemungkinan kedua model memprediksi kesepakatan menurun secara eksponensial, yang berarti bahwa ketika kekuatan algoritme berkembang, pengembalian decoding spekulatif akan menurun dengan cepat.

Kami berpikir bahwa jika OpenAI menggunakan decoding spekulatif, mereka kemungkinan hanya menggunakannya untuk urutan pendek dengan panjang sekitar 4 token. Selain itu, beberapa orang berpikir bahwa penurunan kinerja model GPT-4 adalah karena OpenAI menambahkan urutan probabilitas rendah dari model decoding spekulatif ke model pra-pelatihan, yang mungkin tidak benar.

Selain itu - Beberapa orang berpikir bahwa model Bard juga menggunakan decoding spekulatif karena Google menunggu urutan lengkap dibuat sebelum mengirimkannya ke pengguna, tetapi kami tidak percaya tebakan ini benar.

12. Multimodal Visual

Vision Multi-Modal mungkin adalah bagian yang paling tidak menarik dari GPT-4, setidaknya dibandingkan dengan penelitian lain. Sejauh ini, belum ada yang mengeksplorasi komersialisasi penelitian LLM multimodal.

Visi Multi-Modal: Ini mengacu pada pemrosesan bersama dan analisis informasi dari berbagai modalitas (seperti gambar, teks, suara, dll.). Biasanya, informasi dari modalitas yang berbeda ini terkait secara semantik, sehingga menggabungkannya dapat memberikan informasi yang lebih kaya dan hasil inferensi yang lebih akurat.

Kemampuan multimodal visual GPT-4 dicapai melalui encoder visual yang independen dari encoder teks, dan memiliki mekanisme perhatian silang (Cross-Attention) dengan encoder teks. Dikatakan bahwa arsitekturnya mirip dengan model Flamingo. Vision encoder disempurnakan pada 1,8 triliun parameter model GPT-4, namun, itu hanya dilatih sebelumnya dengan tambahan ~2 triliun token data teks, bukan data vision.

Cross-Attention: Ini adalah mekanisme untuk membangun asosiasi antara beberapa data sekuens, yang telah banyak digunakan dalam pemrosesan bahasa alami dan visi komputer. Dalam tugas urutan-ke-urutan, seperti terjemahan mesin dan peringkasan teks, mekanisme perhatian silang digunakan untuk menghitung korelasi antara urutan sumber dan target sehingga informasi dalam urutan sumber digunakan saat membuat urutan target.

Dalam tugas visi komputer, mekanisme perhatian silang digunakan untuk menghubungkan gambar dan teks untuk digunakan dalam tugas seperti membuat deskripsi gambar dan menjawab pertanyaan secara visual.

OpenAI berencana untuk melatih model visi dari awal, tetapi teknologinya belum matang, jadi mereka berharap dapat mengurangi risiko dengan melatih dari teks.

** Rumor mengatakan bahwa GPT-5 OpenAI akan melatih model visi dari awal dan memiliki kemampuan untuk menghasilkan pemrosesan gambar dan audio secara otomatis. **

Tujuan utama dari teknologi multimodal visual adalah untuk memungkinkan agen otonom membaca halaman web dan menyalin konten gambar dan video mereka. Data yang digunakan oleh OpenAI untuk melatih model ini mencakup data bersama (termasuk LaTeX/teks yang dirender), tangkapan layar halaman web, dan bingkai sampel video Youtube, dll., serta menggunakan teknologi Whisper untuk mentranskripsi.

Satu hal yang menarik tentang masalah over-optimalisasi LLM adalah bahwa biaya IO model visual berbeda dari biaya IO model teks biasa. Biaya IO model teks sangat murah, tetapi dalam model visi, biaya pemuatan data IO sekitar 150 kali lipat dari model teks. Ukuran setiap token adalah 600 byte, sedangkan model teks hanya memiliki 4 byte. Saat ini, ada banyak pekerjaan yang dilakukan dalam penelitian kompresi gambar. (Catatan Xianxiang: Informasi teks lebih mudah dikompresi, dan tokenisasi gambar/video adalah arah yang patut diperhatikan di bidang multimodal.)

Biaya IO: Biaya IO mengacu pada biaya waktu, sumber daya, dan energi yang diperlukan untuk menyelesaikan operasi input/output dalam sistem komputer. Biaya ini mencakup aspek-aspek seperti transfer data, penyimpanan, dan pemrosesan. Dalam bidang pembelajaran mesin dan pembelajaran mendalam, biaya IO biasanya mengacu pada biaya membaca dan menulis data dari media penyimpanan (seperti hard disk, memori, jaringan, dll.). Selama pelatihan dan inferensi model, biaya IO dapat menjadi hambatan, memengaruhi kinerja dan efisiensi sistem. Oleh karena itu, untuk meningkatkan kinerja dan efisiensi sistem komputer, biaya IO perlu diperhatikan dan dioptimalkan.

Ini sangat penting bagi vendor yang mengoptimalkan perangkat keras mereka setelah 2-3 tahun untuk memperhitungkan kemampuan visual dan audio yang kuat dari setiap model. Mereka mungkin menemukan bahwa arsitektur mereka tidak cocok. Secara keseluruhan, arsitektur LLM di masa depan pasti akan berkembang melampaui model padat berbasis teks dan/atau MoE yang kita lihat sekarang.

Referensi

Lihat Asli
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Hadiah
  • Komentar
  • Bagikan
Komentar
0/400
Tidak ada komentar
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)