Adaptor adalah pustaka tambahan untuk Transformers HuggingFace, yang mengintegrasikan 10+ metode adaptor ke dalam 20+ model Transformer canggih dengan overhead pengkodean minimal untuk pelatihan dan inferensi.
Adaptor menyediakan antarmuka terpadu untuk penyesuaian yang efisien dan pembelajaran transfer modular, mendukung berbagai fitur seperti pelatihan presisi penuh atau terkuantisasi (misalnya Q-LoRA, Q-Bottleneck Adapters, atau Q-PrefixTuning), penggabungan adaptor melalui aritmatika tugas atau komposisi beberapa adaptor melalui blok komposisi, memungkinkan penelitian lanjutan dalam pembelajaran transfer parameter-efisien untuk tugas-tugas NLP.
Catatan : Pustaka Adaptor telah menggantikan paket
adapter-transformers
. Semua adaptor yang dilatih sebelumnya kompatibel dengan perpustakaan baru. Untuk transisi, harap baca: https://docs.adapterhub.ml/transitioning.html.
adapters
saat ini mendukung Python 3.8+ dan PyTorch 1.10+ . Setelah menginstal PyTorch, Anda dapat menginstal adapters
dari PyPI ...
pip install -U adapters
... atau dari sumber dengan mengkloning repositori:
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 )
Pelajari Lebih Lanjut
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...
Pelajari Lebih Lanjut
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 )
Pelajari Lebih Lanjut
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" )))
Pelajari Lebih Lanjut
Dokumentasi hebat HuggingFace tentang memulai Transformers dapat ditemukan di sini. adapters
sepenuhnya kompatibel dengan Transformers .
Untuk memulai dengan adaptor, lihat lokasi berikut:
Saat ini, adaptor mengintegrasikan semua arsitektur dan metode yang tercantum di bawah:
Metode | Dokumen) | Tautan Cepat |
---|---|---|
Adaptor kemacetan | Houlsby dkk. (2019) Bapna dan Firat (2019) | Mulai cepat, Buku Catatan |
AdaptorFusion | Pfeiffer dkk. (2021) | Dokumen: Pelatihan, Buku Catatan |
MAD-X, Adaptor yang dapat dibalik | Pfeiffer dkk. (2020) | Buku catatan |
Jatuhkan Adaptor | Rücklé dkk. (2021) | Buku catatan |
MAD-X 2.0, Menanamkan pelatihan | Pfeiffer dkk. (2021) | Dokumen: Sematan, Buku Catatan |
Penyetelan Awalan | Li dan Liang (2021) | dokumen |
Adaptor paralel, Adaptor Padu padan | Dia dkk. (2021) | dokumen |
Pemadatan | Mahabadi dkk. (2021) | dokumen |
LoRA | Hu dkk. (2021) | dokumen |
(IA)^3 | Liu dkk. (2022) | dokumen |
UniPELT | Mao dkk. (2022) | dokumen |
Penyetelan Cepat | Lester dkk. (2021) | dokumen |
QLoRA | Dettmers dkk. (2023) | Buku catatan |
Kembali | Wu dkk. (2024) | dokumen |
Aritmatika Tugas Adaptor | Chronopoulou dkk. (2023) Zhang dkk. (2023) | Dokumen, Buku Catatan |
Saat ini kami mendukung versi PyTorch dari semua model yang tercantum di halaman Ikhtisar Model dalam dokumentasi kami.
Untuk mulai mengembangkan sendiri Adaptor dan mempelajari lebih lanjut tentang cara berkontribusi, silakan lihat https://docs.adapterhub.ml/contributing.html.
Jika Anda menggunakan Adaptor dalam pekerjaan Anda, harap pertimbangkan untuk mengutip makalah perpustakaan kami: Adaptor: Perpustakaan Terpadu untuk Pembelajaran Transfer Modular dan Efisien Parameter
@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",
}
Sebagai alternatif, untuk adapter-transformers
pendahulunya, infrastruktur Hub, dan adaptor yang diunggah oleh tim AdapterHub, harap pertimbangkan untuk mengutip makalah awal kami: AdapterHub: Kerangka Kerja untuk Adaptasi Transformers
@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}
}