تكتسب نماذج اللغة واسعة النطاق (LLMs) المزيد والمزيد من الاهتمام هذه الأيام ، ولكن يتم تقييم قدرتها على التعلم صفر/قليلة ، وأشعر أنها لا تستخدم لاستخدامها في صياغة تصنيف النص مثل النماذج الموجودة مسبقًا مثل BERT. لذلك ، من أجل معرفة مقدار تصنيف النص الممكن مع LLM ، أجرينا تجربة باستخدام LLM لتصنيف النص باستخدام نفس طريقة تصنيف النص باستخدام BERT.
الغرض من هذه التجربة هو استكشاف ما يحدث عندما يتم استخدام LLM ، الذي يجذب الانتباه لقدرة التعلم صفر/قليلة ، لتصنيف النص العادي.
يعد Bert ، الذي كان يستخدم عادة لتصنيف النص حتى الآن ، نموذجًا ثنائي الاتجاه ، ويستخدم بشكل متكرر رمز الجملة [CLS] لتصنيف النص. ومع ذلك ، فإن LLMS ، والتي تستخدم عادة هذه الأيام ، مثل LLAMA ، هي نماذج أحادية الاتجاه. لذلك ، في نموذج أحادي الاتجاه ، لا فائدة من أخذ رمز الجملة. لذلك ، في هذا التنفيذ ، نستخدم التمثيل المدمج لرموز نهاية الجملة لتصنيف النص ، باستخدام فئة transformers ' LlamaForSequenceClassification كمرجع. في نموذج لغة أحادية الاتجاه ، لا يمكن اعتبار رمز نهاية النوع إلا أن يكون رمزًا للبيان بأكمله في سلسلة ، لذلك يعتبر بديلاً مناسبًا لـ [CLS] .
علاوة على ذلك ، نظرًا لأن عملية الضبط الكامل لـ LLM أمر صعب للغاية من منظور الذاكرة والكفاءة الحسابية ، فإننا نستخدم LORA ، وهي تقنية ضبط دقيقة تتيح لك تحقيق الأداء القابل للمقارنة مع التكييف الكامل عن طريق ضبط المصفوفة الإضافية منخفضة فقط. ملاحظة: يتم استخدام PEFT للضبط مع مادة شرح Lora.
في تجربة التقييم ، سنقوم بتصنيف تسع قيم لشركة Livingoor News Corpus. المحتوى التجريبي هو نفسه تقريبًا مثل برنامج تصنيف النص الخاص بالمؤلف باستخدام BERT.
في تجربة التقييم ، تم استخدام سبعة أنواع من LLM اليابانية. على وجه التحديد ، أجرينا تجارب على أربعة نماذج Rinna 3.6b ونماذج Cyberagent 7B و 3B و 1B.
كوسيلة لضبط مقياس الفائقة ، أجرينا تجارب مع معدل التعلم الذي تم تعيينه على 1E-4 و 3E-4 و 5E-4 و 1E-3. لقد جربنا أيضًا ثلاثة أنواع من تنسيقات الإدخال للنموذج. على وجه التحديد ، لكل مقالة في مجموعة أخبار Livedoor ، تم تخزين العنوان في متغير يسمى title body المقالة ، وتم حقنها في القوالب الثلاثة التالية.
| نوع القالب | مظهر |
|---|---|
| 0 | F "title: {title} nbody: {body} nlabel:" |
| 1 | F "title: {title} nbody: {body}" |
| 2 | f "{title} n {body}" |
لقد أجرينا تجارب واحدة تلو الأخرى لجميع مجموعات من معدلات التعلم والقوالب المذكورة أعلاه ، واستخدمنا المتقلب مع أعلى قيمة متوسطة الماكرو في التطوير المحدد للتقييم في مجموعة الاختبار النهائية. تم إصلاح رتبة Lora في 32.
لاحظ أن النتائج التجريبية ليست دقيقة لأن التجارب يتم إجراؤها مرة واحدة فقط ذات قيمة بذور رقم عشوائي واحد ولا يتم إجراء التحقق من صحة تقسيم. لذلك ، يرجى عدم الوثوق بشكل مفرط بالنتائج أدناه ، ولكن يرجى إلقاء نظرة عليها كمرجع فقط.
وتظهر النتائج في الجدول أدناه. يتم ترتيب النتائج التجريبية بترتيب تنازلي لقيمة متوسط الماكرو. يمكن عرض جميع النتائج اللاحقة من ملف CSV المخزّن في دليل results .
| دقة | دقة | يتذكر | F1 | |
|---|---|---|---|---|
| RINNA/اليابانية-GPT-NEOX-3.6B-instruction-SFT-V2 | 97.96 | 97.77 | 97.76 | 97.75 |
| RINNA/اليابانية-GPT-NEOX-3.6B | 97.55 | 97.24 | 97.39 | 97.30 |
| RINNA/اليابانية-GPT-NEOX-3.6B-instruction-SFT | 97.55 | 97.32 | 97.27 | 97.27 |
| RINNA/اليابانية-GPT-NEOX-3.6B-instruction-PPO | 97.55 | 97.03 | 97.37 | 97.18 |
| Cyberagent/Open-Calm-7b | 97.01 | 96.76 | 96.42 | 96.55 |
| Cyberagent/Open-Calm-3b | 96.88 | 96.38 | 96.51 | 96.42 |
| Cyberagent/Open-Calm-1B | 94.43 | 94.24 | 93.80 | 93.98 |
من الجدول ، يمكننا أن نرى أن التوجيه الذي تم ضبطه rinna/japanese-gpt-neox-3.6b-instruction-sft-v2 أظهر أعلى قيمة F. من ناحية أخرى ، فإن النموذج الكبير نسبيًا عند 7B ، يحتوي cyberagent/open-calm-7b على قيمة F أقل قليلاً. من أجل تحسين الأداء ، قد يكون من الضروري ضبطه أكثر من ذلك بقليل ، مثل Rola's R وغيرها من الفقرات العالية.
بالمناسبة ، فإن قيمة F لـ rinna/japanese-gpt-neox-3.6b-instruction-sft-v2 هي 97.75 ، وهي أعلى من قيمة F studio-ousia/luke-japanese-large-lite والتي حققت أعلى أداء في تعليمي تصنيف النص باستخدام 97.47 ، الذي تم تنفيذه بواسطة المؤلف. بالطبع ، يختلف عدد المعلمات في النموذج حوالي 9 مرات ، لذلك لا يمكن أن يكون مقارنة بسيطة ، ولكن إذا كنت ترغب في متابعة أداء تصنيف النص ، فإن استخدام LLM+Lora كبديل لـ BERT قد يكون خيارًا جيدًا.
بعد ذلك ، يتم عرض rinna/japanese-gpt-neox-3.6b-instruction-sft-v2 rinna/japanese-gpt-neox-3.6b قالب للنماذج التمثيلية الثلاثة في cyberagent/open-calm-7b التجربة في الجدول أدناه.
| نموذج | فال. F1 | F1 | |
|---|---|---|---|
| RINNA/اليابانية-GPT-NEOX-3.6B-instruction-SFT-V2 | 2 | 97.27 | 97.75 |
| RINNA/اليابانية-GPT-NEOX-3.6B-instruction-SFT-V2 | 1 | 97.18 | 97.14 |
| RINNA/اليابانية-GPT-NEOX-3.6B-instruction-SFT-V2 | 0 | 97.05 | 96.80 |
| RINNA/اليابانية-GPT-NEOX-3.6B | 1 | 97.14 | 97.30 |
| RINNA/اليابانية-GPT-NEOX-3.6B | 2 | 96.92 | 97.36 |
| RINNA/اليابانية-GPT-NEOX-3.6B | 0 | 96.61 | 96.69 |
| Cyberagent/Open-Calm-7b | 1 | 97.22 | 96.55 |
| Cyberagent/Open-Calm-7b | 0 | 97.07 | 96.56 |
| Cyberagent/Open-Calm-7b | 2 | 96.88 | 96.85 |
بشكل عام ، تتأثر قدرة الاستدلال على LLM بشكل كبير بالقالب (موجه). من ناحية أخرى ، نظرًا لأن هذه التجربة ليست إعدادًا يشبه الصفر/القليل ، فمن المتوقع أن يتم تقليل اختلافات الأداء بسبب القوالب إلى حد ما. ومع ذلك ، أظهرت النتائج أن القالب قد أنتج سابقًا فرقًا معينًا في قيم F (حوالي نقطة واحدة في قيم F). template_type=0 هو قالب معقد نسبيًا ، template_type=2 هو قالب بسيط يتم تسلسله ببساطة مع فواصل الخط ، ولكن يمكن أن نرى أن template_type=2 يميل إلى الحصول على أداء أفضل. تعتبر المطالبات مهمة للغاية في إعدادات الصفر/القليلة ، ولكن إذا تمكنت من إجراء عمليات توصيلات دقيقة ، فقد يكون من الأفضل الحفاظ على المطالبات البسيطة قدر الإمكان.
بعد ذلك ، دعونا نلقي نظرة على أداء كل معدل تعليمي عندما يتم إصلاح النموذج على rinna/japanese-gpt-neox-3.6b و template_type على 2 .
| LR | فال. F1 | دقة | دقة | يتذكر | F1 |
|---|---|---|---|---|---|
| 5e-2 | 2.18 | 12.91 | 1.43 | 11.11 | 2.54 |
| 3e-2 | 2.18 | 12.91 | 1.43 | 11.11 | 2.54 |
| 1E-2 | 2.18 | 12.91 | 1.43 | 11.11 | 2.54 |
| 5e-3 | 24.78 | 32.20 | 36.30 | 30.27 | 28.21 |
| 3e-3 | 2.18 | 12.91 | 1.43 | 11.11 | 2.54 |
| 1E-3 | 96.92 | 97.69 | 97.51 | 97.27 | 97.36 |
| 5e-4 | 96.77 | 98.23 | 98.02 | 97.87 | 97.93 |
| 3e-4 | 96.74 | 96.88 | 96.46 | 96.21 | 96.30 |
| 1E-4 | 94.79 | 97.01 | 96.85 | 96.72 | 96.76 |
| 5e-5 | 94.28 | 95.92 | 95.73 | 95.50 | 95.58 |
| 3e-5 | 93.74 | 94.02 | 93.50 | 93.61 | 93.55 |
| 1E-5 | 78.94 | 81.25 | 80.21 | 79.43 | 79.62 |
من الطاولة ، يمكن ملاحظة أنه على الرغم من أن معدل التعلم الكبير إلى حد ما فعال للتعلم مع Lora ، فإن الحد الأعلى هو حوالي 1e-3 ، وإذا كنت تستخدم معدل تعليمي كبير جدًا مثل 1e-2 ، فلن يسير تعلمك جيدًا. أود أن أرى نتائج تجريبية على نموذج واسع ، ولكن عند التصنيف باستخدام LLM+Lora ، أعتقد أنه من الجيد تجربة معدل تعلم حوالي 5e-4 كخطوة أولى.
علاوة على ذلك ، دعونا نلقي نظرة على الاختلافات في الأداء لكل حجم دفعة عندما يتم تثبيت النموذج على rinna/japanese-gpt-neox-3.6b و template_type 2 و Lora r تم تثبيته على 32 .
| حجم الدُفعة | LR | فال. F1 | دقة | دقة | يتذكر | F1 |
|---|---|---|---|---|---|---|
| 2 | 5e-4 | 97.12 | 98.10 | 98.02 | 97.48 | 97.70 |
| 16 | 1E-3 | 97.12 | 97.83 | 97.77 | 97.37 | 97.52 |
| 32 | 1E-3 | 96.92 | 97.69 | 97.51 | 97.27 | 97.36 |
| 64 | 5e-4 | 96.57 | 97.55 | 97.39 | 97.35 | 97.35 |
| 4 | 5e-4 | 97.08 | 97.42 | 97.37 | 97.01 | 97.15 |
| 8 | 3e-4 | 97.20 | 97.28 | 96.99 | 96.87 | 96.91 |
يتم ترتيب هذا الجدول بترتيب تنازلي لقيم F. ونتيجة لذلك ، من المحتمل أن يكون هناك احتمال أن يتم إنتاج اختلافات في الأداء إلى حد ما حسب حجم الدفعة ، ولكن في هذه التجربة ، تم إجراء التجربة مرة واحدة فقط بقيمة بذور رقم عشوائي واحد ، لذلك يبدو من الصعب التوصل إلى استنتاج واضح. بشكل عام ، تستغرق أحجام الدُفعات الأصغر وقتًا أطول للتدريب وتميل إلى أن تكون غير مستقرة في الأداء ، لذلك قد يكون من الجيد ضبط حجم الدفعة إلى حوالي 16 أو 32 في الوقت الحالي.
أخيرًا ، دعونا نلقي نظرة على أداء Lora Per R عندما يتم تثبيت النموذج على rinna/japanese-gpt-neox-3.6b و template_type إلى 2 .
| لورا ص | LR | فال. F1 | دقة | دقة | يتذكر | F1 |
|---|---|---|---|---|---|---|
| 8 | 5e-4 | 97.45 | 97.15 | 96.97 | 96.75 | 96.83 |
| 64 | 1E-3 | 97.22 | 97.28 | 96.96 | 96.85 | 96.89 |
| 16 | 1E-3 | 97.20 | 97.69 | 97.59 | 97.27 | 97.38 |
| 4 | 3e-4 | 97.12 | 97.69 | 97.64 | 97.24 | 97.40 |
| 32 | 1E-3 | 96.92 | 97.69 | 97.51 | 97.27 | 97.36 |
نتيجة لذلك ، أشعر أنه لا يوجد الكثير من الارتباط بين قيم F في مجموعة التطوير وقيم F في مجموعة الاختبار. نظرًا لأن قيمة Lora's R هي "كلما كانت النموذج أكبر ، وكلما كانت القيمة أصغر" ، أعتقد أنه سيكون أكثر أمانًا لتعيينها على 32 أو أعلى بالنسبة إلى LLMs متوسطة الحجم من عدد قليل من B ، لكنني أرغب في تجربة المزيد من التجربة.
في هذا التنفيذ ، أجرينا تجربة باستخدام LLM لتصنيف النص التقليدي. نتيجة لذلك ، من خلال إجراء تعديلات دقيقة باستخدام LORA ، يمكننا تحقيق أداء عالي جدًا من خلال تعديل عدد صغير من المعلمات ، و "استخدام LLM كبديل لـ BERT" يمكن اعتباره خيارًا معقولًا. كان هناك أيضًا ميل للقوالب إلى التأثير على الأداء حتى عند وضع ضبط دقيق. علاوة على ذلك ، عند إجراء تعديلات دقيقة باستخدام LORA ، يجب ضبط معدل التعلم على قيمة كبيرة إلى حد ما ، ووجد أن قيمة المرتبة r تؤثر أيضًا على الأداء.
المؤلف: Hayato Tsukagoshi
البريد الإلكتروني: [email protected]
إذا كنت ترغب في الرجوع إلى هذا التنفيذ في ورقة ، وما إلى ذلك ، يرجى استخدام ما يلي:
@misc {
hayato-tsukagoshi-2023-llm-lora-classification,
title = { {Text Classification with LLMs and LoRA} } ,
author = { Hayato Tsukagoshi } ,
year = { 2023 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/hppRC/llm-lora-classification} } ,
url = { https://github.com/hppRC/llm-lora-classification } ,
}