هندسة الطلبات العملية للنماذج اللغوية الكبيرة الأصغر حجمًا

Maud Nalpas
Maud Nalpas

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

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

ينطبق هذا أيضًا على النماذج ذات المقاسات المختلفة.

غالبًا ما تقدّم واجهات Chat المستنِدة إلى نماذج لغوية كبيرة (LLM)، مثل Gemini أو ChatGPT نتائج مُرضية بأقلّ جهد ممكن. مع ذلك، عند استخدام نموذج لغوي كبير (LLM) افتراضي أصغر ولم يتم ضبطه بشكل دقيق، عليك تعديل أسلوبك.

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

ما المقصود بنماذج لغوية أصغر حجمًا؟

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

في هذا المستند، تشير عبارة "نماذج لغوية أصغر حجمًا" إلى أيّ نموذج يتضمّن معلَمات ضمن 30B. واعتبارًا من اليوم، يمكن تشغيل النماذج التي تتضمّن بضعة ملايين إلى بضعة مليارات من المَعلمات بشكلٍ واقعي في المتصفّح على الأجهزة ذات مستوى المستهلك.

أين يمكن استخدام النماذج اللغوية الكبيرة الأصغر حجمًا؟

  • الذكاء الاصطناعي التوليدي على الجهاز أو في المتصفّح، على سبيل المثال، إذا كنت تستخدم Gemma 2B مع MediaPipe's LLM Inference API (حتى لو كانت مناسبة للأجهزة التي تعمل بوحدة المعالجة المركزية فقط) أو DistelBert في المتصفّح باستخدام Transformers.js. لا يمكن تنزيل نموذج وتنفيذ استنتاج على جهاز المستخدم إلّا باستخدام هذه النماذج اللغوية الكبيرة الأصغر حجمًا من أجل الحفاظ على معقولية عمليات التنزيل على الويب وبما يتوافق مع قيود ذاكرة الجهاز ووحدة معالجة الرسومات/وحدة المعالجة المركزية (CPU).
  • الذكاء الاصطناعي التوليدي المخصص من جهة الخادم: تتوفر لك نماذج صغيرة مفتوحة، مثل Gemma 2B أو Gemma 7B أو Gemma 27B، لتشغيلها على خادمك الخاص (ويمكنك ضبطها اختياري).

البدء

غالبًا ما تقدّم واجهات Chat المستنِدة إلى نماذج لغوية كبيرة (LLM)، مثل Gemini أو ChatGPT، نتائج مُرضية بأقلّ جهد ممكن. مع ذلك، عند العمل مع نماذج لغوية أصغر حجمًا، عليك تكييف أسلوبك. أما النماذج اللغوية الكبيرة الأصغر حجمًا، فهي أقل فعالية وتحتوي على مجموعة أصغر من المعلومات التي يمكن الاستفادة منها.

تقديم تعليمات دقيقة حول السياق والتنسيق

لتحقيق أفضل النتائج باستخدام نماذج لغوية صغيرة (LLM)، يجب صياغة طلبات أكثر تفصيلاً وتحديدًا.

مثلاً:

Based on a user review, provide a product rating as an integer between 1 and 5. \n
Only output the integer.

Review: "${review}"
Rating:
الإدخال (مراجعة) الناتج (التقييم)
  نموذج لغوي كبير (LLM) أكبر (Gemini 1.5) نماذج لغوية أصغر حجمًا (Gemma 2B)
هذه تجربة رائعة جدًا. تعمل على توزيع وزنك بشكل جيد ومريح بشكل مذهل حتى في الرحلات طوال اليوم. أوصي بذلك. 5 4 من 5 نجوم**
الأشرطة رشيقة، وبدأوا في التعمق في كتفي تحت الأحمال الثقيلة. 1 5/2

على الرغم من أن Gemini 1.5 يوفر الإخراج المطلوب بهذه المطالبة البسيطة، فإن ناتج Gemma ليس مُرضيًا:

  • التنسيق غير صحيح. طلبنا عددًا صحيحًا للتصنيف.
  • لا يبدو التقييم دقيقًا للغاية. المراجعة الأولى حماسية بما يكفي للإشارة إلى كونها مراجعة من 5 نجوم.

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

مثلاً:

`Analyze a product review, and then based on your analysis give me the
corresponding rating (integer). The rating should be an integer between 1 and
5. 1 is the worst rating, and 5 is the best rating. A strongly dissatisfied
review that only mentions issues should have a rating of 1 (worst). A strongly
satisfied review that only mentions positives and upsides should have a rating
of 5 (best). Be opinionated. Use the full range of possible ratings (1 to
5). \n\n
    \n\n
    Here are some examples of reviews and their corresponding analyses and
    ratings:
    \n\n
    Review: 'Stylish and functional. Not sure how it'll handle rugged outdoor
    use, but it's perfect for urban exploring.'
    Analysis: The reviewer appreciates the product's style and basic
    functionality. They express some uncertainty about its ruggedness but
    overall find it suitable for their intended use, resulting in a positive,
    but not top-tier rating.
    Rating (integer): 4
    \n\n
    Review: 'It's a solid backpack at a decent price. Does the job, but nothing
    particularly amazing about it.'
    Analysis: This reflects an average opinion. The backpack is functional and
    fulfills its essential purpose. However, the reviewer finds it unremarkable
    and lacking any standout features deserving of higher praise.
    Rating (integer): 3
    \n\n
    Review: 'The waist belt broke on my first trip! Customer service was unresponsive too. Would not recommend.'
    Analysis: A serious product defect and poor customer service experience naturally warrants the lowest possible rating. The reviewer is extremely unsatisfied with both the product and the company.
    Rating (integer): 1
    \n\n
    Review: 'Love how many pockets and compartments it has. Keeps everything organized on long trips. Durable too!'
    Analysis: The enthusiastic review highlights specific features the user loves (organization and durability), indicating great satisfaction with the product. This justifies the highest rating.
    Rating (integer): 5
    \n\n
    Review: 'The straps are a bit flimsy, and they started digging into my shoulders under heavy loads.'
    Analysis: While not a totally negative review, a significant comfort issue leads the reviewer to rate the product poorly. The straps are a key component of a backpack, and their failure to perform well under load is a major flaw.
    Rating (integer): 1
    \n\n
    Now, here is the review you need to assess:
    \n
    Review: "${review}" \n`;
الإدخال (مراجعة) ناتج باستخدام نموذج لغوي كبير (LLM) أصغر (Gemma 2B)

هذه تجربة رائعة جدًا. تعمل هذه الميزة على توزيع وزنك بشكل جيد ومريحة للغاية حتى أثناء الرحلات طوال اليوم. أوصي بذلك.

التحليل: هذه المراجعة إيجابية للغاية وتؤكّد على ملاءمة المنتج وراحته، ما يشير إلى مدى رضاه عن المنتج. وهذا يبرّر حصوله على تقييم مرتفع.

التقييم (عدد صحيح): 5

الأشرطة رشيقة، وبدأوا في التعمق في كتفي تحت أعباء ثقيلة.

**التحليل:** تسلّط المراجعة الضوء على مشكلة كبيرة ارتبطت بها الأشرطة. ويشير أيضًا إلى أنّ المنتج قد لا يكون مناسبًا للأحمال الثقيلة أو الأماكن المطوّلة.

**التقييم:** 1 (الأسوأ)

إنّ الطلب الأكثر تفصيلاً، بالإضافة إلى أساليب الطلب التي تتضمّن عدد قليل من اللقطات وأساليب الطلب المبنية على سلاسل الأفكار، يوفِّر تقييمات أكثر دقة.

توقع تحليل الناتج يدويًا

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

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

// Use try/catch to catch (parsing) errors
try {
  // Parse the output for a rating
  const int = /[1-5]/;
  const ratingAsString = llmOutput.match(int)[0];
  // Parse as int
  const ratingAsInt = parseInt(ratingAsString);
  // `checkRating` checks the rating is a number between 1 and 5, since the
  // regEx may catch a number like "100"
  const finalRating = checkRating(ratingAsInt);
} catch (e) {
  console.error('Error', e);
}

الاختلافات في Mind API

توفّر واجهات برمجة التطبيقات المستندة إلى السحابة الإلكترونية اللغوية الكبيرة، مثل Gemini API أو OpenAI، التي تشكّل عادةً مدخلاً إلى نماذج لغوية أكبر حجمًا ميزات طلب مفيدة. على سبيل المثال، يقدّم Gemini 1.5 Pro تعليمات النظام ووضع JSON.

في الوقت الحالي، لا يمكن استخدام هذه الميزات دائمًا لاستخدام النماذج المخصّصة أو للنماذج اللغوية الكبيرة الأصغر حجمًا التي يمكن الوصول إليها باستخدام واجهات برمجة تطبيقات الذكاء الاصطناعي في المتصفّح، مثل MediaPipe LLM Inference API أو Transformers.js. على الرغم من أنّ ذلك ليس بالضرورة قيدًا فنيًا، إلا أنّ واجهات برمجة التطبيقات المستندة إلى الذكاء الاصطناعي في المتصفّح تكون أقلّ تقليلًا في المتطلبات.

حدود الرمز المميّز للعقل

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

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

استخدِم دوال عدد الرموز المميّزة لتجنّب الوصول إلى الحدّ الأقصى.

تكييف تقديرات الأوقات

ضع في الاعتبار التصميم والاختبار الفوري في تقديرات الوقت الهندسية.

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

هل تريد المطالبة بالمهندس أم الضبط الدقيق؟

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

استخدام الضبط الدقيق في الحالات التالية:

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