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

Maud Nalpas
Maud Nalpas

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

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

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

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

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

ما المقصود بـ "النماذج اللغوية الكبيرة الأصغر" (LLM)؟

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

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

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

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

البدء

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

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

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

على سبيل المثال:

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) LLM أصغر (Gemma 2B)
تناسبنا تمامًا. يوزع الوزن بشكل جيد ويشعر بالراحة على نحو مدهش حتى في الرحلات طوال اليوم. أوصي بذلك. 5 4 من 5 نجوم**
الأشرطة رقيقة، وبدأوا في التعمق في كتفي تحت أحمال ثقيلة. 1 5/2

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

  • التنسيق غير صحيح. لقد طلبنا عددًا صحيحًا للتقييم.
  • لا يبدو التقييم دقيقًا جدًا. المراجعة الأولى متحمسة بدرجة كافية للإشارة إلى مراجعة 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 (الأسوأ)

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

توقَّع تحليل النتائج اليدوية

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

في المثال الأول، استخدمنا تحفيز سلسلة التفكير، لذلك تضمنت المخرجات لكل من التحليل والتقييم ونحتاج إلى التحليل يدويًا للتصنيف. كذلك عليك ملاحظة التنسيق غير المتسق في الإخراج في القسم السابق: يُخرج النموذج أحيانًا 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) أصغر من نموذج أكبر. الاختبار والتحقق من الصحة وقد يتطلب الأمر أيضًا بذل المزيد من الجهد عند إنشاء النموذج اللغوي الكبير.

هل يمكنك مطالبة المهندس أو الضبط الدقيق؟

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

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

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