ليس منتج Google الرسمي.
Bigbird ، هو محول قائم على الالتحاق بتفريخ يمتد النماذج القائمة على المحولات ، مثل BERT إلى تسلسل أطول بكثير. علاوة على ذلك ، يأتي Bigbird جنبا إلى جنب مع فهم نظري لقدرات محول كامل يمكن أن يتعامل معه النموذج المتناثر.
كنتيجة للقدرة على التعامل مع السياق الأطول ، يحسن Bigbird بشكل كبير الأداء في مختلف مهام NLP مثل الإجابة على الأسئلة والتلخيص.
يمكن العثور على مزيد من التفاصيل والمقارنات في عرضنا.
إذا وجدت هذا مفيدًا ، فيرجى الاستشهاد بورقة Neurips 2020:
@article{zaheer2020bigbird,
title={Big bird: Transformers for longer sequences},
author={Zaheer, Manzil and Guruganesh, Guru and Dubey, Kumar Avinava and Ainslie, Joshua and Alberti, Chris and Ontanon, Santiago and Pham, Philip and Ravula, Anirudh and Wang, Qifan and Yang, Li and others},
journal={Advances in Neural Information Processing Systems},
volume={33},
year={2020}
}
الدليل الأكثر أهمية هو core . هناك ثلاثة ملفات رئيسية في core .
يتم توفير مظاهرة سريعة للضغط لتصنيف النص في imdb.ipynb
يرجى إنشاء مشروع أولاً وإنشاء مثيل في منطقة تحتوي على حصص على النحو التالي
gcloud compute instances create
bigbird
--zone=europe-west4-a
--machine-type=n1-standard-16
--boot-disk-size=50GB
--image-project=ml-images
--image-family=tf-2-3-1
--maintenance-policy TERMINATE
--restart-on-failure
--scopes=cloud-platform
gcloud compute tpus create
bigbird
--zone=europe-west4-a
--accelerator-type=v3-32
--version=2.3.1
gcloud compute ssh --zone " europe-west4-a " " bigbird "
للتوضيح ، استخدمنا اسم المثيل bigbird و Zone europe-west4-a ، لكن لا تتردد في تغييرها. يمكن العثور على مزيد من التفاصيل حول إنشاء Google Cloud TPU في المستندات عبر الإنترنت.
git clone https://github.com/google-research/bigbird.git
cd bigbird
pip3 install -e .يمكنك العثور على نقاط تفتيش مسبقة ومكلفة في دلو Google Cloud Storage.
اختياريا ، يمكنك تنزيلها باستخدام gsutil AS
mkdir -p bigbird/ckpt
gsutil cp -r gs://bigbird-transformer/ bigbird/ckpt/يحتوي دلو التخزين على:
bigbr_base ) وحجم كبير ( bigbr_large ). إنه يتوافق مع نماذج تشفير Bert/Roberta فقط. بعد تنفيذ Bert و Roberta الأصليين ، يكونون محولات مع طبيعية ، أي قاعدة طبقة يحدث بعد طبقة الانتباه. ومع ذلك ، بعد Rothe et al ، يمكننا استخدامها جزئيًا في أزياء التشفير والرفض عن طريق اقتران معلمات التشفير والترميز ، كما هو موضح في برنامج BigBird/Sumparization/Roberta_Base.sh.bigbp_large ). مرة أخرى بعد التنفيذ الأصلي لـ Pegasus ، فهي محولات مع تمييز ما قبل الطبيعية. لديهم مجموعة كاملة من أوزان ترميز التشفير المنفصل. أيضًا لمجموعات بيانات تلخيص المستندات الطويلة ، قمنا بتحويل نقاط تفتيش Pegasus ( model.ckpt-0 ) لكل مجموعة بيانات ، كما قدمنا نقاط تفتيش تم ضبطها ( model.ckpt-300000 ) التي تعمل على مستندات أطول.tf.SavedModel لتلخيص المستند الطويل والتي يمكن استخدامها مباشرة للتنبؤ والتقييم كما هو موضح في كولاب nootebook. لبدء بسرعة مع Bigbird ، يمكن للمرء أن يبدأ تشغيل رمز تجربة التصنيف في دليل classifier . لتشغيل الرمز ببساطة يتم تنفيذها
export GCP_PROJECT_NAME=bigbird-project # Replace by your project name
export GCP_EXP_BUCKET=gs://bigbird-transformer-training/ # Replace
sh -x bigbird/classifier/base_size.shلاستخدام التشفير مباشرة بدلاً من قول نموذج BERT ، يمكننا استخدام الكود التالي.
from bigbird . core import modeling
bigb_encoder = modeling . BertModel (...)يمكن أن تحل بسهولة محل تشفير Bert.
بدلاً من ذلك ، يمكن للمرء أيضًا محاولة اللعب بطبقات من تشفير Bigbird
from bigbird . core import encoder
only_layers = encoder . EncoderStack (...) يتم شرح جميع الأعلام والتكوين في core/flags.py . هنا نوضح بعض المعاملات التكوين المهمة.
يتم استخدام attention_type لتحديد نوع الاهتمام الذي نستخدمه. ضبطه على block_sparse يدير وحدة انتباه Bigbird.
flags . DEFINE_enum (
"attention_type" , "block_sparse" ,
[ "original_full" , "simulated_sparse" , "block_sparse" ],
"Selecting attention implementation. "
"'original_full': full attention from original bert. "
"'simulated_sparse': simulated sparse attention. "
"'block_sparse': blocked implementation of sparse attention." ) يتم استخدام block_size لتحديد حجم الكتل ، في حين يتم استخدام num_rand_blocks لتعيين عدد الكتل العشوائية. يستخدم الكود حاليًا حجم نافذة 3 كتل وكتلين عالميين. الرمز الحالي يدعم فقط الموترات الثابتة.
نقاط مهمة يجب ملاحظة:
original_full لأنه لا توجد فائدة في استخدام اهتمام Bigbird المتفرق. في الآونة الأخيرة ، قدمت Long Range Arena معيارًا من ست مهام تتطلب سياقًا أطول ، وأجرى تجاربًا لقياس جميع المحولات طويلة المدى الحالية. وترد النتائج أدناه. نموذج Bigbird ، على عكس نظرائه ، يقلل بوضوح من استهلاك الذاكرة دون التضحية بالأداء.
