rsLoRA & Pissa: 다양한 LoRA의 확장 메소드

(기록용 리뷰는 개인적인 기록을 위해서 남기는 글로 설명에 오류가 포함될 수 있습니다. 오류가 있다면 댓글로 언제든지 알려주세요)

허깅페이스의 PEFT에 올라와있는 모델들을 하나씩 살펴보면서 해당 논문들의 내용을 기록해두기 위해서 글을 작성하게 되었다.

먼저 살펴볼 논문은 “A Rank Stabilization Scaling Factor for Fine-Tuning with LoRA ” (rsLoRA)이다.

우선 rsLoRA는 기존의 LoRA에서 되게 간단한 부분을 업데이트하였다.

우선 LoRA의 구조를 다시 한번 살펴보자면 다음과 같다.

수식에서 윗 부분은 기존 Pre-trained 모델의 forward 과정, 아래는 LoRA의 forward 과정이다. LoRA의 forward 과정을 살펴보면 low rank의 A, B 매트릭스가 곱해져서 기존의 가중치에 더해지게 되고, 이 때 감마라는 scailing factor가 곱해지게 된다.  이 값은 아래와 같이 계산된다.

논문의 저자는 이 scailing factor가 rank가 커질수록 학습의 속도를 늦추거나 혹은 학습이 아예 실패하게 한다고 주장하였다.  LoRA의 논문을 살펴보면 Rank가 일정이상 커지게 되면 오히려 성능이 감소하는 것을 확인할 수 있다. 그러나 일반적으로 rank가 커질수록 더 많은 컴퓨팅 자원의 활용이 가능한 것이므로 더 좋은 성능이 나와야하는 것으로 생각할 수 있다. 기존의 감마를 곱하게 되면 rank가 커질수록 작은 값이 곱해지게 되고, 이는 모델의 수렴 속도를 늦추거나 혹은 학습이 collapse 되게 만들 수 있다.

저자가 제시한 해결책은 비교적 간단한데(물론 이를 도출하는 과정에서 많은 이론적 검증을 거쳤지만), 다음과 같이 rank의 값에 루트를 적용하는 것으로 매우 안정된 학습이 가능한 것을 보였다.

 

논문의 실험 결과에서 Rank가 커질수록 rsLoRA의 PPL이 더 빠르게 많이 감소하는 것을 확인할 수 있다.

 

다음으로 살펴볼 논문은 “PISSA: PRINCIPAL SINGULAR VALUES AND SINGULAR VECTORS ADAPTATION OF LARGE LANGUAGE MODELS”(PISSA)이다. 아래는 PISSA 모델의 구조를 나타낸다.

 

 

그림에서 확인할 수 있듯이 PISSA는 LoRA와 완전히 똑같은 구조를 가지고 있다. 그렇다면 어떤 부분에서 차이가 있는걸까? 그림을 살펴보면 Pretrained-Matrix와 A, B 메트릭스의 값이 조금 다른 것을 확인할 수 있다. 기존 LoRA에서는 Pretrained Matrix와 A, B 메트릭스로 구성된 반면, PISSA는 Residual Matrix와 다른 값들로 채워진 A, B 메트릭스로 이루어져 있음을 확인할 수 있다. 그렇다면 Residual Matrix와 A, B 매트릭스는 어떤식으로 구성되는걸까?

우선 PISSA를 적용하기 위해서는, 기존의 Pretrained Matrix에 SVD(특이값 분해)를 다음과 같이 수행한다.

그러면 가중치 메트릭스는 U, S, V로 분해된다.  그러면 이 U, S, V를 이용해서 A, B, Residual 메트릭스를 구하게 된다.

A와 B는 U, S, V를 Rank 만큼만 Slice하여 다시 행렬곱을 통해서 결합하는 방법으로 구해진다.

Residual Matrix는 Rank를 Slice하고 남은 나머지 U, S, V를 다시 결합하여 만든다.

그러면 다음과 같은 형태가 되는데 Residual 메트릭스와 Slice한 벡터로 만들어진 AB를 LoRA와 같이 결합하면 된다. 이렇게 되면 학습을 시작하는 단계에서는 Pretrained Weight만 사용했을 때와 똑같은 결과가 출력되도록 하기 위해서 LoRA에서는 0으로 초기화를 하듯이, PISSA에서는 0으로 초기화하지 않고도 같은 값을 출력하도록 할 수 있다. 그로 인해서 B 메트릭스를 0으로 초기화함으로써 생기는 학습 수렴이 느려지는 단점이나 학습이 잘 수렴하지 않는 등의 단점을 극복할 수 있다. Residual 메트릭스는 freeze하고 A와 B를 업데이트하여 LoRA와 같이 파인튜닝한다.

 

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다