Terhubung dengan kami

Kecerdasan Buatan

Memahami Parameter Model Bahasa Besar dan Persyaratan Memori: Penyelaman Mendalam

mm

Diterbitkan

 on

Menghitung Parameter di LLM berbasis Transformer

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

Arsitektur transformator

Arsitektur Transformer

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

  1. Perhatian Multi-Kepala: Memungkinkan model untuk fokus pada bagian berbeda dari urutan masukan secara bersamaan.
  2. Jaringan Neural Feed-Forward: Menambahkan non-linearitas dan kompleksitas pada model.
  3. Normalisasi Lapisan: Menstabilkan dan mempercepat pelatihan dengan menormalkan keluaran antara.

Menghitung Jumlah Parameter

Pelatihan Transformator

Model Terlatih Untuk Pelatihan Transformator yang Efisien

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.

  1. Lapisan Penyematan:
    • Parameter = vocab_size * d_model
  2. Perhatian Multi-Kepala:
    • Untuk h kepala, dengan d_k = d_v = d_model / h:
    • Parameter = 4 * d_model^2 (untuk Q, K, V, dan proyeksi keluaran)
  3. Jaringan Umpan-Maju:
    • Parameter = 2 * d_model * d_ff + d_model + d_ff
    • Where d_ff biasanya 4 * d_model
  4. Normalisasi Lapisan:
    • Parameter = 2 * d_model (untuk skala dan bias)

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 = 768
  • h (jumlah kepala perhatian) = 12
  • N (jumlah lapisan) = 12
  • vocab_size = 50,000
  1. Lapisan Penyematan:
    • 50,000 * 768 = 38,400,000
  2. Perhatian Multi-Kepala:
    • 4*768^2 = 2,359,296
  3. Jaringan Umpan-Maju:
    • 2*768*(4*768) + 768 + (4*768) = 4,719,616
  4. 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:

  1. Memori Model: Memori yang diperlukan untuk menyimpan parameter model.
  2. 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:

  1. Model Bobot: FP32 menyalin parameter model, membutuhkan 4N byte, dengan N adalah jumlah parameter.
  2. Status Pengoptimal: Untuk pengoptimal Adam, ini memerlukan 8N byte (2 status per parameter).
  3. Gradien: salinan gradien FP32, membutuhkan 4N byte.
  4. 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:

  1. Normalisasi Lapisan: Membutuhkan 4E byte per norma lapisan, di mana E = BSH (B: ukuran batch, S: panjang urutan, H: ukuran tersembunyi).
  2. Blok Perhatian:
    • Perhitungan QKV: 2E byte
    • Matriks perhatian: 4BSS byte (S: panjang urutan)
    • Keluaran perhatian: 2E byte
  3. Blok Umpan-Maju:
    • Lapisan linier pertama: 2E byte
    • Aktivasi GELU: 8E byte
    • Lapisan linier kedua: 2E byte
  4. 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:

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.