Low Rank Adaptation(LoRA)...

LoRA라는 용어에서 느껴지는 위압감(?) 때문에 처음엔 꽤 어려운 기술이 아닐까 생각했지만, 실제로는 그렇게까지 복잡하지 않다는 인상을 받았다.

요약하자면, 기존 모델의 파라미터는 그대로 둔 채, Q, K, V 행렬이나 기타 Linear 계층에 low-rank 행렬을 추가하여 학습을 갱신하는 방식이다.

이때 추가되는 행렬의 차원이 기존보다 작기 때문에, 추가되는 계산량도 적다.

신기한 점은, 단순히 linear layer에 무언가를 추가하는 것만으로도 성능이 개선된다는 점인데, 특히 Q, K, V에 적용하면 보다 정밀한 제어가 가능하고, 어떤 layer에 적용하느냐에 따라 학습 효과가 달라지므로 선택적으로 적용할 수도 있다고 한다.

어쨌든, 기존 transformer layer에 구조적인 변형이 아니라, 부가적인 경량 모듈을 붙이는 방식이라 생각할 수 있다. 추가되는 low-rank 행렬의 크기가 작기 때문에, 추론 성능(속도, 메모리 등)에 미치는 영향은 매우 제한적이라고 알려져 있다.