"대형 언어 모델의 매개 변수 효율적인 미세 조정을위한 단계별 마스킹" 이 논문의 공식 구현 인 selective-peft-toolkit 에 오신 것을 환영합니다. 이 툴킷은 다른 선택적 파라미터 효율적인 미세 조정 (PEFT) 메소드를 사용하여 대형 언어 모델을 선택적으로 미세 조정하기위한 유연한 프레임 워크를 제공합니다.
툴킷에는 다음 PEFT 방법이 포함됩니다.
이러한 방법은 PIP를 통해 설치할 수있는 selective_optimizers 라는 패키지를 통해 노출됩니다.
pip install selective_optimizers선택적 최적화기 : 모델에서 예산이 책정 된 매개 변수를 선택적으로 업데이트하는 표준 최적화 (Torch.optim.optimizer의 서브 클래스) 주변의 포장지.
휴리스틱 기반 선택 : 선택적 최적화기는 다양한 휴리스틱 및 선택 전략에 따라 매개 변수를 업데이트합니다.
Transformers와의 통합 : 기존 파이프 라인에 쉽게 통합 할 수 있도록 변압기와 호환됩니다.
효율적인 스토리지 : O (b) 공간만을 차지하는 요약 객체에 수정 된 가중치를 저장합니다. 여기서 B는 예산입니다.
selective_optimizers 패키지를 설치하려면 간단히 실행하십시오.
pip install selective-optimizers다음은 선택적 최적화기를 사용한 교육을위한 기본 워크 플로입니다.
from selective_optimizers . wrap import get_selective_optimizer
from selective_optimizers . load_store import write_summary_to_disk
from torch . optim import AdamW
# Choose your base optimizer
opt = AdamW
# Specify the PEFT method to use (can be one of “fft”, “id3”, “bitfit”, or “pafi”)
peft_to_use = "id3"
# Get the selective optimizer class
optimizer_class = get_selective_optimizer ( opt , peft_to_use )
# Initialize the optimizer with additional selective parameters
optimizer = optimizer_class (
params = model . parameters (),
lr = 0.0001 ,
budget = 100000 ,
exp = 0 ,
eps = 1e-3 ,
max_steps = 1000
)
# Usual training loop
...
...
# Optional post-training work for validation
optimizer . post_train_work ()
print ( "Budget used:" , optimizer . get_budget_used ())
# Save the summary of modified weights
summary = optimizer . get_summary ( model )
write_summary_to_disk ( "path/to/summary.pth" , summary ) from selective_optimizers . load_store import load_summary_from_disk , load_weights_from_summary
# Load your model as usual
...
model = ...
...
# Load the summary from disk
summary = load_summary_from_disk ( "path/to/summary.pth" )
# Apply the modified weights from the summary to the model
load_weights_from_summary ( model , summary )
# Usual inference code
...
...Transformers.Trainer Class는 외부 최적화기를 수용하여 선택적 최적화기를 워크 플로에 쉽게 통합 할 수 있습니다.
우리는 selective_optimizers 패키지에 대한 기여를 환영합니다! 새로운 선택적 최적화기를 추가하려면 다음을 수행하십시오.
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.
연구 에서이 툴킷을 사용하는 경우, 우리의 논문을 인용하십시오.
@article{Agarwal2024_step_by_step,
title = {Step - by - Step Unmasking for Parameter - Efficient Fine - tuning of Large Language Models},
author = {Aradhye Agarwal and Suhas Kamasetty Ramesh and Ayan Sengupta and Tanmoy Chakraborty}
journal = {arXiv preprint arXiv: 2408 . 14470 },
year = { 2024 },
}
질문이나 문제가 있으시면 Github 저장소에서 문제를 자유롭게 열거나 직접 문의하십시오.