نماذج ومنصات الذكاء الاصطناعي
دليل كامل حول Gemma 2: نموذج اللغة الكبير المفتوح الجديد من جوجل

Gemma 2 يبني على سابقه، مع أداء محسن وكفاءة، إلى جانب مجموعة من الميزات الجديدة التي تجعله جذابًا للغاية لكل من التطبيقات البحثية والتطبيقية. ما يميز Gemma 2 هو قدرته على تقديم أداء قابل للمقارنة مع النماذج الافتراضية الأكبر، ولكن في حزمة مصممة للاستخدام الأوسع والتشغيل على أجهزة أكثر تواضعًا.
عندما غطست في المواصفات الفنية وهندسة Gemma 2، وجدت نفسي متأثرًا بشكل متزايد ببراعة تصميمه. النموذج يدمج تقنيات متقدمة، بما في ذلك آليات الانتباه الجديدة ومنهجيات مبتكرة لتحقيق استقرار التدريب، مما يساهم في قدراته الرائعة.
في هذا الدليل الشامل، سنستكشف Gemma 2 بعمق، مع فحص هيكله وميزاته الرئيسية والتطبيقات العملية. سواء كنت متخصّصًا محنّكًا في مجال الذكاء الاصطناعي أو مبتدئًا متحمّسًا في هذا المجال، يهدف هذا المقال إلى تقديم رؤى قيمة حول كيفية عمل Gemma 2 وكيف يمكنك الاستفادة من قوته في مشاريعك.
ما هو Gemma 2؟
Gemma 2 هو نموذج اللغة الكبير المفتوح الجديد من جوجل، مصمم ليكون خفيفًا وقويًا. تم بناؤه على نفس البحث والتكنولوجيا المستخدمة في إنشاء نماذج Gemini من جوجل، مع تقديم أداء متقدم في حزمة أكثر سهولة في الوصول إليها. يأتي Gemma 2 في حجمين:
Gemma 2 9B: نموذج بمعاملات 9 مليارات
Gemma 2 27B: نموذج أكبر بمعاملات 27 مليار
كل حجم متاح في两个 متغيرين:
النماذج الأساسية: مدربة مسبقًا على مجموعة كبيرة من بيانات النص
النماذج المعدلة للإرشاد (IT): مدربة بدقة لتحقيق أداء أفضل على مهام محددة
الوصول إلى النماذج في جوجل ستوديو للذكاء الاصطناعي: جوجل ستوديو للذكاء الاصطناعي – Gemma 2
اقرأ الورقة هنا: تقرير تقني Gemma 2
الميزات الرئيسية والتحسينات
Gemma 2 يقدم عدة تقدمات مهمة على سابقه:
1. بيانات التدريب المزيد
تم تدريب النماذج على كميات أكبر من البيانات:
Gemma 2 27B: مدرب على 13 تريليون رمز
Gemma 2 9B: مدرب على 8 تريليون رمز
تؤدي هذه القاعدة البيانية الموسعة، التي تتكون في الغالب من بيانات الويب (معظمها باللغة الإنجليزية) والبرمجيات والرياضيات، دورًا في تحسين أداء النماذج وتنوعها.
2. انتباه النافذة الانزلاقية
Gemma 2 يطبق نهجًا جديدًا لآليات الانتباه:
كل طبقة أخرى تستخدم انتباه النافذة الانزلاقية مع سياق محلي يبلغ 4096 رمز
الطبقات البديلة تستخدم الانتباه التربيعي الكامل عبر سياق 8192 رمز كامل
يهدف هذا النهج الهجين إلى تحقيق توازن بين الكفاءة وقدرة 捕获 الاعتماد الطويل المدى في الإدخال.
3. القبّع الناعم
为了 تحسين استقرار التدريب والأداء، Gemma 2 يقدم آلية قبّع ناعم:
<p>def soft_cap(x, cap): return cap * torch.tanh(x / cap)</p> <p># تم تطبيقه على سجلات الانتباه attention_logits = soft_cap(attention_logits, cap=50.0)</p> # تم تطبيقه على سجلات الطبقة النهائية <p>final_logits = soft_cap(final_logits, cap=30.0)
تمنع هذه التقنية سجلات اللوجيت من النمو بشكل مفرط دون تقطيع صعب، مما يحافظ على المزيد من المعلومات ويستقر عملية التدريب.
- Gemma 2 9B: نموذج بمعاملات 9 مليارات
- Gemma 2 27B: نموذج أكبر بمعاملات 27 مليار
كل حجم متاح في两个 متغيرين:
- النماذج الأساسية: مدربة مسبقًا على مجموعة كبيرة من بيانات النص
- النماذج المعدلة للإرشاد (IT): مدربة بدقة لتحقيق أداء أفضل على مهام محددة
4. استخلاص المعرفة
对于 نموذج 9B، Gemma 2 يستخدم تقنيات استخلاص المعرفة:
- التدريب المسبق: نموذج 9B يتعلم من نموذج معلم أكبر خلال التدريب الأولي
- بعد التدريب: كلا النماذج 9B و27B يستخدمان استخلاص السياسة لتحسين أدائهما
يساعد هذا العملية نموذج الأصغر على 捕获 قدرات النماذج الأكبر بشكل أكثر فعالية.
5. دمج النماذج
Gemma 2 يستخدم تقنية دمج نموذجية جديدة تسمى Warp، التي تدمج نماذج متعددة في ثلاث مراحل:
- المتوسط الحسابي المتحرك (EMA) خلال تعديل دقيق للتعلم التعاوني
- الاستيفاء الخطي الكروي (SLERP) بعد تعديل دقيق للسياسات المتعددة
- الاستيفاء الخطي نحو التهيئة (LITI) كخطوة نهائية
يهدف هذا النهج إلى إنشاء نموذج نهائي أكثر متانة وقدرة.
مقاييس الأداء
Gemma 2 يظهر أداءً مثيرًا للإعجاب عبر مختلف المقاييس:
بدء استخدام Gemma 2
لبدء استخدام Gemma 2 في مشاريعك، لديك عدة خيارات:
1. جوجل ستوديو للذكاء الاصطناعي
للتجربة السريعة دون متطلبات الأجهزة، يمكنك الوصول إلى Gemma 2 من خلال جوجل ستوديو للذكاء الاصطناعي.
2. هوجينج فايس ترانسفورميرز
Gemma 2 متكامل مع مكتبة هوجينج فايس ترانسفورميرز الشهيرة. هنا كيف يمكنك استخدامه:
<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># تحميل النموذج والTokenizer model_name = "google/gemma-2-27b-it" # أو "google/gemma-2-9b-it" للنسخة الأصغر tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name)</p> <p># تحضير الإدخال prompt = "اشرح مفهوم الارتباط الكمومي ببساطة." inputs = tokenizer(prompt, return_tensors="pt")</p> <p># توليد النص outputs = model.generate(**inputs, max_length=200) response = tokenizer.decode(outputs[0], skip_special_tokens=True)</p> print(response)
3. تينسورفلو/كيراس
对于 مستخدمي تينسورفلو، Gemma 2 متاح من خلال كيراس:
<p>import tensorflow as tf from keras_nlp.models import GemmaCausalLM</p> <p># تحميل النموذج model = GemmaCausalLM.from_preset("gemma_2b_en")</p> <p># توليد النص prompt = "اشرح مفهوم الارتباط الكمومي ببساطة." output = model.generate(prompt, max_length=200)</p> print(output)
استخدام متقدم: بناء نظام RAG محلي مع Gemma 2
تطبيق قوي ل Gemma 2 هو في بناء نظام توليد معزز بالاسترجاع (RAG). دعونا ننشئ نظام RAG بسيط ومتكامل محليًا باستخدام Gemma 2 و Nomic embeddings.
الخطوة 1: إعداد البيئة
أولاً، تأكد من تثبيت المكتبات اللازمة:
<p>pip install langchain ollama nomic chromadb</p>
الخطوة 2: فهرسة الوثائق
أنشئ فهرسًا لمعالجة وثائقك:
<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># الاستخدام indexer = Indexer("path/to/your/documents") vector_store = indexer.index()</p>
الخطوة 3: إعداد نظام RAG
الآن، دعونا ننشئ نظام RAG باستخدام 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 = """استخدم السياق التالي للإجابة على السؤال في النهاية.
إذا كنت لا تعرف الإجابة، فقط قل أنك لا تعرف، لا تحاول أن تخترع إجابة.</p>
{context}
<p>السؤال: {question}
الإجابة: """</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># الاستخدام
rag_system = RAGSystem(vector_store)
response = rag_system.query("ما هي عاصمة فرنسا؟")
print(response["result"])</p>
يستخدم نظام RAG هذا Gemma 2 من خلال Ollama للنموذج اللغوي، و Nomic embeddings لاسترجاع الوثائق. يسمح لك بطرح أسئلة بناءً على الوثائق المفهرسة، مع تقديم إجابات مع سياق من المصادر ذات الصلة.
تعديل دقيق Gemma 2
للمهام أو المجالات الخاصة، قد ترغب في تعديل دقيق Gemma 2. هنا مثال أساسي باستخدام مكتبة هوجينج فايس ترانسفورميرز:
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer from datasets import load_dataset <p># تحميل النموذج والTokenizer model_name = "google/gemma-2-9b-it" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name)</p> <p># تحضير مجموعة البيانات dataset = load_dataset("your_dataset")</p> <p>def tokenize_function(examples): return tokenizer(examples["text"], padding="max_length", truncation=True)</p> <p>tokenized_datasets = dataset.map(tokenize_function, batched=True)</p> <p># إعداد معاملات التدريب 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", )</p> <p># تهيئة المدرب trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"], eval_dataset=tokenized_datasets["test"], )</p> # بدء تعديل دقيق trainer.train() <p># حفظ النموذج المعدل دقيقًا model.save_pretrained("./fine_tuned_gemma2") tokenizer.save_pretrained("./fine_tuned_gemma2")</p>
تذكر تعديل معاملات التدريب وفقًا لمتطلباتك ومواردك الحاسوبية.
الاعتبارات الأخلاقية والقيود
في حين يقدم Gemma 2 قدرات مثيرة للإعجاب، من المهم أن تكون على دراية بقيوده والاعتبارات الأخلاقية:
- الانحياز: مثل جميع نماذج اللغة، Gemma 2 قد يعكس الانحيازات الحالية في بياناته التدريبية. قم دائمًا بتقييم مخرجاته بحرص.
- الدقة الفعلية: على الرغم من قدراته العالية، Gemma 2 قد يولد أحيانًا معلومات خاطئة أو غير متسقة. تحقق من الحقائق المهمة من مصادر موثوقة.
- طول السياق: Gemma 2 لديه طول سياق يبلغ 8192 رمز. لوثائق أو محادثات أطول، قد تحتاج إلى تنفيذ استراتيجيات لإدارة السياق بشكل فعال.
- الموارد الحاسوبية: خاصة بالنسبة لنموذج 27B، قد تكون الموارد الحاسوبية الكبيرة مطلوبة لاستدلال وكفاءة تعديل دقيق.
- الاستخدام المسؤول: اتبع ممارسات جوجل للمسؤولية في الذكاء الاصطناعي و đảmن أن استخدامك ل Gemma 2 يتوافق مع مبادئ الذكاء الاصطناعي الأخلاقي.
الاستنتاج
Gemma 2 يمتلك ميزات متقدمة مثل انتباه النافذة الانزلاقية والقبّع الناعم و تقنيات دمج النماذج الجديدة، مما يجعله أداة قوية لمجموعة واسعة من مهام معالجة اللغة الطبيعية.
من خلال استخدام Gemma 2 في مشاريعك، سواء كان ذلك من خلال الاستدلال البسيط أو أنظمة RAG المعقدة أو النماذج المعدلة دقيقًا لمجالات محددة، يمكنك الاستفادة من قوة الذكاء الاصطناعي الرائد مع الحفاظ على التحكم في بياناتك وعملياتك.












