? Arxiv Preprint
Этот репо размещает код для статьи «Асимметрия в низкодовольных адаптерах моделей фундамента». Мы обнаруживаем и анализируем асимметрию матриц адаптера LORA B и A ,
Шаг 1 : Пожалуйста, следуйте этапам установки. Во -первых, убедитесь, что у вас установлен Pytorch.
pip3 install torch==1.13.0 torchvision
Шаг 2 : Затем установите остальные необходимые пакеты:
cd AsymmetryLoRA
pip install -r requirement.txt
Наш модуль лорасим следует структуре модуля PEFT. В частности, мы предоставляем гибкий интерфейс, чтобы учесть настройки инициализации матриц A и B :
torch.nn.init.kaiming_uniform_ для случайного равномерного распределения, оптимизация активации уровня нейронной сети.Вы можете настроить матрицы A и B с этими опциями.
| Матрица | Параметры | Пример | Объяснение |
|---|---|---|---|
| А | V , rand , he , zero | A_rand | А интриализуется как случайная ортонормальная матрица и замораживается во время тренировки. |
| Беременный | U , rand , he , zero | hB_zero | B инициализируется как ноль и будет обновляться. |
Объяснение: A_rand_hB_zero означает, что A инициализируется как случайный ортонормальный и неизменный, а B начинается с нуля и обновляется.
Мы предоставляем обертку, которая компилируется с другими моделями из моделей трансформаторов 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 Fine Tune для задач в тесте клея.
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 } ,
}