PiSSA: Principal Singular Values and Singular Vectors Adaptation of Large Language Models
Fanxu Meng, Zhaohui Wang, Muhan Zhang
PiSSA는 LoRA의 어댑터 초기화를 가중치 행렬의 주성분 특이값과 특이벡터로 대체하여, 미세조정 시 주성분만 업데이트하고 나머지는 고정함으로써 수렴 속도와 성능을 동시에 개선한 방법이다.
LoRA는 Gaussian noise와 zero로 초기화된 어댑터를 학습하는데, 이는 무작위 초기화로 인해 수렴이 느리고 최종 성능이 제한될 수 있다. 또한, 사전학습 가중치의 중요한 정보(principal components)를 충분히 활용하지 못한다.
PiSSA는 원래 가중치 행렬 W에 대해 SVD를 수행하여 상위 r개의 특이값과 특이벡터를 추출하고, 이를 어댑터 A, B의 초기값으로 설정한다. 나머지 특이값과 특이벡터는 고정된 residual 행렬 W_res로 분리한다. 미세조정 중에는 A, B만 업데이트되고 W_res는 고정된다. 이는 LoRA와 동일한 파라미터 수와 구조를 유지하면서도, 중요한 주성분을 직접 학습하게 하여 더 효율적인 적응을 가능하게 한다.
12개 모델(184M~70B)과 13개 NLG/NLU 태스크에서 LoRA 대비 일관된 성능 향상을 보였다. GSM8K에서 Mistral-7B fine-tuning 시 LoRA 67.7% 대비 72.86% 달성. QLoRA와 결합한 QPiSSA는 LLaMA-3-70B에서 86.05%로 QLoRA 81.73%를 능가. 초기화에 빠른 SVD 기법을 사용하여 수 초 내에 수행 가능하므로 LoRA에서 전환 비용이 거의 없다.