Kecerdasan Buatan
Memahami Parameter Model Bahasa Besar dan Persyaratan Memori: Penyelaman Mendalam
Diterbitkan
hari 5 laluon
Daftar Isi
Model Bahasa Besar (LLM) telah mengalami kemajuan luar biasa dalam beberapa tahun terakhir. Model seperti GPT-4, Google Gemini, dan Claude 3 menetapkan standar baru dalam kemampuan dan aplikasi. Model-model ini tidak hanya meningkatkan pembuatan teks dan terjemahan, namun juga membuat terobosan baru dalam pemrosesan multimodal, menggabungkan input teks, gambar, audio, dan video untuk memberikan solusi AI yang lebih komprehensif.
Misalnya, GPT-4 OpenAI telah menunjukkan peningkatan signifikan dalam memahami dan menghasilkan teks mirip manusia, sementara model Gemini Google unggul dalam menangani beragam jenis data, termasuk teks, gambar, dan audio, sehingga memungkinkan interaksi yang lebih lancar dan relevan secara kontekstual. Demikian pula, model Claude 3 Anthropic terkenal karena kemampuan multibahasa dan peningkatan kinerja dalam tugas AI.
Seiring dengan pesatnya perkembangan LLM, pemahaman seluk-beluk model ini, terutama parameter dan kebutuhan memorinya, menjadi sangat penting. Panduan ini bertujuan untuk mengungkap aspek-aspek ini, menawarkan penjelasan rinci dan mudah dipahami.
Dasar-dasar Model Bahasa Besar
Apa Itu Model Bahasa Besar?
Model Bahasa Besar adalah jaringan saraf yang dilatih pada kumpulan data besar untuk memahami dan menghasilkan bahasa manusia. Mereka mengandalkan arsitektur seperti Transformers, yang menggunakan mekanisme seperti perhatian diri untuk memproses dan menghasilkan teks.
Pentingnya Parameter dalam LLM
Parameter adalah komponen inti dari model ini. Hal ini mencakup bobot dan bias, yang disesuaikan oleh model selama pelatihan untuk meminimalkan kesalahan dalam prediksi. Jumlah parameter sering kali berkorelasi dengan kapasitas dan kinerja model, tetapi juga memengaruhi kebutuhan komputasi dan memorinya.
Memahami Arsitektur Transformator
Ringkasan
Arsitektur Transformer, diperkenalkan dalam makalah “Attention Is All You Need” oleh Vaswani et al. (2017), telah menjadi landasan bagi banyak LLM. Ini terdiri dari encoder dan decoder, masing-masing terdiri dari beberapa lapisan yang identik.
Komponen Encoder dan Decoder
- encoder: Memproses urutan masukan dan membuat representasi sadar konteks.
- Decoder: Menghasilkan urutan keluaran menggunakan representasi pembuat enkode dan token yang dibuat sebelumnya.
Blok Bangunan Utama
- Perhatian Multi-Kepala: Memungkinkan model untuk fokus pada bagian berbeda dari urutan masukan secara bersamaan.
- Jaringan Neural Feed-Forward: Menambahkan non-linearitas dan kompleksitas pada model.
- Normalisasi Lapisan: Menstabilkan dan mempercepat pelatihan dengan menormalkan keluaran antara.
Menghitung Jumlah Parameter
Menghitung Parameter di LLM berbasis Transformer
Mari kita uraikan perhitungan parameter untuk setiap komponen LLM berbasis Transformer. Kita akan menggunakan notasi dari makalah aslinya, dimana d_model
mewakili dimensi keadaan tersembunyi model.
- Lapisan Penyematan:
- Parameter =
vocab_size
*d_model
- Parameter =
- Perhatian Multi-Kepala:
- Untuk
h
kepala, dengand_k = d_v = d_model / h
: - Parameter = 4 *
d_model
^2 (untuk Q, K, V, dan proyeksi keluaran)
- Untuk
- Jaringan Umpan-Maju:
- Parameter = 2 *
d_model
*d_ff
+d_model
+d_ff
- Where
d_ff
biasanya 4 *d_model
- Parameter = 2 *
- Normalisasi Lapisan:
- Parameter = 2 *
d_model
(untuk skala dan bias)
- Parameter = 2 *
Parameter total untuk satu lapisan Transformer:
Parameters_layer
=Parameters_attention
+Parameters_ffn
+2*Parameters_layernorm
Untuk model dengan N
lapisan:
- Parameter Jumlah =
N
*Parameters_layer
+Parameters_embedding
+Parameters_output
Contoh Perhitungan
Mari kita pertimbangkan model dengan spesifikasi berikut:
d_model
= 768h
(jumlah kepala perhatian) = 12N
(jumlah lapisan) = 12vocab_size
= 50,000
- Lapisan Penyematan:
- 50,000 * 768 = 38,400,000
- Perhatian Multi-Kepala:
- 4*768^2 = 2,359,296
- Jaringan Umpan-Maju:
- 2*768*(4*768) + 768 + (4*768) = 4,719,616
- Normalisasi Lapisan:
- 2 * 768 = 1,536
Parameter total per lapisan:
- 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984
Parameter total untuk 12 lapisan:
- 12 * 7,081,984 = 84,983,808
Parameter model keseluruhan:
- 84,983,808 + = 38,400,000 123,383,808
Model ini akan memiliki sekitar 123 juta parameter.
Jenis Penggunaan Memori
Saat bekerja dengan LLM, kita perlu mempertimbangkan dua jenis penggunaan memori utama:
- Memori Model: Memori yang diperlukan untuk menyimpan parameter model.
- Memori Kerja: Memori yang diperlukan selama inferensi atau pelatihan untuk menyimpan aktivasi perantara, gradien, dan status pengoptimal.
Menghitung Memori Model
Memori model berhubungan langsung dengan jumlah parameter. Setiap parameter biasanya disimpan sebagai angka floating-point 32-bit, meskipun beberapa model menggunakan pelatihan presisi campuran dengan float 16-bit.
Memori Model (byte) = Jumlah parameter * Byte per parameter
Untuk contoh model kita dengan 123 juta parameter:
- Memori Model (32-bit) = 123,383,808 * 4 byte = 493,535,232 byte ≈ 494 MB
- Memori Model (16-bit) = 123,383,808 * 2 byte = 246,767,616 byte ≈ 247 MB
Memperkirakan Memori Kerja
Persyaratan memori kerja dapat bervariasi secara signifikan berdasarkan tugas spesifik, ukuran batch, dan panjang urutan. Perkiraan kasar untuk memori kerja selama inferensi adalah:
Memori Kerja ≈ 2 * Memori Model
Ini menjelaskan penyimpanan parameter model dan aktivasi perantara. Selama pelatihan, kebutuhan memori bisa menjadi lebih tinggi karena kebutuhan untuk menyimpan gradien dan status pengoptimal:
Memori Pelatihan ≈ 4 * Memori Model
Untuk contoh model kita:
- Memori Kerja Inferensi ≈ 2 * 494 MB = 988 MB ≈ 1 GB
- Memori Pelatihan ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB
Penggunaan Memori Steady-State dan Penggunaan Memori Puncak
Saat melatih model bahasa besar berdasarkan arsitektur Transformer, memahami penggunaan memori sangat penting untuk alokasi sumber daya yang efisien. Mari kita bagi kebutuhan memori menjadi dua kategori utama: penggunaan memori kondisi stabil dan penggunaan memori puncak.
Penggunaan Memori Kondisi Mantap
Penggunaan memori kondisi tunak terdiri dari komponen-komponen berikut:
- Model Bobot: FP32 menyalin parameter model, membutuhkan 4N byte, dengan N adalah jumlah parameter.
- Status Pengoptimal: Untuk pengoptimal Adam, ini memerlukan 8N byte (2 status per parameter).
- Gradien: salinan gradien FP32, membutuhkan 4N byte.
- Memasukan data: Dengan asumsi input int64, ini memerlukan 8BD byte, dengan B adalah ukuran batch dan D adalah dimensi input.
Total penggunaan memori kondisi tunak dapat diperkirakan dengan:
- M_steady = 16N + 8BD byte
Penggunaan Memori Puncak
Penggunaan memori puncak terjadi selama proses backward pass ketika aktivasi disimpan untuk komputasi gradien. Kontributor utama memori puncak adalah:
- Normalisasi Lapisan: Membutuhkan 4E byte per norma lapisan, di mana E = BSH (B: ukuran batch, S: panjang urutan, H: ukuran tersembunyi).
- Blok Perhatian:
- Perhitungan QKV: 2E byte
- Matriks perhatian: 4BSS byte (S: panjang urutan)
- Keluaran perhatian: 2E byte
- Blok Umpan-Maju:
- Lapisan linier pertama: 2E byte
- Aktivasi GELU: 8E byte
- Lapisan linier kedua: 2E byte
- Kerugian Lintas Entropi:
- Logit: 6BSV byte (V: ukuran kosakata)
Total memori aktivasi dapat diperkirakan sebagai:
- M_act = L * (14E + 4BSS) + 6BSV byte
Dimana L adalah jumlah lapisan trafo.
Total Penggunaan Memori Puncak
Penggunaan memori puncak selama pelatihan dapat diperkirakan dengan menggabungkan memori kondisi tunak dan memori aktivasi:
- M_peak = M_steady + M_act + 4BSV byte
Istilah 4BSV tambahan menjelaskan alokasi tambahan pada awal backward pass.
Dengan memahami komponen-komponen ini, kita dapat mengoptimalkan penggunaan memori selama pelatihan dan inferensi, memastikan alokasi sumber daya yang efisien dan meningkatkan kinerja model bahasa besar.
Hukum Penskalaan dan Pertimbangan Efisiensi
Hukum Penskalaan untuk LLM
Penelitian telah menunjukkan bahwa kinerja LLM cenderung mengikuti hukum penskalaan tertentu seiring dengan bertambahnya jumlah parameter. Kaplan dkk. (2020) mengamati bahwa kinerja model meningkat seiring dengan hukum kekuatan jumlah parameter, anggaran komputasi, dan ukuran kumpulan data.
Hubungan antara performa model dan jumlah parameter dapat diperkirakan dengan:
Performa ∝ N^α
Dimana N adalah jumlah parameter dan α adalah eksponen penskalaan yang biasanya sekitar 0.07 untuk tugas pemodelan bahasa.
Artinya, untuk mencapai peningkatan kinerja sebesar 10%, kita perlu meningkatkan jumlah parameter sebanyak 10^(1/α) ≈ 3.7.
Teknik Efisiensi
Ketika LLM terus berkembang, peneliti dan praktisi telah mengembangkan berbagai teknik untuk meningkatkan efisiensi:
a) Pelatihan Presisi Campuran: Menggunakan angka floating-point 16-bit atau bahkan 8-bit untuk operasi tertentu guna mengurangi penggunaan memori dan kebutuhan komputasi.
b) Model Paralelisme: Mendistribusikan model ke beberapa GPU atau TPU untuk menangani model yang lebih besar daripada yang dapat ditampung pada satu perangkat.
c) Pos Pemeriksaan Gradien: Memperdagangkan komputasi untuk memori dengan menghitung ulang aktivasi tertentu selama proses backward pass alih-alih menyimpannya.
d) Pemangkasan dan Kuantisasi: Menghapus bobot yang kurang penting atau mengurangi presisinya pasca pelatihan untuk membuat model yang lebih kecil dan efisien.
e) Distilasi: Melatih model yang lebih kecil untuk meniru perilaku model yang lebih besar, sehingga berpotensi mempertahankan sebagian besar performa dengan parameter yang lebih sedikit.
Contoh Praktis dan Perhitungan
GPT-3, salah satu model bahasa terbesar, memiliki 175 miliar parameter. Ia menggunakan bagian decoder dari arsitektur Transformer. Untuk memahami skalanya, mari kita uraikan jumlah parameter dengan nilai hipotetis:
d_model = 12288
d_ff = 4 * 12288 = 49152
- Jumlah lapisan = 96
Untuk satu lapisan dekoder:
Parameter Total = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 miliar
Total untuk 96 lapisan:
1.1 miliar * 96 = 105.6 miliar
Parameter lainnya berasal dari penyematan dan komponen lainnya.
Kesimpulan
Memahami parameter dan kebutuhan memori model bahasa besar sangat penting untuk merancang, melatih, dan menerapkan alat canggih ini secara efektif. Dengan menguraikan komponen arsitektur Transformer dan memeriksa contoh praktis seperti GPT, kami memperoleh wawasan yang lebih mendalam tentang kompleksitas dan skala model ini.
Untuk lebih memahami kemajuan terkini dalam model bahasa besar dan aplikasinya, lihat panduan komprehensif berikut:
- Jelajahi Panduan Lengkap tentang Gemma 2: Model Bahasa Terbuka Besar Baru Google untuk mendapatkan wawasan tentang peningkatan kinerja dan fitur-fitur inovatifnya.
- Pelajari tentang Membangun Agen LLM untuk RAG dari Awal dan Selanjutnya: Panduan Komprehensif yang membahas tantangan dan solusi dalam generasi augmented pengambilan.
- Temukan seluk-beluk dari Menyiapkan Pelatihan, Penyempurnaan, dan Inferensi LLM dengan GPU NVIDIA dan CUDA untuk mengoptimalkan sistem AI.
Saya telah menghabiskan lima tahun terakhir membenamkan diri dalam dunia Machine Learning dan Deep Learning yang menakjubkan. Semangat dan keahlian saya telah membuat saya berkontribusi pada lebih dari 50 proyek rekayasa perangkat lunak yang beragam, dengan fokus khusus pada AI/ML. Keingintahuan saya yang berkelanjutan juga menarik saya ke Natural Language Processing, bidang yang ingin saya jelajahi lebih jauh.
Kamu mungkin suka
MARKLLM: Perangkat Sumber Terbuka untuk LLM Watermarking
Menerapkan Model Bahasa Besar di Kubernetes: Panduan Komprehensif
Memahami Sparse Autoencoder, GPT-4 & Claude 3: Eksplorasi Teknis Mendalam
Qwen2 – Model Bahasa Multibahasa Terbaru Alibaba Menantang SOTA seperti Llama 3
LLaVA-UHD: LMM yang Memahami Rasio Aspek Apa Pun dan Gambar Resolusi Tinggi
Meningkatkan Model Bahasa Besar dengan Prediksi Multi-token
Tulisan Terbaru
- Cohere Mendapat Peningkatan $500 Juta, Nilai Lebih dari Dua Kali Lipat menjadi $5.5 miliar
- GPT-4o Mini Diluncurkan: Alternatif Hemat Biaya dan Berkinerja Tinggi untuk Claude Haiku, Gemini Flash, dan GPT 3.5 Turbo
- Sam Oliver, Pendiri OpenFi- Seri Wawancara
- Menguasai Seni Anjuran AI: 5 Teknik untuk Pengguna Tingkat Lanjut
- Mesin Impian Luma AI – Merevolusi Pembuatan Video AI