Model dan platform AI
Panduan Lengkap tentang Gemma 2: Model Bahasa Besar Terbuka Baru dari Google

Gemma 2 membangun atas pendahulunya, menawarkan kinerja dan efisiensi yang ditingkatkan, serta sejumlah fitur inovatif yang membuatnya sangat menarik untuk aplikasi penelitian dan praktis. Yang membedakan Gemma 2 adalah kemampuannya untuk menghasilkan kinerja yang setara dengan model propietary yang jauh lebih besar, tetapi dalam paket yang dirancang untuk aksesibilitas yang lebih luas dan penggunaan pada perangkat keras yang lebih sederhana.
Ketika saya menyelami spesifikasi teknis dan arsitektur Gemma 2, saya semakin terkesan oleh kecerdasan desainnya. Model ini mengintegrasikan beberapa teknik canggih, termasuk mekanisme perhatian novel dan pendekatan inovatif untuk stabilitas pelatihan, yang menyumbang pada kemampuan luar biasanya.
Dalam panduan komprehensif ini, kita akan menjelajahi Gemma 2 secara mendalam, memeriksa arsitektur, fitur kunci, dan aplikasi praktisnya. Baik Anda seorang praktisi AI berpengalaman atau seorang pemula yang antusias di bidang ini, artikel ini bertujuan untuk memberikan wawasan berharga tentang bagaimana Gemma 2 bekerja dan bagaimana Anda dapat memanfaatkan kekuatannya dalam proyek Anda sendiri.
Apa itu Gemma 2?
Gemma 2 adalah model bahasa besar terbuka baru dari Google, dirancang untuk ringan namun kuat. Ini dibangun atas penelitian dan teknologi yang sama yang digunakan untuk menciptakan model Gemini dari Google, menawarkan kinerja state-of-the-art dalam paket yang lebih mudah diakses. Gemma 2 tersedia dalam dua ukuran:
Gemma 2 9B: Model dengan 9 miliar parameter
Gemma 2 27B: Model yang lebih besar dengan 27 miliar parameter
Setiap ukuran tersedia dalam dua varian:
Model dasar: Dilatih sebelumnya pada korpus teks data yang luas
Model yang disesuaikan dengan instruksi (IT): Difine-tuned untuk kinerja yang lebih baik pada tugas tertentu
Akses model di Google AI Studio: Google AI Studio – Gemma 2
Baca laporan teknis di sini: Laporan Teknis Gemma 2
Fitur Kunci dan Peningkatan
Gemma 2 memperkenalkan beberapa kemajuan signifikan atas pendahulunya:
1. Data Pelatihan yang Ditingkatkan
Model telah dilatih pada data yang jauh lebih banyak:
Gemma 2 27B: Dilatih pada 13 triliun token
Gemma 2 9B: Dilatih pada 8 triliun token
Dataset yang diperluas ini, terutama terdiri dari data web (sebagian besar bahasa Inggris), kode, dan matematika, menyumbang pada kinerja dan keluwesan model yang lebih baik.
2. Perhatian Jendela Geser
Gemma 2 menerapkan pendekatan baru untuk mekanisme perhatian:
Setiap lapisan lain menggunakan perhatian jendela geser dengan konteks lokal 4096 token
Lapisan bergantian menggunakan perhatian kuadrat penuh global di seluruh konteks 8192 token
Pendekatan hibrida ini bertujuan untuk menyeimbangkan efisiensi dengan kemampuan untuk menangkap ketergantungan jangka panjang dalam input.
3. Pembatasan Lunak
Untuk meningkatkan stabilitas pelatihan dan kinerja, Gemma 2 memperkenalkan mekanisme pembatasan lunak:
<p>def soft_cap(x, cap): return cap * torch.tanh(x / cap)</p> <p># Diterapkan pada logit perhatian attention_logits = soft_cap(attention_logits, cap=50.0)</p> # Diterapkan pada logit lapisan terakhir <p>final_logits = soft_cap(final_logits, cap=30.0)
Teknik ini mencegah logit tumbuh terlalu besar tanpa pemotongan keras, mempertahankan lebih banyak informasi sambil menstabilkan proses pelatihan.
- Gemma 2 9B: Model dengan 9 miliar parameter
- Gemma 2 27B: Model yang lebih besar dengan 27 miliar parameter
Setiap ukuran tersedia dalam dua varian:
- Model dasar: Dilatih sebelumnya pada korpus teks data yang luas
- Model yang disesuaikan dengan instruksi (IT): Difine-tuned untuk kinerja yang lebih baik pada tugas tertentu
4. Pengetahuan Distilasi
Untuk model 9B, Gemma 2 menggunakan teknik pengetahuan distilasi:
- Pelatihan sebelumnya: Model 9B belajar dari model guru yang lebih besar selama pelatihan awal
- Pasca-pelatihan: Kedua model 9B dan 27B menggunakan distilasi kebijakan untuk memperbaiki kinerja
Proses ini membantu model yang lebih kecil menangkap kemampuan model yang lebih besar dengan lebih efektif.
5. Penggabungan Model
Gemma 2 menggunakan teknik penggabungan model baru yang disebut Warp, yang menggabungkan beberapa model dalam tiga tahap:
- Rata-rata Bergerak Eksponensial (EMA) selama fine-tuning pembelajaran penguatan
- Interpolasi Linier Sferis (SLERP) setelah fine-tuning kebijakan multiple
- Interpolasi Linier Menuju Inisialisasi (LITI) sebagai langkah terakhir
Pendekatan ini bertujuan untuk menciptakan model akhir yang lebih kuat dan mampu.
Benchmarks Kinerja
Gemma 2 menunjukkan kinerja yang mengesankan di berbagai benchmark:
Memulai dengan Gemma 2
Untuk memulai menggunakan Gemma 2 dalam proyek Anda, Anda memiliki beberapa pilihan:
1. Google AI Studio
Untuk eksperimen cepat tanpa persyaratan perangkat keras, Anda dapat mengakses Gemma 2 melalui Google AI Studio.
2. Hugging Transformers
Gemma 2 terintegrasi dengan library Hugging Face Transformers yang populer. Berikut cara Anda dapat menggunakannya:
<div class="relative flex flex-col rounded-lg"> <div class="text-text-300 absolute pl-3 pt-2.5 text-xs"> <p>from transformers import AutoTokenizer, AutoModelForCausalLM</p> <p># Muat model dan tokenizer model_name = "google/gemma-2-27b-it" # atau "google/gemma-2-9b-it" untuk versi yang lebih kecil tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name)</p> <p># Siapkan input prompt = "Jelaskan konsep keterkaitan kuantum dalam istilah sederhana." inputs = tokenizer(prompt, return_tensors="pt")</p> <p># Generasi teks outputs = model.generate(**inputs, max_length=200) response = tokenizer.decode(outputs[0], skip_special_tokens=True)</p> print(response)
3. TensorFlow/Keras
Untuk pengguna TensorFlow, Gemma 2 tersedia melalui Keras:
<p>import tensorflow as tf from keras_nlp.models import GemmaCausalLM</p> <p># Muat model model = GemmaCausalLM.from_preset("gemma_2b_en")</p> <p># Generasi teks prompt = "Jelaskan konsep keterkaitan kuantum dalam istilah sederhana." output = model.generate(prompt, max_length=200)</p> print(output)
Penggunaan Lanjutan: Membangun Sistem RAG Lokal dengan Gemma 2
Salah satu aplikasi kuat dari Gemma 2 adalah dalam membangun Sistem Generasi yang Diperkuat Pencarian (RAG). Mari kita buat sistem RAG lokal sederhana menggunakan Gemma 2 dan penyematan Nomic.
Langkah 1: Mengatur Lingkungan
Pertama, pastikan Anda memiliki perpustakaan yang diperlukan terinstal:
<p>pip install langchain ollama nomic chromadb</p>
Langkah 2: Mengindeks Dokumen
Buat pengindeks untuk memproses dokumen Anda:
<p>import os from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.document_loaders import DirectoryLoader from langchain.vectorstores import Chroma from langchain.embeddings import HuggingFaceEmbeddings</p> <p>class Indexer: def __init__(self, directory_path): self.directory_path = directory_path self.text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200) self.embeddings = HuggingFaceEmbeddings(model_name="nomic-ai/nomic-embed-text-v1")</p> <p>def load_and_split_documents(self): loader = DirectoryLoader(self.directory_path, glob="**/*.txt") documents = loader.load() return self.text_splitter.split_documents(documents)</p> <p>def create_vector_store(self, documents): return Chroma.from_documents(documents, self.embeddings, persist_directory="./chroma_db")</p> <p>def index(self): documents = self.load_and_split_documents() vector_store = self.create_vector_store(documents) vector_store.persist() return vector_store</p> <p># Penggunaan indexer = Indexer("path/to/your/documents") vector_store = indexer.index()</p>
Langkah 3: Mengatur Sistem RAG
Sekarang, mari kita buat sistem RAG menggunakan Gemma 2:
<p>from langchain.llms import Ollama
from langchain.chains import RetrievalQA
from langchain.prompts import PromptTemplate</p>
<p>class RAGSystem:
def __init__(self, vector_store):
self.vector_store = vector_store
self.llm = Ollama(model="gemma2:9b")
self.retriever = self.vector_store.as_retriever(search_kwargs={"k": 3})</p>
<p>self.template = """Gunakan konteks berikut untuk menjawab pertanyaan di akhir.
Jika Anda tidak tahu jawabannya, cukup katakan bahwa Anda tidak tahu, jangan mencoba membuat jawaban.</p>
{context}
<p>Pertanyaan: {question}
Jawaban: """</p>
<p>self.qa_prompt = PromptTemplate(
template=self.template, input_variables=["context", "question"]
)</p>
<p>self.qa_chain = RetrievalQA.from_chain_type(
llm=self.llm,
chain_type="stuff",
retriever=self.retriever,
return_source_documents=True,
chain_type_kwargs={"prompt": self.qa_prompt}
)</p>
<p>def query(self, question):
return self.qa_chain({"query": question})</p>
<p># Penggunaan
rag_system = RAGSystem(vector_store)
response = rag_system.query("Apa ibukota Perancis?")
print(response["result"])</p>
Sistem RAG ini menggunakan Gemma 2 melalui Ollama untuk model bahasa dan penyematan Nomic untuk pengambilan dokumen. Ini memungkinkan Anda untuk mengajukan pertanyaan berdasarkan dokumen yang diindeks, memberikan jawaban dengan konteks dari sumber yang relevan.
Penyetelan Halus Gemma 2
Untuk tugas atau domain tertentu, Anda mungkin ingin menyetel halus Gemma 2. Berikut contoh dasar menggunakan library Hugging Face Transformers:
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer from datasets import load_dataset <p># Muat model dan tokenizer model_name = "google/gemma-2-9b-it" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name)</p> <p># Siapkan dataset dataset = load_dataset("dataset_anda")</p> <p>def tokenize_function(examples): return tokenizer(examples["teks"], padding="max_length", truncation=True)</p> <p>tokenized_datasets = dataset.map(tokenize_function, batched=True)</p> <p># Tetapkan argumen pelatihan training_args = TrainingArguments( output_dir="./hasil", num_train_epochs=3, per_device_train_batch_size=4, per_device_eval_batch_size=4, warmup_steps=500, weight_decay=0.01, logging_dir="./log", )</p> <p># Inisialisasi Trainer trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"], eval_dataset=tokenized_datasets["test"], )</p> # Mulai penyetelan halus trainer.train() <p># Simpan model yang disetel halus model.save_pretrained("./gemma2_disetel_halus") tokenizer.save_pretrained("./gemma2_disetel_halus")</p>
Ingat untuk menyesuaikan parameter pelatihan berdasarkan kebutuhan dan sumber daya komputasi Anda.
Pertimbangan Etis dan Keterbatasan
Sementara Gemma 2 menawarkan kemampuan yang mengesankan, penting untuk menyadari keterbatasannya dan pertimbangan etisnya:
- Bias: Seperti semua model bahasa, Gemma 2 mungkin mencerminkan bias yang ada dalam data pelatihannya. Selalu evaluasi outputnya secara kritis.
- Akurasi Faktual: Meskipun sangat mampu, Gemma 2 terkadang dapat menghasilkan informasi yang salah atau tidak konsisten. Verifikasi fakta penting dari sumber yang dapat dipercaya.
- Panjang Konteks: Gemma 2 memiliki panjang konteks 8192 token. Untuk dokumen atau percakapan yang lebih panjang, Anda mungkin perlu menerapkan strategi untuk mengelola konteks secara efektif.
- Sumber Daya Komputasi: Terutama untuk model 27B, sumber daya komputasi yang signifikan mungkin diperlukan untuk inferensi dan penyetelan halus yang efisien.
- Penggunaan yang Bertanggung Jawab: Patuhi praktik AI yang Bertanggung Jawab dari Google dan pastikan penggunaan Gemma 2 Anda selaras dengan prinsip etika AI.
Kesimpulan
Gemma 2 dengan fitur canggih seperti perhatian jendela geser, pembatasan lunak, dan teknik penggabungan model baru membuatnya menjadi alat yang kuat untuk berbagai tugas pemrosesan bahasa alami.
Dengan memanfaatkan Gemma 2 dalam proyek Anda, baik melalui inferensi sederhana, sistem RAG yang kompleks, atau model yang disetel halus untuk domain tertentu, Anda dapat memanfaatkan kekuatan AI SOTA sambil mempertahankan kontrol atas data dan proses Anda.












