Adapters 는 HuggingFace Transformers의 추가 기능 라이브러리로, 교육 및 추론을 위한 코딩 오버헤드를 최소화하면서 10개 이상의 어댑터 메서드를 20개 이상의 최첨단 Transformer 모델에 통합합니다.
Adapters는 효율적인 미세 조정 및 모듈식 전이 학습을 위한 통합 인터페이스를 제공하여 완전 정밀도 또는 양자화된 훈련(예: Q-LoRA, Q-Bottleneck Adapters 또는 Q-PrefixTuning), 작업 산술을 통한 어댑터 병합 또는 양자화 훈련과 같은 수많은 기능을 지원합니다. 구성 블록을 통해 여러 어댑터를 구성하여 NLP 작업을 위한 매개변수 효율적인 전이 학습에 대한 고급 연구를 가능하게 합니다.
참고 : Adapters 라이브러리는
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
Transformers 와 완벽하게 호환됩니다.
어댑터를 시작하려면 다음 위치를 참조하세요.
현재 어댑터는 아래 나열된 모든 아키텍처와 방법을 통합합니다.
방법 | 서류) | 빠른 링크 |
---|---|---|
병목 현상 어댑터 | Houlsbyet al. (2019) 밥나와 피라트 (2019) | 빠른 시작, 노트북 |
어댑터퓨전 | Pfeifferet al. (2021) | 문서: 교육, 노트북 |
매드엑스, 반전 가능한 어댑터 | Pfeifferet al. (2020) | 공책 |
어댑터 드롭 | Rückleet al. (2021) | 공책 |
매드-X 2.0, 임베딩 훈련 | Pfeifferet al. (2021) | 문서: 임베딩, 노트북 |
접두사 튜닝 | 리 앤 리앙 (2021) | 문서 |
병렬 어댑터, 믹스 앤 매치 어댑터 | 그 외 여러분. (2021) | 문서 |
더 컴팩트하다 | Mahabadiet al. (2021) | 문서 |
로라 | Huet al. (2021) | 문서 |
(IA)^3 | Liu et al. (2022) | 문서 |
유니펠트 | Maoet al. (2022) | 문서 |
프롬프트 튜닝 | Lesteret al. (2021) | 문서 |
QLoRA | Dettmerset al. (2023) | 공책 |
REFT | Wuet al. (2024) | 문서 |
어댑터 작업 산술 | Chronopoulouet al. (2023) Zhang et al. (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 팀이 업로드한 어댑터의 경우 당사의 초기 문서인 AdapterHub: 변압기 적응을 위한 프레임워크를 인용하는 것을 고려해 보십시오.
@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}
}