العلامة التقنية

موقع تقني عربي متخصص في أخبار التكنولوجيا والذكاء الاصطناعي

كيفية بناء خط أنابيب ذكاء اصطناعي Gemma 3 1B باستخدام Hugging Face

بقلم: فريق تحرير العلامة التقنية التصنيف: الذكاء الاصطناعي
كيفية بناء خط أنابيب ذكاء اصطناعي Gemma 3 1B باستخدام Hugging Face

تعلم كيفية بناء خط أنابيب ذكاء اصطناعي باستخدام Gemma 3 1B وHugging Face في Google Colab خطوة بخطوة.

في هذا الدليل، سنتناول كيفية بناء وتشغيل سير عمل في Google Colab لنموذج Gemma 3 1B Instruct باستخدام مكتبة Hugging Face Transformers وأداة HF Token. سنقوم بذلك بطريقة عملية وقابلة للتكرار وسهلة المتابعة خطوة بخطوة.

تثبيت المكتبات المطلوبة

نبدأ بتثبيت المكتبات اللازمة، والتأكد من أننا نملك جميع الاعتمادات الأساسية، ثم نصادق بأمان باستخدام Hugging Face Token. إليك كيفية القيام بذلك:

import os
import sys
import subprocess

# وظيفة لتثبيت المكتبات
def pip_install(*pkgs):
    subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", *pkgs])

pip_install( "transformers>=4.51.0", "accelerate", "sentencepiece", "safetensors", "pandas", )

بعد التثبيت، ننتقل إلى خطوة المصادقة.

المصادقة مع Hugging Face

نقوم بتسجيل الدخول باستخدام توكن Hugging Face الخاص بنا، مما يتيح لنا تحميل النموذج بشكل آمن:

from huggingface_hub import login

hf_token = getpass.getpass("Enter your Hugging Face token: ").strip()
login(token=hf_token)

بعد نجاح تسجيل الدخول، نستعد لتحميل النموذج.

إعداد الجهاز وتحميل النموذج

نحدد الجهاز (CPU أو GPU) الذي سنستخدمه، ونختار الدقة المناسبة:

device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.bfloat16 if torch.cuda.is_available() else torch.float32
model_id = "google/gemma-3-1b-it"

ثم نقوم بتحميل tokenizer والنموذج:

tokenizer = AutoTokenizer.from_pretrained(model_id, token=hf_token)
model = AutoModelForCausalLM.from_pretrained(model_id, token=hf_token, torch_dtype=dtype, device_map="auto")

إنشاء الدوال لتوليد النصوص

نقوم بإنشاء دوال لتنسيق الموجهات وإدارة توليد النص:

def build_chat_prompt(user_prompt: str):
    messages = [{"role": "user", "content": user_prompt}]
    text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
    return text


def generate_text(prompt, max_new_tokens=256, temperature=0.7, do_sample=True):
    chat_text = build_chat_prompt(prompt)
    inputs = tokenizer(chat_text, return_tensors="pt").to(model.device)
    with torch.no_grad():
        outputs = model.generate(inputs, max_new_tokens=max_new_tokens, do_sample=do_sample, temperature=temperature)
        generated = outputs[0][inputs["input_ids"].shape[-1]:]
    return tokenizer.decode(generated, skip_special_tokens=True).strip()

بهذه الطريقة، نصبح قادرين على توليد نصوص بطريقة ديناميكية.

اختبار النموذج

نبدأ باختبار النموذج من خلال توليد نصوص بسيطة:

prompt1 = "Explain Gemma 3 in plain English."
resp1 = generate_text(prompt1, max_new_tokens=220, temperature=0.7, do_sample=True)
print(resp1)

يمكننا أيضاً اختبار إمكانية النموذج في إنتاج مخرجات منظمة عبر تنسيق JSON:

prompt2 = "Compare local open-weight model usage vs API-hosted model usage. Return JSON."
resp2 = generate_text(prompt2, max_new_tokens=300, temperature=0.2, do_sample=True)
print(resp2)

اختبار الأنماط المختلفة

نقوم باختبار استجابة النموذج عبر عدة أنماط، مثل:

  • توليد نصوص أساسية.
  • إنتاج مخرجات منظمة.
  • تحليل وتقييم الأداء.

أخيراً، نقوم بحفظ المخرجات في ملف لتكون مرجعاً مستقبلياً:

with open("gemma3_1b_text_tutorial_report.json", "w", encoding="utf-8") as f:
    json.dump(report, f, indent=2, ensure_ascii=False)

بهذا، نكون قد أنشأنا خط أنابيب كامل لتوليد النصوص باستخدام نموذج Gemma 3 1B.

المصدر: MarkTechPost

أحدث في الذكاء الاصطناعي

مقالات سابقة في الذكاء الاصطناعي