Pada postingan sebelumnya dari seri penjelasan Gemma, kami telah membahas arsitektur Gemma. Dalam postingan ini, Anda akan menjelajahi model terbaru, Gemma 2. Mari kita mulai!
Kami baru saja merilis Gemma 2, rangkaian model terbuka baru yang inovatif. Model ini menetapkan standar baru untuk performa dan aksesibilitas. Tersedia dalam ukuran parameter 2B, 9B, dan 27B, Gemma 2 dengan cepat menorehkan pencapaiannya. Model 27B kami dengan cepat naik ke papan peringkat LMSYS Chatbot Arena, bahkan melampaui model populer lebih dari dua kali lipat ukurannya dalam percakapan dunia nyata yang mengesankan, memantapkan dirinya sebagai salah satu model terbuka dengan peringkat tertinggi dan paling berguna. Sementara itu, model Gemma 2 2B menunjukkan kehebatan AI percakapannya yang luar biasa dengan mengungguli semua model GPT-3.5 di Chatbot Arena dengan ukuran yang dapat dijalankan di perangkat edge.
Developer bisa mengakses kemampuan penyetelan yang tangguh dengan Gemma 2 di berbagai platform dan alat. Penyempurnaan Gemma 2 disederhanakan dengan solusi berbasis cloud seperti Google Cloud dan alat komunitas seperti Axolotl. Integrasi yang mulus dengan mitra, seperti Hugging Face dan NVIDIA TensorRT-LLM, serta JAX dan Keras kami, memungkinkan pengoptimalan performa dan deployment yang efisien pada beragam konfigurasi hardware.
Berikut adalah parameter inti dari model baru ini:
Gemma 2 memiliki fondasi arsitektur yang serupa dengan model Gemma asli, termasuk implementasi Rotary Positioning Embeddings (RoPE) dan perkiraan non-linearitas GeGLU. Namun, Gemma 2 menghadirkan inovasi arsitektur baru yang membedakannya dari pendahulunya.
Alih-alih mempertimbangkan semua kata dalam teks sekaligus, model ini terkadang berfokus pada sebagian kecil kata (perhatian lokal) dan terkadang mempertimbangkan semua kata (perhatian global). Kombinasi ini membantu model memahami konteks langsung dan makna keseluruhan teks secara efisien.
Bayangkan Anda sedang melatih model untuk memprediksi kata berikutnya dalam sebuah kalimat. Terkadang, model mungkin terlalu percaya diri dengan kata tertentu, meskipun kata tersebut bukan pilihan terbaik. Logit soft-capping mencegah hal ini dengan membatasi seberapa percaya diri model dalam melakukan prediksi, sehingga menghasilkan performa yang lebih baik secara keseluruhan.
Anggap saja ini sebagai cara untuk menjaga agar kalkulasi model tidak terlalu besar atau kecil selama pelatihan. Sama seperti kita menyesuaikan volume pada speaker untuk mencegah distorsi, RMSNorm memastikan bahwa informasi yang mengalir melalui model tetap berada dalam kisaran yang wajar, sehingga menghasilkan pelatihan yang lebih stabil dan efektif.
Teknik ini membantu model memproses informasi secara lebih efisien, terutama ketika berhadapan dengan teks dalam jumlah besar. Teknik ini meningkatkan multi-head attention (MHA) tradisional dengan mengelompokkan kueri secara bersamaan, sehingga memungkinkan pemrosesan yang lebih cepat, terutama untuk model besar. Ini seperti membagi tugas besar menjadi beberapa bagian yang lebih kecil dan lebih mudah dikelola, sehingga model bisa memahami hubungan antar kata dengan lebih cepat tanpa mengorbankan akurasinya.
Gemma2ForCausalLM(
(model): Gemma2Model(
(embed_tokens): Embedding(256000, 4608, padding_idx=0)
(layers): ModuleList(
(0-45): 46 x Gemma2DecoderLayer(
(self_attn): Gemma2SdpaAttention(
(q_proj): Linear(in_features=4608, out_features=4096, bias=False)
(k_proj): Linear(in_features=4608, out_features=2048, bias=False)
(v_proj): Linear(in_features=4608, out_features=2048, bias=False)
(o_proj): Linear(in_features=4096, out_features=4608, bias=False)
(rotary_emb): Gemma2RotaryEmbedding()
)
(mlp): Gemma2MLP(
(gate_proj): Linear(in_features=4608, out_features=36864, bias=False)
(up_proj): Linear(in_features=4608, out_features=36864, bias=False)
(down_proj): Linear(in_features=36864, out_features=4608, bias=False)
(act_fn): PytorchGELUTanh()
)
(input_layernorm): Gemma2RMSNorm()
(post_attention_layernorm): Gemma2RMSNorm()
(pre_feedforward_layernorm): Gemma2RMSNorm()
(post_feedforward_layernorm): Gemma2RMSNorm()
)
)
(norm): Gemma2RMSNorm()
)
(lm_head): Linear(in_features=4608, out_features=256000, bias=False)
)
Dalam mekanisme self-attention, Gemma 2 menggunakan Grouped Query Attention (GQA).
k_proj dan v_proj berbagi head yang sama dengan ukuran 128 dan 16 head (128 x 16 = 2048). Sebaliknya, q_proj dan o_proj memiliki 32 head (128 x 32 = 4096) secara paralel.
Perhatikan bahwa model Gemma 9B menggunakan GQA yang sama tetapi jumlah headnya berbeda (8 untuk k_proj dan v_proj, 16 untuk q_proj dan o_proj) serta ukuran head (256)
(self_attn): Gemma2SdpaAttention(
(q_proj): Linear(in_features=3584, out_features=4096, bias=False)
(k_proj): Linear(in_features=3584, out_features=2048, bias=False)
(v_proj): Linear(in_features=3584, out_features=2048, bias=False)
(o_proj): Linear(in_features=4096, out_features=3584, bias=False)
(rotary_emb): Gemma2RotaryEmbedding()
)
Model 2B menggunakan 4 untuk k_proj dan v_proj, 8 untuk q_proj dan o_proj, serta ukuran head (256)
Perbedaan signifikan lainnya adalah penyertaan RMSNorm tambahan dalam Gemma 2, yang meningkatkan stabilitas proses pelatihan.
Laporan teknis kami memberikan perincian secara mendalam, tetapi inilah ringkasan singkat dari temuan utama Gemma 2:
Kami melatih model 2B dan 9B dengan menyaring pengetahuan dari model yang lebih besar (27B).
Menyaring pengetahuan dari model yang lebih besar, bahkan dengan jumlah token pelatihan yang sama, akan menghasilkan peningkatan performa yang signifikan.
Mengganti MHA dengan hasil GQA menghasilkan performa yang sebanding sekaligus menawarkan efisiensi parameter dan waktu inferensi yang lebih cepat, menjadikan GQA sebagai pilihan yang disarankan.
Model yang lebih dalam menunjukkan performa yang sedikit lebih unggul dibandingkan model yang lebih lebar dengan jumlah parameter yang sama.
Dalam artikel ini, Anda sudah mempelajari tentang Gemma 2, model Gemma generasi berikutnya.
Dalam seri postingan kami berikutnya, Anda akan mempelajari RecurrentGemma yang merupakan model terbuka berbasis Griffin.
Jika Anda ingin masuk ke dalam dunia AI yang memukau dan mendapatkan insight dari para ahli yang membentuk pengembangannya, kunjungi goo.gle/ai-podcast atau telusuri acara “People of AI Podcast” di semua platform podcast.
Nantikan informasi selanjutnya dan terima kasih telah membaca!