Adaptors は、HuggingFace の Transformers へのアドオン ライブラリであり、トレーニングと推論のためのコーディング オーバーヘッドを最小限に抑えながら、10 を超えるアダプター メソッドを 20 を超える最先端の Transformer モデルに統合します。
アダプタは、効率的な微調整とモジュール式転移学習のための統合インターフェイスを提供し、完全精度または量子化トレーニング (例: Q-LoRA、Q-ボトルネック アダプタ、または Q-PrefixTuning)、タスク演算によるアダプタのマージなどの無数の機能をサポートします。構成ブロックを介した複数のアダプターの構成により、NLP タスクのパラメーター効率の高い転移学習における高度な研究が可能になります。
注:アダプターライブラリは、
adapter-transformers
パッケージを置き換えました。以前にトレーニングされたアダプターはすべて、新しいライブラリと互換性があります。移行については、https://docs.adapterhub.ml/transitioning.html をお読みください。
adapters
現在、 Python 3.8 以降およびPyTorch 1.10 以降をサポートしています。 PyTorch をインストールした後、PyPI からadapters
をインストールできます。
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" )))
もっと詳しく知る
Transformersの使用を開始するための HuggingFace の優れたドキュメントは、ここにあります。 adapters
トランスフォーマーと完全に互換性があります。
アダプターの使用を開始するには、次の場所を参照してください。
現在、アダプターには以下にリストされているすべてのアーキテクチャとメソッドが統合されています。
方法 | 用紙 | クイックリンク |
---|---|---|
ボトルネックアダプター | ホールズビーら。 (2019年) バプナとフィラット (2019) | クイックスタート、ノートブック |
アダプターフュージョン | ファイファーら。 (2021年) | ドキュメント: トレーニング、ノートブック |
マッドエックス、 反転可能なアダプター | ファイファーら。 (2020) | ノート |
アダプタードロップ | リュックルら。 (2021年) | ノート |
マッドエックス2.0、 埋め込みトレーニング | ファイファーら。 (2021年) | ドキュメント: 埋め込み、ノートブック |
プレフィックスチューニング | リーとリャン (2021) | ドキュメント |
パラレルアダプター、 組み合わせ可能なアダプター | 彼らは、 (2021年) | ドキュメント |
よりコンパクトに | マハバディら。 (2021年) | ドキュメント |
LoRA | 胡ら。 (2021年) | ドキュメント |
(IA)^3 | 劉ら。 (2022年) | ドキュメント |
ユニペルト | マオら。 (2022年) | ドキュメント |
即時チューニング | レスターら。 (2021年) | ドキュメント |
QLoRA | デットマースら。 (2023年) | ノート |
ReFT | ウーら。 (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
、ハブ インフラストラクチャ、およびアダプターハブ チームによってアップロードされたアダプターについては、最初の論文「AdapterHub: A Framework for Adapting 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}
}