المحولات عبارة عن مكتبة إضافية لمحولات HuggingFace، حيث تدمج أكثر من 10 طرق محول في أكثر من 20 نموذجًا متطورًا للمحولات مع الحد الأدنى من تكاليف الترميز للتدريب والاستدلال.
توفر المحولات واجهة موحدة للضبط الدقيق الفعال وتعلم النقل المعياري، ودعم عدد لا يحصى من الميزات مثل الدقة الكاملة أو التدريب الكمي (على سبيل المثال Q-LoRA، أو Q-Bottleneck محولات، أو Q-PrefixTuning)، أو دمج المحول عبر حسابات المهام أو تكوين محولات متعددة عبر كتل التركيب، مما يسمح بإجراء بحث متقدم في تعلم نقل المعلمات بكفاءة لمهام البرمجة اللغوية العصبية.
ملاحظة : استبدلت مكتبة المحولات حزمة
adapter-transformers
. كافة المحولات التي تم تدريبها مسبقًا متوافقة مع المكتبة الجديدة. للانتقال، يرجى قراءة: https://docs.adapterhub.ml/transitioning.html.
تدعم adapters
حاليًا Python 3.8+ و PyTorch 1.10+ . بعد تثبيت PyTorch، يمكنك تثبيت adapters
من PyPI ...
pip install -U adapters
... أو من المصدر عن طريق استنساخ المستودع:
git clone https://github.com/adapter-hub/adapters.git
cd adapters
pip install .
from adapters import AutoAdapterModel
from transformers import AutoTokenizer
model = AutoAdapterModel . from_pretrained ( "roberta-base" )
tokenizer = AutoTokenizer . from_pretrained ( "roberta-base" )
model . load_adapter ( "AdapterHub/roberta-base-pf-imdb" , source = "hf" , set_active = True )
print ( model ( ** tokenizer ( "This works great!" , return_tensors = "pt" )). logits )
يتعلم أكثر
import adapters
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification . from_pretrained ( "t5-base" )
adapters . init ( model )
model . add_adapter ( "my_lora_adapter" , config = "lora" )
model . train_adapter ( "my_lora_adapter" )
# Your regular training loop...
يتعلم أكثر
from adapters import ConfigUnion , PrefixTuningConfig , ParBnConfig , AutoAdapterModel
model = AutoAdapterModel . from_pretrained ( "microsoft/deberta-v3-base" )
adapter_config = ConfigUnion (
PrefixTuningConfig ( prefix_length = 20 ),
ParBnConfig ( reduction_factor = 4 ),
)
model . add_adapter ( "my_adapter" , config = adapter_config , set_active = True )
يتعلم أكثر
from adapters import AdapterSetup , AutoAdapterModel
import adapters . composition as ac
model = AutoAdapterModel . from_pretrained ( "roberta-base" )
qc = model . load_adapter ( "AdapterHub/roberta-base-pf-trec" )
sent = model . load_adapter ( "AdapterHub/roberta-base-pf-imdb" )
with AdapterSetup ( ac . Parallel ( qc , sent )):
print ( model ( ** tokenizer ( "What is AdapterHub?" , return_tensors = "pt" )))
يتعلم أكثر
يمكن العثور على وثائق HuggingFace الرائعة حول بدء استخدام Transformers هنا. adapters
متوافقة تماما مع المحولات .
لبدء استخدام المحولات، راجع هذه المواقع:
حاليًا، تدمج المحولات جميع البنى والطرق المذكورة أدناه:
طريقة | الورق (الأوراق) | روابط سريعة |
---|---|---|
محولات عنق الزجاجة | هولسبي وآخرون. (2019) بابنا وفرات (2019) | بداية سريعة، دفتر |
محول فيوجن | فايفر وآخرون. (2021) | المستندات: التدريب، دفتر الملاحظات |
ماد-X, محولات عكسية | فايفر وآخرون. (2020) | دفتر الملاحظات |
AdapterDrop | روكلي وآخرون. (2021) | دفتر الملاحظات |
ماد-إكس 2.0, التدريب على التضمين | فايفر وآخرون. (2021) | المستندات: التضمينات، دفتر الملاحظات |
ضبط البادئة | لي وليانغ (2021) | المستندات |
محولات متوازية, محولات المزيج والمطابقة | هو وآخرون. (2021) | المستندات |
ضاغطة | مهابادي وآخرون. (2021) | المستندات |
لورا | هو وآخرون. (2021) | المستندات |
(IA) ^ 3 | ليو وآخرون. (2022) | المستندات |
يونيبيلت | ماو وآخرون. (2022) | المستندات |
ضبط سريع | ليستر وآخرون. (2021) | المستندات |
كلورا | ديتميرز وآخرون. (2023) | دفتر الملاحظات |
إعادة تحويل الأموال | وو وآخرون. (2024) | المستندات |
حسابات مهمة المحول | كرونوبولو وآخرون. (2023) تشانغ وآخرون. (2023) | المستندات، دفتر الملاحظات |
نحن ندعم حاليًا إصدارات PyTorch لجميع النماذج المدرجة في صفحة نظرة عامة على النموذج في وثائقنا.
لبدء تطوير المحولات بنفسك ومعرفة المزيد حول طرق المساهمة، يرجى الاطلاع على https://docs.adapterhub.ml/contributing.html.
إذا كنت تستخدم المحولات في عملك، فيرجى التفكير في الاستشهاد بورق مكتبتنا: المحولات: مكتبة موحدة لتعلم النقل المعياري والفعال للمعلمات
@inproceedings{poth-etal-2023-adapters,
title = "Adapters: A Unified Library for Parameter-Efficient and Modular Transfer Learning",
author = {Poth, Clifton and
Sterz, Hannah and
Paul, Indraneil and
Purkayastha, Sukannya and
Engl{"a}nder, Leon and
Imhof, Timo and
Vuli{'c}, Ivan and
Ruder, Sebastian and
Gurevych, Iryna and
Pfeiffer, Jonas},
booktitle = "Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
month = dec,
year = "2023",
address = "Singapore",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.emnlp-demo.13",
pages = "149--160",
}
وبدلاً من ذلك، بالنسبة adapter-transformers
السابقة، والبنية الأساسية لـ Hub والمحولات التي تم تحميلها بواسطة فريق محولات Hub، يرجى مراعاة الاستشهاد بمقالتنا الأولية: محول Hub: إطار عمل لتكييف المحولات
@inproceedings{pfeiffer2020AdapterHub,
title={AdapterHub: A Framework for Adapting Transformers},
author={Pfeiffer, Jonas and
R{"u}ckl{'e}, Andreas and
Poth, Clifton and
Kamath, Aishwarya and
Vuli{'c}, Ivan and
Ruder, Sebastian and
Cho, Kyunghyun and
Gurevych, Iryna},
booktitle={Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations},
pages={46--54},
year={2020}
}