Adapters เป็นไลบรารีส่วนเสริมของ Transformers ของ HuggingFace ซึ่งรวมวิธีการของอะแดปเตอร์มากกว่า 10 รายการเข้ากับโมเดล Transformer ที่ล้ำสมัยกว่า 20 รุ่น โดยมีค่าใช้จ่ายด้านการเขียนโค้ดน้อยที่สุดสำหรับการฝึกอบรมและการอนุมาน
อะแดปเตอร์ มอบอินเทอร์เฟซแบบรวมสำหรับการปรับแต่งที่มีประสิทธิภาพและการเรียนรู้การถ่ายโอนแบบโมดูลาร์ รองรับคุณสมบัติมากมาย เช่น การฝึกอบรมที่มีความแม่นยำเต็มรูปแบบหรือเชิงปริมาณ (เช่น Q-LoRA, อะแดปเตอร์ Q-Bottleneck หรือ Q-PrefixTuning) อะแดปเตอร์ที่ผสานผ่านการคำนวณงานหรือ องค์ประกอบของอะแดปเตอร์หลายตัวผ่านบล็อกองค์ประกอบ ช่วยให้สามารถวิจัยขั้นสูงในการเรียนรู้การถ่ายโอนที่มีประสิทธิภาพตามพารามิเตอร์สำหรับงาน NLP
หมายเหตุ : ไลบรารี Adapters ได้แทนที่แพ็คเกจ
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
เข้ากันได้กับ Transformers อย่างสมบูรณ์
หากต้องการเริ่มต้นใช้งานอะแดปเตอร์ โปรดดูตำแหน่งเหล่านี้:
ปัจจุบัน อะแดปเตอร์รวมสถาปัตยกรรมและวิธีการทั้งหมดตามรายการด้านล่าง:
วิธี | เอกสาร) | ลิงค์ด่วน |
---|---|---|
อะแดปเตอร์คอขวด | ฮูลสบี้ และคณะ (2019) บัพนาและฟิรัต (2019) | การเริ่มต้นอย่างรวดเร็ว โน้ตบุ๊ก |
อะแดปเตอร์ฟิวชั่น | ไฟเฟอร์ และคณะ (2021) | เอกสาร: การฝึกอบรม สมุดบันทึก |
แมด-X, อะแดปเตอร์แบบพลิกกลับได้ | ไฟเฟอร์ และคณะ (2020) | โน๊ตบุ๊ค |
อะแดปเตอร์ดรอป | ริกเคิล และคณะ (2021) | โน๊ตบุ๊ค |
แมด-X 2.0, ฝังการฝึกอบรม | ไฟเฟอร์ และคณะ (2021) | เอกสาร: การฝัง, สมุดบันทึก |
การปรับแต่งคำนำหน้า | หลี่และเหลียง (2021) | เอกสาร |
อะแดปเตอร์แบบขนาน, อะแดปเตอร์แบบมิกซ์แอนด์แมตช์ | เขาและคณะ (2021) | เอกสาร |
เครื่องอัด | มหาบาดี และคณะ (2021) | เอกสาร |
โลรา | หูและคณะ (2021) | เอกสาร |
(ไอโอวา)^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 และอะแดปเตอร์ที่อัปโหลดโดยทีม 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}
}