Open Models

كسر الحواجز: غوص عميق في نماذج جيمما المفتوحة من جوجل

شهدت مشهد نماذج اللغة الكبيرة (LLMs) تحولاً جذرياً مع صعود النماذج ذات الأوزان المفتوحة. ومن بين أحدث وأهم الدخلاء هي نماذج جيمما (Gemma)، وهي عائلة من النماذج المفتوحة خفيفة الوزن وذات الأداء المتطور التي طورتها جوجل ديب مايند. مبنية على نفس التكنولوجيا المستخدمة في نماذج جيميناي، تقدم جيمما للمطورين بديلاً قوياً وسهل الوصول إليه لبناء تطبيقات ذكاء اصطناعي مخصصة دون الأعباء الإضافية المرتبطة بواجهات برمجة التطبيقات (APIs) المغلقة المصدر.

ما هي جيمما؟

جيمما ليست مجرد نموذج لغة كبير آخر؛ بل هي عائلة من النماذج المصممة بعناية لتحقيق الكفاءة والتنوع. تتضمن العائلة حالياً نماذج أساسية ومتغيرات مُعدلة للتعليمات (instruction-tuned) بحجمين رئيسيين: 2 مليار معلمة (2B) و7 مليارات معلمة (7B)، كما تتوفر نماذج أكبر بحجم 27 مليار معلمة لمهام الاستدعاء الأكثر تعقيداً. تستفيد هذه النماذج من بنية محول كثيفة (dense Transformer architecture)، ومحسّنة لكل من حالات الاستخدام أحادية الدوران ومتعددة الدوران في المحادثات.

تكمن الميزة الأساسية لجيمما في توازنها. فهي صغيرة بما يكفي للعمل محلياً على أجهزة المستهلك مع التحسينات المناسبة، لكنها قوية بما يكفي للتعامل مع مهام دقيقة مثل توليد الأكواد، والاستدعاء الرياضي، وفهم اللغة الطبيعية. هذا يجعلها مرشحاً مثالياً للنشر على الحافة (edge deployment)، والبيئات الحساسة للخصوصية، والتوسع الفعال من حيث التكلفة.

لماذا تختار جيمما لمكدسك التقني؟

بالنسبة للمطورين من المستوى المتوسط إلى المتقدم، يتطلب اختيار النموذج المناسب الموازنة بين زمن الاستجابة (latency)، والتكلفة، والقدرات. تتفوق جيمما في عدة مجالات رئيسية:

  • الكفاءة: تسمح الأعداد الأصغر من المعلمات بأوقات استدعاء (inference) أسرع وبصمة ذاكرة أقل.
  • الأوزان المفتوحة: على عكس العديد من النماذج الخاصة، فإن أوزان جيمما متاحة بشكل مفتوح، مما يتيح ضبطها الدقيق (fine-tuning) وتعديلها.
  • بيانات عالية الجودة: تم تدريب جيمما على مجموعة بيانات مُنتقاة بعناية، مما يظهر أداءً قوياً في الاختبارات المعيارية مقارنة بحجمها.
  • دعم النظام البيئي: دعم أصلي في مكتبات Hugging Face Transformers وJAX، مما يضمن توافقاً واسعاً.

مثال على التنفيذ: تحميل وتشغيل جيمما

يعد البدء باستخدام جيمما أمراً بسيطاً بفضل مكتبة Hugging Face `transformers`. فيما يلي مثال عملي لكيفية تحميل نموذج مُعدّل للتعليمات بحجم 7 مليار معلمة وتوليد رد. لاحظ أنه للاستدعاء المحلي، قد تحتاج إلى استخدام الضغط (quantization) بـ 4 بت أو 8 بت لتناسب النموذج في ذاكرة الوصول العشوائي (RAM).

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

# تحديد معرف النموذج للنسخة المعدلة للتعليمات بحجم 7 مليارات معلمة
model_id = "google/gemma-7b-it"

# تحميل المعجم (tokenizer) والنموذج
# استخدام torch.bfloat16 للكفاءة على وحدات معالجة الرسومات الحديثة
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

# إعداد الموجه (prompt)
prompt = "اشرح مفهوم التشابك الكمي بمصطلحات بسيطة."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

# توليد المخرجات
outputs = model.generate(**inputs, max_new_tokens=100)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(response)

يوضح هذا الجزء من الكود الحد الأدنى من التعليمات البرمجية المطلوبة للتفاعل مع النموذج. بالنسبة لبيئات الإنتاج، ضع في اعتبارك استخدام محركات استدعاء محسّنة مثل vLLM أو TensorRT-LLM لتعظيم الإنتاجية وتقليل زمن الاستجابة أكثر.

الضغط والتحسين

يعد أحد الجوانب الأكثر أهمية لنشر جيمما محلياً هو إدارة استخدام الذاكرة. يتطلب نموذج 7 مليارات معلمة، رغم أنه قابل للإدارة، حوالي 14 جيجابايت من ذاكرة الفيديو (VRAM) بدقة FP16. من خلال استخدام تقنيات الضغط، مثل ضغط 4 بت NormalFloat (NF4) عبر مكتبة BitsAndBytes، يمكنك تقليل هذا المتطلب إلى حوالي 5-6 جيجابايت، مما يجعل تشغيله ممكناً على أجهزة الكمبيوتر المحمولة أو مثيلات السحابة الأصغر.

from transformers import BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.float16
)

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=quantization_config,
    device_map="auto"
)

الخاتمة

تمثل نماذج جيمما من جوجل خطوة كبيرة إلى الأمام في ديمقراطية الوصول إلى تقنيات الذكاء الاصطناعي عالية الجودة. سواء كنت تبني روبوت محادثة، أو مساعداً للبرمجة، أو أداة لتحليل البيانات، توفر جيمما أساساً قوياً ومفتوح المصدر. إن توافقها مع الأنظمة البيئية الحالية وإمكانية نشرها محلياً يجعلها خياراً جذاباً للمطورين الذين يتطلعون إلى الحفاظ على السيطرة على بنية الذكاء الاصطناعي الخاصة بهم مع الاستفادة من الأداء المتطور.

مع نضوج النظام البيئي، يمكننا توقع المزيد من المتغيرات المُعدلة بدقة وأدوات متخصصة لجيمما، مما يعزز مكانتها بشكل أكبر في مشهد الذكاء الاصطناعي مفتوح المصدر. بالنسبة للمطورين المستعدين للتجربة، لم يكن حاجز الدخول أقل من أي وقت مضى.

Share: