نماذج اللغة2023مبتدئ11 دقيقة قراءة

ألباكا: نموذج قوي وقابل للتكرار يتّبع التعليمات

Alpaca: A Strong, Replicable Instruction-Following Model

Taori, R. · Gulrajani, I. · Zhang, T. · Dubois, Y. · Li, X. · Guestrin, C. · Liang, P. · Hashimoto, T. B. — Stanford CRFM Blog

المشكلة

مع بداية 2023، أثبتت نماذج مثل ChatGPT وGPT-3.5 أنها تتقن اتّباع التعليمات بشكل مبهر، لكنها كانت مغلقة المصدر ومكلفة الاستخدام عبر واجهة البرمجة، ولا سبيل لدراستها أو تعديلها. في المقابل، أصدرت Meta عائلة نماذج LLaMA بأوزان مفتوحة وأداء قوي، لكن هذه النماذج لم تكن تعرف كيف تستجيب للتعليمات. ما كان ينقص المجتمع البحثي هو وصفة بسيطة ورخيصة وقابلة للتكرار تحوّل نموذجاً أساسياً مفتوحاً إلى مساعد يفهم ما يُطلب منه.

الإسهام

أثبت Alpaca أن نموذجاً مفتوحاً بسبعة مليارات معامل (LLaMA 7B) يستطيع مجاراة GPT-3.5 (text-davinci-003) في اتّباع التعليمات، وذلك بوصفة من ثلاث خطوات لا تتجاوز تكلفتها 600 دولار: (1) الانطلاق من 175 تعليمة بذرية كتبها بشر، (2) استخدام text-davinci-003 لتوليد 52 ألف زوج تعليمة-إخراج متنوع عبر أسلوب بأقل من 500 دولار من تكاليف الواجهة البرمجية، (3) ضبط LLaMA 7B على هذه البيانات بأدوات معيارية بنحو 100 دولار من تكاليف الحوسبة. أُتيح كل شيء بشكل مفتوح — البيانات والشيفرة ووصفة .

الأثر

أشعل Alpaca موجة ضبط التعليمات مفتوحة المصدر. في غضون أسابيع، استنسخت عشرات المشاريع الوصفة ووسّعتها — Vicuna وKoala وDolly — فتأكّد أن اتّباع التعليمات بجودة عالية ليس حكراً على المختبرات العملاقة. أظهر المشروع أن جودة البيانات وتنظيمها أهم من حجم النموذج وحده، وأن من نموذج مُعلِّم قوي طريق مختصر وفعّال نحو الموائمة. كذلك أطلق المشروع نقاشات جوهرية حول الأبعاد القانونية والأخلاقية لاستخدام مخرجات النماذج المملوكة في التدريب.

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

المشكلة: نماذج مفتوحة لا تفهم ما يُطلب منها

في مارس 2023 كان مشهد منقسماً بشكل حاد. نماذج مثل ChatGPT وtext-davinci-003 كانت بارعة في ، لكنها مغلقة المصدر ومحصورة خلف واجهات برمجية مدفوعة، ومكلفة جداً عند الاستخدام على نطاق واسع، ولا يمكن لأي باحث فحصها أو تطويرها. في المقابل، كانت عائلة LLaMA التي أطلقتها Meta حديثاً تقدّم نماذج أساسية قوية للأبحاث، لكنها دُرِّبت فقط على التنبؤ بالرمز التالي. لو طلبت من LLaMA «اكتب قصيدة عن البحر» فقد يُكمل بعبارة «ثم اكتب قصيدة عن السماء» بدلاً من أن يكتب القصيدة فعلاً.

المشكلة لم تكن في المعرفة — LLaMA 7B كان يعرف أصلاً كيف تُبنى القصائد. المشكلة كانت في السلوك: النموذج لم يتعلّم بعدُ متى وكيف يوظّف ما يعرفه حين يطلب منه المستخدم شيئاً. سدّ هذه الفجوة كان يستلزم عادةً (RLHF) — وهي عملية معقدة ومكلفة تحتاج مُقيِّمين بشريين يُرتّبون آلاف المخرجات.

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

افتح في المختبر
وصفة Alpaca: 175 تعليمة بذرية ← text-davinci-003 يولّد 52 ألف مثال ← ضبط دقيق لنموذج LLaMA 7B. التكلفة الإجمالية: أقل من 600 دولار.
تستيقظ التجربة عند وصولك…

الخطوة الأولى: توليد 52 ألف تعليمة من 175 بذرة

الفكرة المحورية في أسلوب التعليم الذاتي (Self-Instruct) بسيطة: النموذج اللغوي القوي يستطيع أن يولّد بيانات تدريبه بنفسه. بنى Alpaca على هذه الفكرة بخطّ إنتاج أبسط وأقل تكلفة.

تبدأ العملية بـ175 تعليمة بذرية كتبها بشر — أمثلة متنوعة تغطّي مهاماً من قبيل العصف الذهني والتصنيف وإعادة الصياغة والبرمجة والتوليد المفتوح. كل بذرة تحتوي تعليمةً ومُدخلاً اختيارياً وإخراجاً متوقعاً.

بعد ذلك تُستخدم هذه البذور كـأمثلة سياقية ضمن تُرسل إلى text-davinci-003. الفرق الجوهري هنا أن كل مطالبة تطلب من النموذج توليد 20 تعليمة دفعة واحدة بدلاً من واحدة في كل مرة كما في الطريقة الأصلية، وهذا التجميع يخفّض عدد استدعاءات الواجهة البرمجية بمقدار 20 ضعفاً تقريباً. ثم تُصفّى الأزواج الناتجة وتُزال المكرّرات بمقياس تشابه ROUGE-L، فيخرج في النهاية 52,002 زوج تعليمة-إخراج فريد بتكلفة إجمالية أقل من 500 دولار.

افتح في المختبر
شاهد كيف تتكاثر 175 تعليمة بذرية لتصبح 52 ألف مثال عبر التوليد التكراري.
تستيقظ التجربة عند وصولك…

الخطوة الثانية: ضبط LLaMA على البيانات المولَّدة

بعد تجهيز 52 ألف زوج تعليمة-إخراج، يصبح التدريب نفسه عملية ضبط دقيق موجَّه مباشرة — بلا ، وبلا نماذج مكافأة، وبلا خطوط معقدة. استخدم الفريق إطار التدريب المعياري من Hugging Face مع التوزيع المتوازي المُجزَّأ بالكامل (FSDP) و.

بسيطة بشكل لافت: يبلغ 128، و قدره 2e-5، و3 تدريبية، وطول تسلسل أقصى 512 ، وبلا . على عنقود من 4 وحدات A100 بسعة 80 غيغابايت، استغرق التدريب نحو 3 ساعات — أي قرابة 100 دولار من الحوسبة السحابية.

صيغة المُدخلات تتبع قالباً بسيطاً: كل مثال يُنسَّق كتعليمة (مع مُدخل اختياري) يليها الردّ المتوقع. هذه الصيغة المسطّحة — بلا بنية محادثة متعددة الأدوار كما في ChatGPT — تكفي تماماً لـاتّباع التعليمات في دورة واحدة.

صيغة بيانات تدريب Alpaca — قالب التعليمةpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

# كل مثال يتبع هذا القالب:
# إذا وُجد حقل مُدخل، استخدم صيغة "مع مُدخل":
PROMPT_WITH_INPUT = (
    "Below is an instruction that describes a task, "
    "paired with an input that provides further context. "
    "Write a response that appropriately completes the request.\n\n"
    "### Instruction:\n{instruction}\n\n"
    "### Input:\n{input}\n\n"
    "### Response:\n{output}"
)

# إذا لم يوجد مُدخل، استخدم صيغة "بدون مُدخل":
PROMPT_WITHOUT_INPUT = (
    "Below is an instruction that describes a task. "
    "Write a response that appropriately completes the request.\n\n"
    "### Instruction:\n{instruction}\n\n"
    "### Response:\n{output}"
)

# مثال من مجموعة بيانات Alpaca (52 ألف مثال):
example = {
    "instruction": "Give three tips for staying healthy.",
    "input": "",
    "output": "1. Eat a balanced diet...\n"
              "2. Exercise regularly...\n"
              "3. Get enough sleep..."
}
# هذا كل شيء. لا محادثة متعددة الأدوار. لا مطالبة نظام. فقط تعليمة ← ردّ.

البيانات: التنوّع هو السرّ

اكتشف فريق Alpaca أن البيانات التي ولّدوها أكثر تنوعاً بفارق واضح من مجموعة بيانات التعليم الذاتي الأصلية. لتوضيح ذلك، رسموا مخططاً يعرض الأفعال الجذرية والمفاعيل المباشرة لكل التعليمات الـ52 ألفاً — الحلقة الداخلية تُبيّن ماذا يُطلب من النموذج أن يفعل (اكتب، اشرح، أنشئ، ولِّد، صِف، ...) والحلقة الخارجية تُبيّن ما يعمل عليه (قصة، قائمة، جملة، مقطع برمجي، ...).

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

افتح في المختبر
استكشف تنوّع تعليمات Alpaca الـ52 ألفاً — الحلقة الداخلية تُظهر الأفعال والخارجية تُظهر المفاعيل.
تستيقظ التجربة عند وصولك…

التقييم: Alpaca في مواجهة text-davinci-003

قيّم الفريق أداء النموذج باستخدام مجموعة تقييم التعليم الذاتي التي تضمّ 252 تعليمة متنوعة تغطّي طيفاً عريضاً من المهام. أجروا أعمى شارك فيه خمسة مُقيِّمين قارنوا مخرجات Alpaca 7B بمخرجات text-davinci-003.

النتيجة كانت لافتة: Alpaca 7B تفوّق أو تعادل في 50% من المقارنات، وهو نموذج بسبعة مليارات معامل فقط مضبوط على بيانات مولَّدة آلياً، يُنافس نموذجاً تكلفة بنائه أعلى بمراتب. في كثير من المهام كالعصف الذهني وإعادة الصياغة والإجابة عن أسئلة بسيطة، لم يستطع المُقيِّمون فعلاً التمييز بين النموذجين.

لكن Alpaca كانت له نقاط ضعف واضحة: عانى مع الاستدلال المعقد والتعليمات متعددة الخطوات والدقة الوقائعية. كذلك افتقر إلى تدريب على السلامة — كان بإمكانه توليد محتوى ضارّ أو متحيّز لأنه لم يمرّ بمرحلة التي تُعلّم النماذج التجارية رفض الطلبات الخطرة.

افتح في المختبر
قارن بين Alpaca 7B وtext-davinci-003 عبر فئات مهام مختلفة.
تستيقظ التجربة عند وصولك…

الصورة الأشمل: تقطير المعرفة كطريق مختصر

ما أثبته Alpaca في جوهره هو نمط من تقطير المعرفة: قوي (text-davinci-003) ينقل قدرته على اتّباع التعليمات إلى أصغر (LLaMA 7B). المُعلِّم لا يُشارك أوزانه — بل يُشارك سلوكه من خلال 52 ألف مثال يولّدها.

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

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

ماذا فتح Alpaca من أبواب

  1. 2022

    التعليم الذاتي

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

  2. 2023

    LLaMA — نماذج أساسية مفتوحة

    أصدرت Meta عائلة LLaMA (من 7 إلى 65 مليار معامل)، نماذج أساسية قوية متاحة للأبحاث. لم تكن تعرف كيف تتّبع التعليمات، لكن قدراتها الأساسية كانت ممتازة.

  3. 2023

    Alpaca — ضبط تعليمات بأقل تكلفة

    وصفة ستانفورد: التعليم الذاتي + LLaMA + 600 دولار = نموذج يتّبع التعليمات بأداء يُنافس GPT-3.5. أُتيح كل شيء للجميع — البيانات والشيفرة ووصفة التدريب.

  4. 2023

    Vicuna وKoala وDolly — الموجة المفتوحة

    استنسخت فرق متعددة وصفة Alpaca وحسّنتها بمصادر بيانات مختلفة (محادثات ShareGPT وبيانات مكتوبة بشرياً)، فتأكّد أن المنهج قابل للتعميم.

  5. 2023

    LIMA — القليل يكفي للموائمة

    أظهرت Meta أن ألف مثال مُنتقى بعناية يعادل في أثره 52 ألف مثال مولَّد، فجودة الانتقاء أهم من كمّ البيانات.

الفكرة في شيفرة

توليد بيانات التعليمات بخط إنتاج Alpacapython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import openai
import json
import random

# الخطوة 1: تحميل 175 تعليمة بذرية مكتوبة بشرياً
with open("seed_tasks.jsonl") as f:
    seed_tasks = [json.loads(line) for line in f]

# الخطوة 2: توليد تعليمات جديدة باستخدام text-davinci-003
def generate_instructions(seed_examples, num_to_generate=20):
    """توليد أزواج تعليمة-إخراج جديدة عبر التعلّم السياقي."""
    # اختر 3 بذور عشوائية كأمثلة سياقية
    examples = random.sample(seed_examples, 3)

    prompt = "You are asked to generate diverse task instructions.\n\n"
    for i, ex in enumerate(examples):
        prompt += f"###\n"
        prompt += f"{i+1}. Instruction: {ex['instruction']}\n"
        prompt += f"{i+1}. Output: {ex['output']}\n"
    prompt += f"###\nGenerate {num_to_generate} new instructions:\n"

    response = openai.Completion.create(
        model="text-davinci-003",
        prompt=prompt,
        max_tokens=2048,
        temperature=1.0,      # حرارة عالية لتعزيز التنوّع
        top_p=1.0,
    )
    return parse_instructions(response.choices[0].text)

# الخطوة 3: التصفية وإزالة التكرارات
# يستخدم تشابه ROUGE-L لإزالة المتشابهات القريبة
# التكلفة الإجمالية: ~500 دولار لـ52 ألف مثال

# الخطوة 4: الضبط الدقيق لنموذج LLaMA 7B
# ضبط دقيق موجَّه معياري بمكتبة Hugging Face
# معدّل التعلّم=2e-5، حجم الدُّفعة=128، الحقب=3، الطول الأقصى=512
# التكلفة: ~100 دولار على 4× A100 (3 ساعات)

القيود والدروس المستفادة

Alpaca كان إثباتاً للمفهوم وليس نظاماً جاهزاً للإنتاج. لكن قيوده تكشف دروساً مهمة:

: مثل مُعلِّمه تماماً، يولّد Alpaca إجابات تبدو واثقة لكنها خاطئة. النموذج ورث من text-davinci-003 معرفته، لكنه ورث معها ميله لاختلاق معلومات لا أساس لها.

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

المنطقة الرمادية قانونياً: أمثلة التدريب الـ52 ألف وُلِّدت بنموذج مملوك (text-davinci-003) قد تمنع شروط خدمته استخدام مخرجاته لتدريب نماذج منافسة. أُتيح Alpaca للبحث فقط، لكنه فتح نقاشاً أوسع حول الوضع القانوني لبيانات التدريب التي يولّدها الذكاء الاصطناعي.

صعوبة التقييم: التقييم البشري على 252 مثالاً يعطي مؤشراً تقريبياً لكنه لا يرقى لمقارنة دقيقة إحصائياً. أُطر تقييم لاحقة مثل AlpacaEval وMT-Bench وChatbot Arena قدّمت منهجيات أكثر انضباطاً.

المرجعTaori, Gulrajani, Zhang, Dubois, Li, Guestrin, Liang, Hashimoto. Alpaca: A Strong, Replicable Instruction-Following Model. Stanford CRFM Blog, 2023.

مصطلحات هذه الورقة