Meta Llama 2: كيف تشغّل نموذج ذكاء اصطناعي محلياً وتتحكم في بياناتك؟

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

هنا تبرز فكرة Meta Llama 2: نموذج لغوي يمكنك تنزيل أوزانه وتشغيله ضمن بيئة تتحكم فيها. لكن تحويل هذه الفكرة إلى تطبيق مفيد يحتاج إلى فهم الترخيص، واختيار الحجم المناسب، ومعرفة ما يستطيع النموذج تقديمه فعلاً.

في هذا الدليل ستتعرّف على مميزات Llama 2 وحدوده، ثم تبدأ تجربة محلية وتربطها بكود Python.

ما هو Meta Llama 2؟ ولماذا يستحق الفهم؟

Llama 2 عائلة نماذج لغوية من Meta، أُطلقت في يوليو 2023، وتضم أحجاماً رئيسية هي 7B و13B و70B. توجد منها إصدارات أساسية وإصدارات مهيأة للمحادثة تُعرف باسم Llama 2-Chat. وهي نماذج نصية في أصلها؛ تستقبل النص وتولّد النص. [1][2]

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

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

هل Llama 2 مفتوح المصدر ومجاني بلا شروط؟

أبرز ما جذب المطورين إليه هو إتاحة الأوزان وإمكانية تعديلها وتشغيلها. لكن الوصف الأدق هنا هو نموذج متاح الأوزان بترخيص خاص؛ فلا تتعامل معه كما تتعامل مع مشروع يحمل ترخيص MIT أو Apache 2.0.

تسمح اتفاقية Llama 2 باستخدامات بحثية وتجارية وفق شروطها، وتفرض التزامات عند إعادة التوزيع، والالتزام بسياسة الاستخدام المقبول. كما تتضمن قيداً على استخدام مواد النموذج أو مخرجاته لتحسين نماذج لغوية كبيرة أخرى، باستثناء Llama 2 ومشتقاته.

المغزى العملي: إتاحة الأوزان تمنحك مساحة واسعة للعمل، لكنها لا تعني غياب الالتزامات.

ما الذي تربحه من التشغيل داخل بيئتك؟

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

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

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

مميزات Meta Llama 2 التقنية: ماذا تعني للمطور؟

1. بنية Transformer محسّنة

يستخدم Llama 2 بنية لغوية تولّد النص تدريجياً، مع تحسينات مقارنة بالجيل السابق. [1]

لتقريب الفكرة، عندما تطلب تلخيص فقرة، يستفيد النموذج من السياق المتاح لتوقّع الرمز التالي، ثم يكرر العملية حتى تكتمل الإجابة. لذلك قد ينتج نصاً مقنعاً لغوياً مع وجود خطأ في المعلومة أو الاستنتاج.

كمطور، افصل بين سؤالين: هل الإجابة مكتوبة جيداً؟ وهل الإجابة صحيحة وفق بياناتك؟ نجاح الأول لا يثبت الثاني، خصوصاً في المهام التي تتضمن أرقاماً أو سياسات عمل دقيقة.

2. نافذة سياق أصلية تبلغ 4096 رمزاً

ضاعف Llama 2 نافذة السياق مقارنة بالجيل الأول لتصل إلى 4096 رمزاً. والرمز Token قد يكون كلمة أو جزءاً منها، بحسب اللغة والتقسيم المستخدم. [1]

فكّر في نافذة السياق كمساحة مكتب محدودة: تضع عليها التعليمات، ومقتطفات المستندات، والمحادثة السابقة، وتترك مساحة للإجابة. إذا ملأت المكتب كله بالمراجع، فلن تبقى مساحة كافية لبقية المهمة.

لهذا لا تفسّر الرقم على أنه 4096 كلمة، ولا تفترض أنه يكفي لكتاب كامل. عندما تتعامل مع مستند طويل، جرّب تقسيمه إلى مقاطع، ثم استرجاع المقاطع المرتبطة بالسؤال فقط. ويمكنك أيضاً تلخيص أجزاء المحادثة القديمة عندما لا تحتاج تفاصيلها كاملة.

3. تقنية GQA في نسخة 70B

تستخدم نسخة 70B تقنية الانتباه بالاستعلامات المجمّعة Grouped-Query Attention. تساعد هذه الآلية على تحسين كفاءة الاستدلال وتقليل عبء الذاكرة المرتبط بمفاتيح الانتباه وقيمه. ولا تستخدم نسختا 7B و13B الأصليتان GQA. [1]

عملياً، هذه ميزة هندسية تساعد في خدمة النموذج الكبير، لكنها لا تلغي متطلبات تشغيله. لا تختَر 70B اعتماداً على وجود GQA وحدها؛ اختبر الزمن المستغرق، والذاكرة، وعدد الطلبات المتزامنة الذي يستطيع خادمك تحمّله.

أي حجم تختار: 7B أم 13B أم 70B؟

لا تبدأ بالسؤال: ما أكبر نموذج أستطيع تنزيله؟ ابدأ بسؤال: ما أصغر نموذج يحقق الجودة التي يحتاجها تطبيقي؟

الجدول التالي يعرض أحجام الملفات المنشورة لوسوم Ollama المذكورة، مع إرشاداته العامة للذاكرة. هذه الأرقام تخص تلك الحزم، وليست متطلبات ثابتة لجميع طرق تشغيل Llama 2. [4]

النسخةحجم ملف النموذج تقريباً في Ollamaإرشاد Ollama العام لذاكرة RAM
7B3.8 GB8 GB على الأقل
13B7.4 GB16 GB على الأقل
70B39 GB64 GB على الأقل

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

ما دور التكميم Quantization؟

التكميم يقلل الدقة العددية المستخدمة لتمثيل الأوزان، مما يسمح بتقليل حجمها ومتطلبات تخزينها في الذاكرة. تستخدم حزم Llama 2 الافتراضية في Ollama تكميماً بأربع بتات. [4]

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

ولا تفترض أن تشغيل 7B أو 13B على هاتف ذكي أمر مضمون. التجربة تتوقف على ذاكرة الجهاز، وبيئة التشغيل، والحرارة، وطول السياق، والسرعة المقبولة. ابدأ على جهاز تطويرك، ثم قيّم النقل إلى الهاتف كمهمة مستقلة.

هل يدعم Llama 2 العربية جيداً؟

هذه نقطة تحتاج إلى تصحيح واضح: بطاقة النموذج تحدد الاستخدام المقصود بالإنجليزية، وتسمح للمطورين بتكييفه للغات أخرى وفق شروط الترخيص. لذلك لا يصح تقديم النسخة الأصلية باعتبارها حلاً جاهزاً متعدد اللغات بجودة مضمونة للعربية. [2]

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

إذا كنت تبني مساعداً لمستخدمي تطبيق عربي، جهّز مجموعة أسئلة من واقع الاستخدام. ضع لكل سؤال معياراً واضحاً: ما المعلومات التي يجب أن تظهر؟ وما الأخطاء التي تجعل الإجابة غير مقبولة؟ وهل ينبغي للنموذج الاعتراف بعدم المعرفة؟

هذا التقييم أكثر فائدة من محادثة عابرة أعطتك انطباعاً جيداً. وقد يكون اختيار نموذج آخر بعد المقارنة أفضل من استثمار وقت طويل في تكييف نموذج لا يحقق هدفك.

ماذا أضافت تقنيات الأمان وRLHF؟

استخدم تطوير Llama 2-Chat الضبط الدقيق الخاضع للإشراف SFT، والتعلم التعزيزي من التغذية الراجعة البشرية RLHF، لتحسين فائدة الردود وسلامتها. وشمل البحث تقييمات للأمان وحالات رفض طلبات سليمة. [1]

لكن تحسين السلوك لا يضمن صحة كل إجابة، ولا يمنع جميع المخرجات غير المناسبة. وقد يرفض النموذج سؤالاً مشروعاً أو يستجيب بطريقة لا تناسب سياق تطبيقك.

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

تشغيل Llama 2 محلياً خطوة بخطوة

الخطوة الأولى: تثبيت Ollama وتجهيز النموذج

ثبّت Ollama من الموقع الرسمي بالطريقة المناسبة لنظامك، ثم شغّل:

ollama pull llama2:7b
ollama run llama2:7b

ينزّل الأمر الأول النموذج، ويبدأ الثاني جلسة محادثة. تحتاج إلى الإنترنت لتنزيل الأدوات والأوزان أول مرة. وسوم Llama 2 متاحة في مكتبة Ollama. [4]

جرّب طلباً صغيراً:

Explain the difference between a Python list and a tuple.
Use one short example for each.

ابدأ بمهمة تعرف إجابتها، حتى تتمكن من تقييم الدقة والأسلوب. بعد ذلك كرر الطلب بالعربية، وقارن النتيجتين على الجهاز نفسه.

الخطوة الثانية: استدعاء النموذج من Python

يفترض المثال التالي أن خدمة Ollama تعمل محلياً، وأن النموذج نُزّل بالفعل. يعتمد على مكتبات Python القياسية:

import json
from urllib.error import HTTPError, URLError
from urllib.request import Request, urlopen

payload = {
    "model": "llama2:7b",
    "prompt": (
        "Summarize this support ticket in one sentence: "
        "The customer cannot reset their password because "
        "the reset email never arrives."
    ),
    "stream": False,
    "options": {
        "temperature": 0.2,
        "num_predict": 150,
    },
}

request = Request(
    "http://localhost:11434/api/generate",
    data=json.dumps(payload).encode("utf-8"),
    headers={"Content-Type": "application/json"},
    method="POST",
)

try:
    with urlopen(request, timeout=180) as response:
        result = json.load(response)
    print(result["response"])

except HTTPError as error:
    print(f"Ollama returned HTTP {error.code}")

except URLError:
    print("Cannot connect to Ollama. Check that it is running.")

except TimeoutError:
    print("The request timed out.")

يرسل الكود طلب HTTP إلى نقطة النهاية المحلية /api/generate. يحدد الحقل model النموذج، ويحمل prompt المهمة، بينما يجعل stream=False الاستجابة تصل ككائن JSON واحد. نطبع النص الناتج من الحقل response. [5]

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

المثال نقطة بداية تعليمية، وليس خدمة إنتاج مكتملة. قبل ربطه بواجهة يستخدمها فريقك، أضف التحقق من المدخلات وإدارة الأخطاء وقياس زمن الاستجابة.

مشروع عملي: مساعد لتلخيص تذاكر الدعم

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

قيّم النتائج وفق أربعة أسئلة:

  1. هل احتفظ بالمشكلة الأساسية؟
  2. هل أضاف معلومة غير موجودة؟
  3. هل التزم بالطول المطلوب؟
  4. هل زمن الاستجابة مناسب لواجهة التطبيق؟

جرّب الطلب نفسه على أحجام مختلفة إذا سمح جهازك. إذا كانت النسخة الأكبر أبطأ كثيراً دون تحسن مؤثر، فقد تكون النسخة الأصغر أنسب لمهمتك. وإذا كانت الأخطاء متكررة، فحسّن صياغة الطلب أو قارن بنموذج آخر قبل التفكير في تدريب إضافي.

وعندما تحتاج إلى معلومات خاصة بالشركة، ميّز بين استرجاع المعلومات وبين تغيير سلوك النموذج. استخدام RAG يمكن أن يزوّد الطلب بمقاطع من مستنداتك، بينما قد يخدم الضبط الدقيق هدفاً مثل الالتزام بأسلوب أو نمط إجابات. اختر وفق المشكلة التي أثبتها التقييم.

هل يستحق Meta Llama 2 التجربة؟

رأيي أن Meta Llama 2 تجربة مفيدة للمطور الذي يريد فهم التشغيل المحلي، والتكميم، والتعامل مع واجهة استدلال تحت سيطرته. وقد كانت إتاحة أوزانه خطوة مؤثرة في توسيع إمكانات البناء والتجريب.

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

ابدأ اليوم بنسخة 7B، وشغّل مثال تلخيص تذكرة الدعم، ثم اختبر عشر حالات تعرف إجاباتها. هذه التجربة ستمنحك أساساً عملياً للحكم على Meta Llama 2، وتوضح لك ما يحتاجه مشروعك بالفعل.

المصادر

  1. الورقة البحثية الأصلية: Llama 2 — Open Foundation and Fine-Tuned Chat Models
  2. بطاقة النموذج الرسمية من Meta
  3. اتفاقية ترخيص Llama 2
  4. صفحة Llama 2 الرسمية في مكتبة Ollama
  5. توثيق Ollama: توليد استجابة

اعجبك المقال : شاركه الآن
احمد علي
احمد علي

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

المقالات: 237

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *