AsymmetryLoRA
1.0.0
? arxiv preprint
이 repo는 "Foundation Model의 저급 어댑터에서 비대칭"용지 코드를 호스팅합니다. 우리는 LORA 어댑터 행렬 B 및 A 의 비대칭을 발견하고 분석합니다.
1 단계 : 설치 단계를 따르십시오. 먼저 Pytorch가 설치되어 있는지 확인하십시오.
pip3 install torch==1.13.0 torchvision
2 단계 : 필요한 나머지 패키지를 설치하십시오.
cd AsymmetryLoRA
pip install -r requirement.txt
우리의 Lorasym 모듈은 PEFT 모듈의 구조를 따릅니다. 구체적으로, 우리는 행렬 A 및 B 의 초기화 설정을 설명하기 위해 유연한 인터페이스를 제공합니다.
torch.nn.init.kaiming_uniform_ 랜덤 균일 분포에 사용하여 신경망 층 활성화를 최적화합니다.이 옵션으로 행렬 A 와 B를 사용자 정의 할 수 있습니다.
| 행렬 | 옵션 | 예 | 설명 |
|---|---|---|---|
| 에이 | V , rand , he , zero | A_rand | A는 임의의 직교 정상 매트릭스로 집중되어 있으며 훈련 중에 동결됩니다. |
| 비 | U , rand , he , zero | hB_zero | B 는 0으로 초기화되어 업데이트됩니다. |
설명 : A_rand_hB_zero A가 임의의 직교 정상 및 변경되지 않은 것으로 초기화되고 B는 0에서 시작하여 업데이트되고 있음을 의미합니다.
우리는 Huggingface의 변압기 모델에서 다른 모델과 컴파일하는 래퍼를 제공합니다. 다음은 사용의 예입니다.
from transformers import AutoModelForSequenceClassification
from LoRASYM_peft . local_peft_model_all import PeftModelForCausalLM_local ,
from LoRASYM_peft . local_lorasym_all import LoRASYMConfig
model = AutoModelForSequenceClassification . from_pretrained (
model_args . model_name_or_path ,
)
update_rule_dict = para_dict = { "update_A" : False , "update_B" : True ,
"A_init" : "rand" , "B_init" : "zero" }
lorasym_config = LoRASYMConfig (
r = 16 ,
lora_alpha = 32 ,
lora_dropout = 0.05 ,
bias = "none" ,
modules_to_save = [ "classifier" ],
update_rule = update_rule_dict ,
task_type = "SEQ_CLS" ,
)
lora_model = PeftModelForCausalLM_local ( model , lorasym_config )접착제 벤치 마크의 작업에 대해서는 다음 명령을 사용하여 Roberta-Large 모델을 미세 조정하십시오.
cd GPT_experiments
python -m run_glue_origin_ft --model_name_or_path roberta-large
--task_name rte
--ft_method LoRASYM
--bf16 True
--tf32 True
--do_train
--do_eval
--learning_rate 4e-4
--num_train_epochs 20
--input_seed 7
--lora_svd_method A_rand_hB_zero
--lora_rank 8
--lora_alpha 16
--overwrite_output_dir
코드 나 논문과 관련된 질문이 있으시면 jiacheng zhu ([email protected])에게 이메일을 보내주십시오. 코드를 사용할 때 문제가 발생하면 문제를 열어주십시오.
작업에 도움이되면 저희 논문을 인용하십시오.
@article { zhu2024asymmetry ,
title = { Asymmetry in Low-Rank Adapters of Foundation Models } ,
author = { Jiacheng Zhu and Kristjan Greenewald and Kimia Nadjahi and Haitz Sáez de Ocáriz Borde and Rickard Brüel Gabrielsson and Leshem Choshen and Marzyeh Ghassemi and Mikhail Yurochkin and Justin Solomon } ,
year = { 2024 } ,
}