Berbagi teknologi

Gemma2 - Panduan aplikasi lengkap untuk model bahasa skala besar open source baru Google

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

0 Kata Pengantar

Permata 2 Dibangun dari pendahulunya, ia menawarkan peningkatan kinerja dan efisiensi, serta serangkaian fitur inovatif, menjadikannya sangat menarik baik untuk penelitian maupun aplikasi praktis. Apa yang membedakan Gemma 2 adalah ia memberikan kinerja yang sebanding dengan model berpemilik yang lebih besar, namun denganpaket perangkat lunakDirancang untuk aksesibilitas yang lebih luas dan digunakan pada pengaturan perangkat keras yang lebih sederhana.

Saat saya mendalami spesifikasi teknis dan arsitektur Gemma 2, saya semakin terkesan dengan kecanggihan desainnya.Model ini menggabungkan berbagai teknologi canggih, termasuk yang barumekanisme perhatiandan metode stabilitas pelatihan yang inovatif, yang semuanya berkontribusi terhadap kinerjanya yang luar biasa.

Dalam panduan komprehensif ini, Gemma 2 akan dieksplorasi secara mendalam, melihat arsitekturnya, fitur-fitur utama, dan aplikasi praktisnya. Baik Anda seorang praktisi AI berpengalaman atau pemula yang antusias di bidangnya, artikel ini bertujuan untuk memberikan wawasan berharga tentang cara kerja Gemma 2 dan bagaimana Anda dapat memanfaatkan kemampuannya dalam proyek Anda sendiri.

1. Apa itu Gemma 2?

Gemma 2 merupakan open source terbaru Google berskala besarmodel bahasa , dirancang dengan indah namun kuat. Ini dibuat berdasarkan penelitian dan teknologi yang sama dengan yang digunakan untuk membuat model Google Gemini, memberikan kinerja tercanggih dalam paket yang lebih mudah diakses. Gemma 2 hadir dalam dua ukuran:

Permata 2 9B: Model parameter 9 miliar
Permata 2 27B: Model parameter 27 miliar yang lebih besar

Setiap ukuran hadir dalam dua gaya:

model dasar: Pra-pelatihan tentang data teks dalam jumlah besar
Model Penyetelan Instruksi (IT).: Diselaraskan untuk kinerja yang lebih baik pada tugas tertentu

Akses model di Google AI StudioStudio AI Google – Gemma 2
Baca makalahnya di sini: Laporan Teknis Gemma 2

2.Fitur utama dan peningkatan

Gemma 2 memperkenalkan beberapa peningkatan signifikan dibandingkan pendahulunya:

2.1. Tambahkan data pelatihan

Model berikut telah dilatih pada lebih banyak data:

Permata 2 27B: Setelah pelatihan dengan 13 triliun token
Permata 2 9B: Setelah pelatihan dengan 8 triliun token

Kumpulan data yang diperluas ini terutama terdiri dari data jaringan (kebanyakan dalam bahasa Inggris), kode, dan matematika, yang membantu meningkatkan performa dan fleksibilitas model Anda.

2.2. Perhatian jendela geser

Gemma 2 menerapkan metode mekanisme perhatian baru:

Setiap lapisan lainnya menggunakan mekanisme perhatian jendela geser, dan konteks lokalnya adalah 4096 token.
Lapisan bergantian mengadopsi mekanisme perhatian global kuadrat penuh untuk seluruh konteks token 8192.

Pendekatan hibrid ini bertujuan untuk menyeimbangkan efisiensi dengan kemampuan menangkap ketergantungan input jangka panjang.

2.3.Tutup lembut

Untuk meningkatkan stabilitas dan kinerja pelatihan, Gemma 2 memperkenalkan mekanisme batas atas lunak:

def soft_cap(x, cap):
    return cap * torch.tanh(x / cap)
# Applied to attention logits
attention_logits = soft_cap(attention_logits, cap=50.0)
# Applied to final layer logits
final_logits = soft_cap(final_logits, cap=30.0)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Teknik ini mencegah logit menjadi terlalu besar tanpa pemotongan yang keras, sehingga menyimpan lebih banyak informasi sekaligus menstabilkan proses pelatihan.

  1. Permata 2 9B: 9 miliar model parameter
  2. Permata 2 27B: Model parameter 27 miliar lebih besar

Setiap ukuran hadir dalam dua gaya:

  • Model dasar: dilatih sebelumnya pada data teks dalam jumlah besar
  • Model Penyetelan Instruksi (TI): disesuaikan untuk kinerja yang lebih baik pada tugas tertentu

2.4. Penyulingan pengetahuan

Untuk model 9B, Gemma 2 menggunakan teknologi ekstraksi pengetahuan:

  • Pra-pelatihan: Model 9B belajar dari model guru yang lebih besar selama pelatihan awal
  • Setelah pelatihan: Model 9B dan 27B menggunakan penyulingan kebijakan online untuk meningkatkan kinerjanya

Proses ini membantu model yang lebih kecil menangkap fungsionalitas model yang lebih besar secara lebih efektif.

2.5. Penggabungan model

Gemma 2 menggunakan teknologi penggabungan model baru yang disebut Warp, yang menggabungkan beberapa model dalam tiga tahap:

  1. Rata-rata Pergerakan Eksponensial (EMA) selama penyesuaian pembelajaran penguatan
  2. Interpolasi linier bola (SLERP) setelah penyesuaian dengan berbagai strategi
  3. Inisialisasi interpolasi linier (LITI) sebagai langkah terakhir

Pendekatan ini bertujuan untuk menciptakan model akhir yang lebih kokoh dan tangguh.

3. Tolok Ukur Kinerja

Gemma 2 menunjukkan kinerja mengesankan di berbagai tolok ukur:

Gemma 2 menampilkan arsitektur yang didesain ulang untuk kinerja superior dan efisiensi inferensi

6. Memulai Gemma 2

Untuk mulai menggunakan Gemma 2 dalam proyek Anda, Anda memiliki opsi berikut:

6.1

Gemma 2 dapat diakses melalui Google AI Studio,Studio Kecerdasan Buatan Google.

6.2. Wajah Pelukan

Gemma 2 dan Memeluk Wajah Integrasi perpustakaan Transformers. Berikut cara menggunakannya:

<div class="relative flex flex-col rounded-lg">
<div class="text-text-300 absolute pl-3 pt-2.5 text-xs">
from transformers import AutoTokenizer, AutoModelForCausalLM
# Load the model and tokenizer
model_name = "google/gemma-2-27b-it" # or "google/gemma-2-9b-it" for the smaller version
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Prepare input
prompt = "Explain the concept of quantum entanglement in simple terms."
inputs = tokenizer(prompt, return_tensors="pt")
# Generate text
outputs = model.generate(**inputs, max_length=200)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

6.3.TensorFlow/Keras

Untuk pengguna TensorFlow, Gemma 2 tersedia melalui Keras:

import tensorflow as tf
from keras_nlp.models import GemmaCausalLM
# Load the model
model = GemmaCausalLM.from_preset("gemma_2b_en")
# Generate text
prompt = "Explain the concept of quantum entanglement in simple terms."
output = model.generate(prompt, max_length=200)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

7. Penggunaan tingkat lanjut: Gunakan Gemma 2 untuk membangun sistem RAG lokal

Penerapan Gemma 2 yang hebat adalah membangun sistem retrieval-augmented generation (RAG). Mari kita buat sistem RAG asli yang sederhana menggunakan embeddings Gemma 2 dan Nomic.

Langkah 1: Siapkan lingkungan

Pertama, pastikan Anda telah menginstal perpustakaan yang diperlukan:

pip install langchain ollama nomic chromadb
  • 1

Langkah 2: Indeks dokumen

Buat pengindeks untuk memproses dokumen:

import os
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import DirectoryLoader
from langchain.vectorstores import Chroma
from langchain.embeddings import HuggingFaceEmbeddings
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")
  
def load_and_split_documents(self):
    loader = DirectoryLoader(self.directory_path, glob="**/*.txt")
    documents = loader.load()
    return self.text_splitter.split_documents(documents)
def create_vector_store(self, documents):
    return Chroma.from_documents(documents, self.embeddings, persist_directory="./chroma_db")
def index(self):
    documents = self.load_and_split_documents()
    vector_store = self.create_vector_store(documents)
    vector_store.persist()
    return vector_store
# Usage
indexer = Indexer("path/to/your/documents")
vector_store = indexer.index()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

Langkah 3: Siapkan sistem RAG

Sekarang, buat sistem RAG menggunakan Gemma 2:

from langchain.llms import Ollama
from langchain.chains import RetrievalQA
from langchain.prompts import PromptTemplate
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})
self.template = """Use the following pieces of context to answer the question at the end.
If you don't know the answer, just say that you don't know, don't try to make up an answer.
{context}
Question: {question}
Answer: """
self.qa_prompt = PromptTemplate(
template=self.template, input_variables=["context", "question"]
)
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}
)
def query(self, question):
return self.qa_chain({"query": question})
# Usage
rag_system = RAGSystem(vector_store)
response = rag_system.query("What is the capital of France?")
print(response["result"])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

Sistem RAG ini menggunakan Gemma 2 hingga Ollama sebagai model bahasa dan penyematan Nomic untuk pengambilan dokumen. Ini memungkinkan Anda mengajukan pertanyaan berdasarkan dokumen yang diindeks dan memberikan jawaban kontekstual dari sumber yang relevan.

Menyempurnakan Gemma 2

Untuk tugas atau domain tertentu, Anda mungkin perlu menyempurnakan Gemma 2. Berikut adalah contoh dasar penggunaan perpustakaan Hugging Face Transformers:

from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer
from datasets import load_dataset
# Load model and tokenizer
model_name = "google/gemma-2-9b-it"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Prepare dataset
dataset = load_dataset("your_dataset")
def tokenize_function(examples):
return tokenizer(examples["text"], padding="max_length", truncation=True)
tokenized_datasets = dataset.map(tokenize_function, batched=True)
# Set up training arguments
training_args = TrainingArguments(
output_dir="./results",
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="./logs",
)
# Initialize Trainer
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["test"],
)
# Start fine-tuning
trainer.train()
# Save the fine-tuned model
model.save_pretrained("./fine_tuned_gemma2")
tokenizer.save_pretrained("./fine_tuned_gemma2")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

Sesuaikan parameter pelatihan berdasarkan kebutuhan spesifik dan sumber daya komputasi.

Pertimbangan dan Keterbatasan Etis

Meskipun Gemma 2 menawarkan fungsionalitas yang mengesankan, kita harus menyadari keterbatasan dan pertimbangan etisnya:

  • bias : Seperti semua model bahasa, Gemma 2 mungkin mencerminkan bias yang ada dalam data pelatihannya. Selalu evaluasi keluarannya secara kritis.
  • keakuratan faktual : Meskipun Gemma 2 sangat kuat, terkadang ia menghasilkan informasi yang salah atau tidak konsisten. Harap verifikasi fakta penting dari sumber terpercaya.
  • panjang konteks : Panjang konteks Gemma 2 adalah 8192 token. Untuk dokumen atau percakapan yang lebih panjang, Anda mungkin perlu menerapkan strategi untuk mengelola konteks secara efektif.
  • Menghitung sumber daya: Khusus untuk model 27B, sumber daya komputasi yang signifikan mungkin diperlukan untuk inferensi dan penyesuaian yang efektif.
  • Penggunaan yang bertanggung jawab: Patuhi praktik AI Bertanggung Jawab Google dan pastikan penggunaan Gemma 2 Anda selaras dengan prinsip AI yang etis.

8.Kesimpulan

Fitur-fitur canggih Gemma 2, seperti perhatian jendela geser, batas atas yang lembut, dan teknik penggabungan model baru, menjadikannya alat yang ampuh untuk berbagai tugas pemrosesan bahasa alami.

Dengan memanfaatkan Gemma 2 dalam proyek Anda, baik melalui inferensi sederhana, sistem RAG yang kompleks, atau model khusus domain yang disesuaikan, Anda dapat memanfaatkan kekuatan SOTA AI sambil mempertahankan kendali atas data dan proses Anda.

Alamat asli:https://www.unite.ai/panduan-lengkap-tentang-gemma-2-model-bahasa-besar-baru-google-yang-terbuka/