المستوى: مبتدئ
لو طلبت من Claude إنه يصنّف تذاكر الدعم بتاعتك لـ 5 فئات داخلية في شركتك، هتلاقي إنه بيخلط بين "شكوى فنية" و"طلب ميزة" في أكتر من نص الحالات. مش لأن الموديل ضعيف، لكن لأنه ما عرفش يعني إيه التصنيفات بالظبط في السياق بتاعك. Few-Shot Learning بـ 5 أمثلة بس بيحلّ المشكلة دي في 4 دقايق، ومن غير ما تدفع دولار واحد على fine-tuning.
المشكلة باختصار
الموديل بيتدرّب على إنترنت كامل، بس مش على بيانات شركتك. لما تطلب منه يعمل مهمة تخصّك بدون أمثلة (اللي اسمه zero-shot)، هو بيخمّن بناءً على فهمه العام. الفهم العام كافي لمهام بسيطة زي الترجمة من إنجليزي لعربي، لكنه بيفشل في المهام اللي ليها سياق داخلي زي:
- تصنيف تذاكر بفئات شركتك المحددة (مش الفئات العامة في كتب CRM).
- استخراج بيانات بصيغة JSON معينة بأسماء حقول داخلية.
- الرد بنبرة محددة (مثلاً نبرة الكتالوج الرسمي للسعودية).
- التعرّف على مصطلحات داخلية (أسماء منتجات، أكواد، مختصرات).
الحل اللي بيقفز في دماغ المطوّر فوراً هو fine-tuning. ده غلط في 80% من الحالات. Few-Shot Learning بيحلّ نفس المشكلة بـ 0% تكلفة تدريب و 0 ساعة انتظار.
Few-Shot Learning: التعريف بأبسط شكل
Few-Shot Learning ببساطة: انت بتدّي للموديل عدد قليل من الأمثلة (عادة 3 لـ 8) في الـ prompt قبل ما تطلب منه يحل الـ task الفعلية. الأمثلة دي بتعمل دور قوالب بيقلّدها الموديل في الإجابة. خلاص. مش هنحتاج أكتر من كده.
الكلمة "shot" هنا معناها "مثال". يعني:
- Zero-shot: صفر أمثلة. بتسأل الموديل على طول.
- One-shot: مثال واحد قبل السؤال.
- Few-shot: من 2 لـ 10 أمثلة قبل السؤال.
مثال للمبتدئ: ازاي بتعلّم طفل كلمة "شكراً"
تخيّل عندك طفل عمره سنتين، ومش بيقول "شكراً" لما حد يدّيه حاجة. لو قعدت تشرحله بالكلام النظري: "لازم تقول شكراً لو حد ساعدك أو دّاك حاجة"، الكلام ده لوحده مش هيشتغل. هو لسه ما فهمش السياق ولا عارف الكلمة دي تتقال إمتى بالظبط.
بدل ما تشرح، انت بشكل تلقائي بتعمل كده على مدار يوم:
- الصبح، انت بتدّيه لعبة وتقوله أنت بنفسك "شكراً ماما" قدّامه.
- وقت الفطار، الجدّة بتدّيه بسكويت وتقولها أبوه "شكراً تيتا" قدّامه.
- بعد الضهر، أبوه بيدّيه عصير وأمه بتقول "شكراً بابا" قدّامه.
- في الحضانة، صاحبه بيدّيه قلم والمدرّسة بتقول "شكراً يا فلان" قدّامه.
بعد 4 أو 5 أمثلة من النوع ده، الطفل بيلتقط النمط: "آه، لما حد يدّيني حاجة، فيه كلمة بتتقال اسمها شكراً". هو مش بيحفظ كل سيناريو لوحده، هو بيستنتج القاعدة من الأمثلة.
Claude بيشتغل بنفس الطريقة بالظبط. لما تدّيه 5 أمثلة مكتوبة بصيغة "input → output"، هو بيلتقط الـ pattern من السياق، وبيطبّقه على السؤال الجديد. ما فيش تدريب، ما فيش تعديل في الموديل نفسه. الأمثلة بتعيش في الـ context window للطلب ده فقط، وبعدين بتنتهي.