
لقد أضفنا نقاط التفتيش في وجه المعانقة لسهولة التكاثر!
لقد أضفنا continual_pretrain.ipynb كمثال قائمة بذاتها لسيناريو تخزينها الناعم. إنه يعمل بشكل جيد بدون وحدات معالجة الرسومات!
يمكن أن يعمل كاسفة النعومة أيضًا في صقل دقيق مستمر تقليدي . تحقق من أحدث ورقة EMNLP23!
أتساءل عما إذا كان يمكنك تكييف LLM Box-Box دون القلق بشأن تحديث معلماتها؟ تحقق من آخر ورقة لدينا في جيل الاسترجاع المقيد (خرقة) هنا!
في عام 2021 ، قدمنا Pycontinual ، وهو إطار مباشر ومرن للتعلم المستمر. استفاد بحثنا بشكل كبير من هذا الإطار. اليوم ، نحن متحمسون لمشاركة Continuallm ، وهو إطار تعليمي مستمر قابل للتمديد يركز على نماذج اللغة (LMS) ، المصمم للحفاظ على فوائد التعلم المستمر (CL) في هذا المجال.
التعلم المستمر لـ LMS يختلف عن CL التقليدية بسبب
يتضمن مستودعنا تنفيذ Pytorch لمجموعة من أساليب أحدث (SOTA) ، باستخدام نفس خط أنابيب التدريب والتقييم. يلتزم هذا المستودع بالتقدم في مجال التعلم المستمر لـ LMS. الأساليب المدرجة هي:
من مجموعتنا:
من مجموعات أخرى (المزيد قادمة) :
خطوط الأساس العاملة على نطاق واسع للتعلم المستمر:
لقد أضفنا continual_pretrain.ipynb كمثال قائمة بذاتها لسيناريو تخزينها الناعم. إنه يعمل بشكل جيد بدون وحدات معالجة الرسومات!
عندما يتعلق الأمر بالتعلم المستمر لنماذج اللغة (LMS) ، فإن العثور على مجموعات البيانات المناسبة أمر بالغ الأهمية. مجموعات البيانات التي نقدمها الالتزام بالمبادئ التالية:
نقوم بإصدار مجموعة البيانات الخاصة بنا التي تضم 6 مجالات مميزة ، كل منها مصحوب بمهمين نهائي المقابل. يمكن العثور على مجموعة البيانات هنا. فيما يلي بعض الإحصائيات لكل مجال:
| كوربوس المجال | مقاس | نهاية المهمة | مهمة | #تمرين | #اختبار | #classes |
|---|---|---|---|---|---|---|
| مطعم Yelp | 758 ميجابايت | مطعم | تصنيف مشاعر الجانب (ASC) | 3452 | 1،120 | 3 |
| هاتف أمازون | 724 ميجابايت | هاتف | تصنيف مشاعر الجانب (ASC) | 239 | 553 | 2 |
| كاميرا الأمازون | 319 ميجابايت | آلة تصوير | تصنيف مشاعر الجانب (ASC) | 230 | 626 | 2 |
| أوراق ACL | 867 ميجابايت | ACL | تصنيف نية الاقتباس | 1520 | 421 | 6 |
| أوراق الذكاء الاصطناعي | 507 ميجابايت | منظمة العفو الدولية | تصنيف العلاقة | 2،260 | 2،388 | 7 |
| أوراق PubMed | 989MB | PubMed | التنبؤ بالتفاعل بين البروتين الكيميائي | 2667 | 7،398 | 13 |
بنية الاستمرارية تتبع إلى حد كبير هيكل pycontinual و CPT و DGA.
conda create --name continuallm --file requirements.txt
transformers==4.17.0 و adapter-transformers==3.0.1 . نوصي باستخدام هذه الإصدارات المحددة ، لأن استخدام الإصدارات الأخرى قد يؤدي إلى أخطاء غير متوقعة.
هذا هو المكان الذي يحدث فيه التعلم المستمر. سوف نتعلم sequnce من المجالات.
max_samples=640000
for idrandom in 0
do
for pt_task in 0 1 2 3 4 5
do
python -m torch.distributed.launch --nproc_per_node 4 --use_env posttrain.py
--per_device_train_batch_size 62
--fp16
--max_seq_length 164
--max_samples ${max_samples}
--idrandom ${idrandom}
--ntasks 6
--pt_task ${pt_task}
--baseline ' das '
done
done --idrandom : اختر تسلسل المهمة. انظر ./sequences لمزيد من التفاصيل.--baseline : راجع مقدمة النماذج الأساسية المتاحة (انظر choices في config.py ). بعد التعلم المخروطي لـ LMS ، أصبحنا الآن قادرين على تقييم الأداء عن طريق تشغيل عملية ضبط المهام النهائية بشكل فردي .
max_samples=640000
seed=(2021 111 222 333 444 555 666 777 888 999)
for round in 0 ; do
for idrandom in 0 ;
do
for pt_task in 0 1 2 3 4 5
do
for ft_task in $( seq 0 ${pt_task} ) ;
do
python finetune.py
--max_seq_length 164
--pt_task ${pt_task}
--ft_task ${ft_task}
--idrandom ${idrandom}
--ntasks 6
--max_samples ${max_samples}
--seed ${seed[$round]}
--baseline ' das '
done
done
done
done بالنسبة لأولئك المهتمين فقط في النموذج الناتج أو يرغبون في متابعة كل تدريب النموذج مع بياناتهم الخاصة ، لدينا أخبار جيدة! نحن نقدم نقاط التفتيش من خلال معانقة الوجه.
يمكنك بسهولة استيراد نموذجنا المستمر بعد التدريب مع transformers Huggingface!
import torch
from transformers import AutoTokenizer , AutoModelForSequenceClassification
# Import our model. The package will take care of downloading the models automatically
tokenizer = AutoTokenizer . from_pretrained ( "UIC-Liu-Lab/DAS-Rest2Cam" )
model = AutoModelForSequenceClassification . from_pretrained ( "UIC-Liu-Lab/DAS-Rest2Cam" , trust_remote_code = True )
# Tokenize input texts
texts = [
"There's a kid on a skateboard." ,
"A kid is skateboarding." ,
"A kid is inside the house."
]
inputs = tokenizer ( texts , padding = True , truncation = True , return_tensors = "pt" )
# Get the model output!
res = model ( ** inputs ) إذا واجهت أي مشكلة عند تحميل النماذج مباشرة عن طريق واجهة برمجة تطبيقات HuggingFace ، فيمكنك أيضًا تنزيل النماذج يدويًا من repo واستخدام model = AutoModel.from_pretrained({PATH TO THE DOWNLOAD MODEL}) .
التسلسل المستمر قبل التدريب هو التسلسل الأول في ./sequences/posttrain (من مطعم إلى كاميرا ) ، يمكنك استخدام الأوزان التي تم تنزيلها لضبط المهام النهائية المقابلة.
إذا كنت مهتمًا بملفات الأهمية ، فيرجى الرجوع إلى before_distill0 و after_mlm{domain_id} . before أن يدل على الأهمية المحسوبة قبل التدريب المسبق ، والذي يتم مرة واحدة فقط قبل المجال الأول للمعرفة العامة التي تم تدريبها. after يشير إلى الأهمية المحسوبة بعد التدريب المسبق لـ Domain_id.
نحن نقدر تقديرك بشدة في التحديق والإشارة إلى. انتباهك بالتفاصيل والاعتراف بتقدير كبير.
@inproceedings { ke2022dgs ,
title = { Continual Learning of Language Models } , author = { Ke, Zixuan and Shao, Yijia and Lin, Haowei and Konishi, Tatsuya and Kim, Gyuhak and Liu, Bing } , booktitle = { International Conference on Learning Representations (ICLR) } , year = { 2023 } }
@inproceedings { ke2022dga ,
title = { Adapting a Language Model While Preserving its General Knowledge } , author = { Ke, Zixuan and Shao, Yijia and Lin, Haowei and Xu, Hu and Shu, Lei, and Liu, Bing } , booktitle = { Empirical Methods in Natural Language Processing (EMNLP) } , year = { 2022 } }
@inproceedings { ke2022continual ,
title = { Continual Training of Language Models for Few-Shot Learning } , author = { Ke, Zixuan and Lin, Haowei and Shao, Yijia and Xu, Hu and Shu, Lei, and Liu, Bing } , booktitle = { Empirical Methods in Natural Language Processing (EMNLP) } , year = { 2022 } } إذا كان لديك أي أسئلة بخصوص الكود ، فلا تتردد في إرسال بريد إلكتروني إلى Zixuan Ke أو Yijia Shao أو Haowei Lin. بدلاً من ذلك ، يمكنك فتح مشكلة. نود أن نعرب عن امتناننا ل Bing Liu و Hu Xu و Lei Shu للحصول على تعليقاتهم وآرائهم القيمة