로라(LoRA) (Low-Rank Adaptation (LoRA))

컴퓨터과학·AI
한 줄 정의: 사전 학습된 모델의 원래 가중치는 고정한 채, 작은 저랭크 행렬을 추가로 학습시켜 적은 파라미터만으로 모델을 특정 작업에 적응시키는 파인튜닝 기법.

쉽게 풀면

대형 언어 모델은 파라미터가 수십억, 수천억 개에 달해서 전체를 다시 학습(파인튜닝)시키려면 막대한 메모리와 계산 자원이 필요해요. LoRA는 원래의 거대한 가중치는 그대로 얼어붙게 고정해두고, 그 옆에 훨씬 작은 크기의 추가 행렬 몇 개만 새로 붙여서 그 작은 부분만 학습시키는 방법입니다. 수학적으로 가중치의 변화량을 훨씬 작은 두 행렬의 곱으로 근사(저랭크 근사)해서 표현하기 때문에, 실제로 학습하고 저장해야 할 파라미터 수가 원래 모델에 비해 극히 일부로 줄어들어요. 이 덕분에 훨씬 적은 자원으로도 대형 모델을 특정 작업에 효율적으로 맞춤화할 수 있게 되었습니다.

왜 중요한가

LoRA는 대형 모델을 다루는 대부분의 연구자와 실무자가 마주하는 자원 제약 문제를 실질적으로 해결해 주기 때문에, 대형 언어 모델과 확산 모델을 다루는 논문에서 매우 자주 언급됩니다. 소수의 GPU만으로도 특정 도메인이나 작업에 모델을 맞춤화할 수 있게 되면서, 개인 연구자나 작은 연구실도 대형 모델을 활용한 연구를 시도할 수 있는 길을 열어주었습니다. 이 때문에 파인튜닝 효율화라는 큰 흐름 안에서 LoRA와 그 변형 기법들이 활발히 제안되고 있습니다.

논문에서는 이렇게 쓰입니다

"제한된 GPU 자원으로 대형 언어 모델을 미세조정하기 위해 LoRA를 적용하여 학습 가능한 파라미터 수를 크게 줄였다."

모델 전체를 다시 학습시키는 대신 저랭크 행렬만 추가로 학습시켜 자원을 절약하면서도 모델을 특정 작업에 맞췄다는 뜻이다.

"본 연구에서는 텍스트-이미지 확산 모델에 LoRA를 적용하여 특정 화풍을 소량의 이미지만으로 학습시켰다."

이미지 생성 모델 분야에서, 원본 모델 전체를 재학습하지 않고도 적은 수의 예시 이미지만으로 특정 스타일을 익히게 만드는 데 LoRA가 활용되었다는 뜻입니다.

"여러 작업에 대해 각각 학습된 LoRA 모듈을 원본 모델에 선택적으로 결합함으로써 다중 작업 적응이 가능함을 보였다."

작업별로 별도의 LoRA 모듈을 학습시켜 두었다가 필요에 따라 원본 모델에 갈아 끼우듯 적용할 수 있다는 것으로, LoRA가 단순한 자원 절약을 넘어 모듈화된 적응 전략으로도 쓰인다는 점을 보여주는 예입니다.

조금 더 깊게 보면

LoRA에서 중요한 하이퍼파라미터는 저랭크 행렬의 랭크(rank) 값으로, 랭크가 클수록 표현력은 커지지만 학습해야 할 파라미터 수와 자원 소모도 함께 늘어나는 절충 관계가 있습니다. 또한 LoRA 모듈을 어떤 가중치 행렬(예: 어텐션의 쿼리·값 투영 등)에 적용할지에 따라서도 성능이 달라질 수 있어, 이를 조합해 탐색하는 것이 실무에서 중요한 부분입니다. 이후 등장한 QLoRA와 같은 변형 기법은 양자화와 LoRA를 결합해 메모리 사용량을 더욱 줄이는 방향으로 발전했습니다.

주의할 점

LoRA는 원본 가중치를 건드리지 않기 때문에 전체 파인튜닝에 비해 모델이 새로운 지식을 습득하는 능력에는 어느 정도 한계가 있을 수 있다.

관련 용어