Model dan platform AI

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

mm
Tambahkan Unite.AI ke sumber pilihan Anda di 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.

Google Open Source LLM Gemma

Google [securities_stock_price_tag symbol="GOOGL" exchange="NASDAQ"] Open Source LLM Gemma

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.

  1. Gemma 2 9B: Model dengan 9 miliar parameter
  2. 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:

  1. Rata-rata Bergerak Eksponensial (EMA) selama fine-tuning pembelajaran penguatan
  2. Interpolasi Linier Sferis (SLERP) setelah fine-tuning kebijakan multiple
  3. 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:

Gemma 2 pada arsitektur yang dirancang ulang, dirancang untuk kinerja dan efisiensi inferensi yang luar biasa

Gemma 2 pada arsitektur yang dirancang ulang, dirancang untuk kinerja dan efisiensi inferensi yang luar biasa

 

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:

&lt;div class=&quot;relative flex flex-col rounded-lg&quot;&gt;
&lt;div class=&quot;text-text-300 absolute pl-3 pt-2.5 text-xs&quot;&gt;

<p>from transformers import AutoTokenizer, AutoModelForCausalLM</p>

<p># Muat model dan tokenizer
model_name = &quot;google/gemma-2-27b-it&quot; # atau &quot;google/gemma-2-9b-it&quot; untuk versi yang lebih kecil
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)</p>

<p># Siapkan input
prompt = &quot;Jelaskan konsep keterkaitan kuantum dalam istilah sederhana.&quot;
inputs = tokenizer(prompt, return_tensors=&quot;pt&quot;)</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(&quot;gemma_2b_en&quot;)</p>

<p># Generasi teks
prompt = &quot;Jelaskan konsep keterkaitan kuantum dalam istilah sederhana.&quot;
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=&quot;nomic-ai/nomic-embed-text-v1&quot;)</p>

<p>def load_and_split_documents(self):
loader = DirectoryLoader(self.directory_path, glob=&quot;**/*.txt&quot;)
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=&quot;./chroma_db&quot;)</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(&quot;path/to/your/documents&quot;)
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=&quot;gemma2:9b&quot;)
self.retriever = self.vector_store.as_retriever(search_kwargs={&quot;k&quot;: 3})</p>

<p>self.template = &quot;&quot;&quot;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: &quot;&quot;&quot;</p>

<p>self.qa_prompt = PromptTemplate(
template=self.template, input_variables=[&quot;context&quot;, &quot;question&quot;]
)</p>

<p>self.qa_chain = RetrievalQA.from_chain_type(
llm=self.llm,
chain_type=&quot;stuff&quot;,
retriever=self.retriever,
return_source_documents=True,
chain_type_kwargs={&quot;prompt&quot;: self.qa_prompt}
)</p>

<p>def query(self, question):
return self.qa_chain({&quot;query&quot;: question})</p>

<p># Penggunaan
rag_system = RAGSystem(vector_store)
response = rag_system.query(&quot;Apa ibukota Perancis?&quot;)
print(response[&quot;result&quot;])</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 = &quot;google/gemma-2-9b-it&quot;
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)</p>

<p># Siapkan dataset
dataset = load_dataset(&quot;dataset_anda&quot;)</p>

<p>def tokenize_function(examples):
return tokenizer(examples[&quot;teks&quot;], padding=&quot;max_length&quot;, truncation=True)</p>

<p>tokenized_datasets = dataset.map(tokenize_function, batched=True)</p>

<p># Tetapkan argumen pelatihan
training_args = TrainingArguments(
output_dir=&quot;./hasil&quot;,
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=&quot;./log&quot;,
)</p>

<p># Inisialisasi Trainer
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets[&quot;train&quot;],
eval_dataset=tokenized_datasets[&quot;test&quot;],
)</p>

# Mulai penyetelan halus
trainer.train()

<p># Simpan model yang disetel halus
model.save_pretrained(&quot;./gemma2_disetel_halus&quot;)
tokenizer.save_pretrained(&quot;./gemma2_disetel_halus&quot;)</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.

Saya telah menghabiskan lima tahun terakhir dengan membenamkan diri dalam dunia Machine Learning dan Deep Learning yang menarik. Minat dan keahlian saya telah memimpin saya untuk berkontribusi pada lebih dari 50 proyek rekayasa perangkat lunak yang beragam, dengan fokus khusus pada AI/ML. Rasa ingin tahu saya yang terus-menerus juga telah menarik saya ke arah Natural Language Processing, sebuah bidang yang saya ingin jelajahi lebih lanjut.