위키득계정 ↗
기술

LoRA

LoRA기술
영문
Low-Rank Adaptation
약칭
LoRA
기반 가중치
고정
학습 대상
저랭크 보정 행렬
LoRA는 학습된 가중치를 고정하고 저랭크 행렬의 곱으로 표현한 보정만 학습하는 적응 방법이다. 작업별로 전체 모형을 새로 학습하고 저장하는 부담을 줄인다.

작은 보정으로 적응하기

선형층의 가중치를 W라고 하면 그 대신 W+BA를 사용하는 형태로 보정을 넣을 수 있다. 두 보정 행렬 사이의 차원을 작게 잡아 학습 매개변수를 줄인다. 원래 W 자체가 저랭크여야 하는 것은 아니며 저랭크 제약은 추가 변화에 적용된다.

랭크 1 보정의 독립 예제

B=(1, 2)의 세로 벡터와 A=(3, -1)의 가로 벡터를 곱하면 보정은 [[3, -1], [6, -2]]다. 둘째 행은 첫째의 두 배여서 랭크는 1이다. 이 보정을 더한 최종 가중치까지 반드시 랭크 1이 되는 것은 아니다.

랭크와 저장 비용

행렬이 d×k이고 보정 랭크가 r이면 두 행렬의 원소 수는 r(d+k)다. r이 충분히 작을 때 전체 dk개보다 적다. 하지만 기반 모형과 활성값을 실행에 사용하므로 학습 매개변수 감소율을 전체 메모리 감소율로 바로 바꿀 수는 없다.

병합과 작업 전환

학습된 보정을 기반 가중치에 합쳐 실행하거나 작업별 보정으로 관리할 수 있다. 실행 중 합산 경로와 병합 후 실행의 비용은 구분해야 한다. 적용하는 층, 랭크와 학습 자료에 따라 품질이 달라지므로 전체 미세 조정과의 성능 차이를 실제 과제에서 비교한다.

관련 문서

AdaLoRA / QLoRA / DoRA / 언어 모형 / 트랜스포머 / 행렬