Postingan sebelumnya dalam seri “Penjelasan Gemma” memberikan ringkasan yang mendetail mengenai arsitektur keluarga model Gemma. Anda bisa menemukan link ke setiap postingan di bawah ini:
Dalam postingan ini, Anda akan menjelajahi arsitektur EmbeddingGemma yang baru dan urutan langkahnya. Untuk pengenalan tingkat tinggi, Anda bisa membaca blog pengumuman ini. Untuk melihat metodologi, eksperimen, dan evaluasi secara menyeluruh, silakan baca laporan teknis lengkapnya. Mari kita mulai.
Pernahkah Anda bertanya-tanya bagaimana cara komputer dilatih untuk menginterpretasikan makna dan konteks dalam kata, frasa, atau bahkan seluruh dokumen Anda? Keajaibannya sering kali terletak pada sesuatu yang disebut “embeddings” - representasi numerik yang menangkap esensi dan makna teks. EmbeddingGemma adalah model penyematan yang dapat mengubah teks menjadi sematan. Sematan ini dapat digunakan untuk tugas-tugas seperti penelusuran, retrieval augmented generation, dan pemahaman.
EmbeddingGemma tidak dibuat dari nol. Ia dimulai sebagai model Gemma 3 300M parameter yang telah dilatih sebelumnya. Model ini kemudian ditransformasi menggunakan metode adaptasi T5Gemma, yang mengonversi model Gemma hanya-decoder asli menjadi arsitektur encoder-decoder. Kami kemudian melakukan inisialisasi EmbeddingGemma dari encoder model baru ini, memastikan bahwa model ini mampu menghasilkan representasi yang ekspresif sejak awal. Pendekatan ini memungkinkan EmbeddingGemma mewarisi banyak “pengetahuan dunia” dari pendahulunya tanpa harus melakukan pelatihan tambahan
Anda bisa menggunakan EmbeddingGemma untuk membuat sematan menggunakan framework seperti Sentence Transformers. Saat diberikan urutan input teks, EmbeddingGemma memprosesnya melalui serangkaian langkah yang dirancang dengan cermat untuk menghasilkan representasi vektor yang ringkas.
SentenceTransformer(
(0): Transformer({'max_seq_length': 2048, 'do_lower_case': False, 'architecture': 'Gemma3TextModel'})
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
(2): Dense({'in_features': 768, 'out_features': 3072, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(3): Dense({'in_features': 3072, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(4): Normalize()
)
(0): Transformer
Urutan input melewati model transformer hanya-encoder ini. Transformer ini menggunakan perhatian dua arah untuk memahami arti setiap token dalam konteks yang disediakan, menghasilkan urutan vektor berdimensi 768, satu untuk setiap token dalam urutan input Anda.
(1): Pooling
Output transformer adalah urutan sematan token. Tugas lapisan pooling adalah mengonversi urutan panjang variabel ini menjadi satu sematan berukuran tetap untuk seluruh input. EmbeddingGemma menggunakan strategi pooling yang disebut “Mean Pooling”. Ini adalah pendekatan yang paling umum, di sini rata-rata dari semua sematan token dihitung.
(2): Dense
Berikutnya, kami menerapkan proyeksi linier untuk menskalakan sematan (768) hingga dimensi sematan yang lebih besar (3072).
(3): Dense
Kemudian kami menerapkan proyeksi linier lain untuk menskalakan sematan berdimensi 3072 yang telah dipelajari ke dimensi target akhir (768).
(4): Normalize
Terakhir, kami menerapkan normalisasi Euclidean, yang memungkinkan perbandingan kemiripan yang efisien. Ini adalah operasi yang lebih sederhana dan terjangkau dibandingkan RMSNorm yang lebih kompleks yang mungkin Anda ingat dari model Gemma lainnya.
EmbeddingGemma belajar membuat sematan kuatnya dengan mengoptimalkan kombinasi dari tiga fungsi weighted loss yang berbeda selama pelatihannya.
NCE loss mengajarkan model konsep dasar kesamaan dan kontras. Untuk setiap input (mis., kueri), ia belajar untuk:
Kuncinya adalah penyertaan “hard negatives” (jawaban yang secara semantik mirip dengan kueri tetapi salah atau tidak lengkap). Dengan melatih pada contoh yang rumit ini, model dipaksa untuk mempelajari perbedaan yang halus serta detail yang memisahkan jawaban yang benar dari yang hampir benar.
Ini seperti membangun perpustakaan yang tertata rapi, dengan barang-barang yang memiliki keterkaitan ditempatkan berdekatan satu sama lain, sementara barang-barang yang tidak terkait, dijauhkan.
Loss ini dirancang untuk mendorong EmbeddingGemma menghasilkan sematan yang tersebar di ruang sematan. Bahkan jika model belajar memisahkan hal-hal yang mirip dan tidak mirip, ia mungkin masih malas dan hanya menumpuk semua sematan di sudut kecil yang sama.
Regularizer ini menjadikan sematan kuat terhadap kuantisasi dan memungkinkan penelusuran yang efisien dalam database vektor menggunakan algoritme Approximate Nearest Neighbor (ANN).
Loss ini berfungsi sebagai bentuk distilasi pengetahuan, di sini EmbeddingGemma belajar dari model Gemini Embedding yang lebih besar dan kuat sebagai guru.
Loss meminimalkan jarak L2 (ukuran perbedaan) antara dua sematan model penyematan untuk kueri dan bagian. Ini memungkinkan EmbeddingGemma belajar dari model guru, secara efektif mewarisi sebagian besar pengetahuan dan kemampuannya.
Dengan menggabungkan ketiga fungsi loss ini, EmbeddingGemma belajar untuk menghasilkan representasi yang terstruktur dengan baik, ekspresif, dan kuat, sehingga memungkinkan performa yang kuat dalam tugas penelusuran dan pengambilan di dunia nyata.
MRL adalah teknik yang memungkinkan penggabungan representasi berkualitas tinggi yang lebih kecil di dalam representasi yang lebih besar. Sebagai contoh, meskipun sematan EmbeddingGemma berdimensi 768, Anda bisa memotong sematan tersebut dan mendapatkan sematan yang lebih kecil dengan dimensi 512, 256, atau bahkan 128 yang mempertahankan kualitas tinggi.
Selama pelatihan, fungsi loss tidak hanya diterapkan pada sematan berdimensi 768 akhir, tetapi juga pada himpunan bagian sematan yang tumpang tindih (dimensi 512, 256, dan 128 yang pertama). Ini memastikan bahwa bahkan versi terpotong dari sematan penuh adalah representasi yang kuat dan lengkap.
Untuk Anda, ini berarti Anda bisa memilih kompromi yang pas antara performa dan efisiensi untuk aplikasi Anda tanpa perlu melatih atau mengelola beberapa model. Cukup pilih ukuran sematan yang paling sesuai dengan kebutuhan Anda, mulai dari dimensi 768 penuh untuk kualitas maksimum hingga ukuran yang lebih kecil untuk meningkatkan kecepatan dan biaya penyimpanan yang lebih rendah.
Perjalanan model mencakup beberapa tahap
Dengan secara cermat mengadaptasi model dasar yang kuat dan menyempurnakannya dengan pendekatan pelatihan multifaset, arsitektur EmbeddingGemma dirancang untuk memberikan representasi teks yang sangat efektif dan serbaguna yang cocok untuk berbagai aplikasi.
Kami menjelajahi arsitektur EmbeddingGemma, sebuah model yang kuat untuk menghasilkan sematan teks. Kami mempelajari asal-usulnya, proses pembuatan sematan, dan urutan langkah pengembangannya. Untuk mempelajari metodologi pelatihan, tolok ukur evaluasi, dan seluruh hasil eksperimental secara mendalam, kami menyarankan Anda membaca laporan teknis resmi.
Model seperti EmbeddingGemma memimpin jalan untuk teknologi semantik yang lebih efisien dan kuat. Ketika model-model ini semakin mumpuni dan mudah diakses, kita bisa berharap untuk melihat kemajuan dalam beberapa area utama seperti Retrieval-Augmented Generation (RAG), AI di perangkat, dan hiper-personalisasi.
Temukan bobot model di Hugging Face, Kaggle, Vertex AI, dan mulailah berkreasi sekarang juga.
Terima kasih sudah membaca!