위키득계정 ↗
기술

ReLoRA

ReLoRA기술
영문
ReLoRA
핵심
갱신 병합과 재초기화
목적
저랭크 단계로 고랭크 변화 학습
관련 설정
옵티마이저 상태와 학습률 일정
ReLoRA는 저랭크 갱신을 주기적으로 기반 가중치에 합치고 다시 시작해 더 높은 랭크의 누적 변화를 학습하는 방법이다. 한 번의 저랭크 보정으로 전체 학습을 제한하는 문제를 완화한다.

한 번의 보정을 넘어

작은 보정 행렬만 계속 학습하면 누적 변화도 그 보정의 랭크 제약을 받는다. ReLoRA는 학습한 보정을 본 가중치에 합치고 새로운 보정을 학습한다. 여러 단계의 변화가 서로 다른 방향을 담으면 합의 랭크가 커질 수 있다.

랭크 합의 독립 예제

행렬 [[1, 0], [0, 0]]과 [[0, 0], [0, 1]]은 각각 랭크 1이다. 둘을 더하면 2×2 항등행렬이 되어 랭크가 2다. 반면 같은 방향의 랭크 1 행렬을 더하면 계속 랭크 1일 수 있으므로 재시작 횟수가 곧 최종 랭크는 아니다.

재시작의 학습 조건

보정만 초기화하고 이전 옵티마이저 상태를 그대로 두면 학습 방향이 제한될 수 있다. 부분적인 상태 초기화와 학습률 재워밍업 등 안정화 구성이 함께 사용된다. 재시작을 무조건 자주 할수록 좋아진다고 볼 수는 없다.

전체 비용 비교

초기 학습 구간과 병합, 재시작 비용을 빼고 중간 처리량만 비교하면 전체 이득을 과장할 수 있다. 모형 규모와 하드웨어, 학습 품질에 따라 효과가 달라진다. 사전 학습에서의 결과가 모든 미세 조정 작업에서도 우수하다는 뜻은 아니다.

관련 문서

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