AI VIDEO BRIEFING

LoRA 완전 이해 — 저차원 적응부터 QLoRA·VeRA·DoRA까지 파라미터 효율 미세조정 정리

700억 파라미터 모델을 통째로 미세조정하는 대신, 작은 어댑터만 학습하는 LoRA의 원리와 초기화·학습률 요령, 그리고 QLoRA·VeRA·DoRA로 이어지는 발전을 알기 쉽게 설명합니다.

거대 AI 모델을 저렴하게 길들이는 법: LoRA부터 QLoRA·VeRA·DoRA까지 영상 대표 이미지

핵심 메시지

  • 모든 가중치를 갱신하는 전체 미세조정은 700억 파라미터 모델의 경우 16비트로 약 140GB에 달해 작업별로 복사본을 두기가 비현실적이다.
  • LoRA는 원본 가중치를 얼려 두고, 변화량 delta W가 '저차원' 구조라고 가정해 두 개의 작은 행렬 A·B만 학습한다.
  • A의 행은 특징을 감지하는 '키', B의 열은 그에 맞는 보정을 더하는 '값'처럼 작동해, LoRA는 일종의 국소 연상 기억으로 볼 수 있다.
  • 안정적 학습을 위해 A는 무작위, B는 0으로 초기화하며, LoRA+는 A와 B에 서로 다른 학습률을 주어 학습 속도를 맞춘다.
  • QLoRA는 얼린 원본을 양자화(NF4·블록 단위·이중 양자화)해 700억 모델을 단일 48GB GPU에서 미세조정하게 하고, VeRA와 DoRA는 각각 파라미터를 더 줄이거나 성능을 끌어올린다.

쉽게 이해하기

현대의 대형 AI 모델은 크기가 거대하다. 사전학습된 모델은 범용적이지만, 우리는 이를 법률·금융·의료 같은 특정 영역에 맞게 특화하고 싶어 한다. 문제는 모든 가중치를 갱신하는 전체 미세조정이 매우 비싸다는 점이다. 700억 파라미터 모델은 16비트 정밀도에서 가중치만 약 140GB에 이르고, 작업마다 전체 복사본을 저장하면 금세 감당하기 어려워진다. 이 영상은 이를 해결하는 '파라미터 효율적 적응'의 핵심 아이디어, 특히 LoRA가 무엇이고 어떻게 작동하는지를 설명한다.

트랜스포머에서 많은 계산은 선형 계층에서 일어난다. 어텐션의 쿼리·키·값 생성이나 피드포워드 확장·축소 모두 Y = W · X 형태의 행렬 곱이다. LoRA는 사전학습된 가중치 W0를 얼려 두고, 학습 가능한 보정 행렬 delta W를 더한다. 학습 후 delta W를 W0와 병합하면 하나의 평범한 가중치 행렬이 되어, 추론 속도는 원래 모델과 똑같이 유지된다. 다만 delta W를 통째로 학습하면 여전히 거대한 행렬을 학습하는 셈이다. 그래서 delta W가 '저차원' 구조를 가진다고 가정한다. 즉 과제는 모델을 소수의 중요한 방향으로만 움직이면 된다는 것이다.

저차원 아이디어를 적용해, 큰 delta W를 직접 배우는 대신 키 큰 B와 옆으로 넓은 A라는 두 작은 행렬로 나눠 배운다. 이것이 저차원 적응, LoRA다. 학습 가능한 파라미터 수가 크게 줄어든다. 실무에서는 업데이트를 알파를 랭크 R로 나눈 값으로 스케일하는데, 랭크로 나눠 주면 랭크를 바꿔도 업데이트 크기가 대체로 일정해 학습률을 매번 다시 조정하지 않아도 된다. B·A의 곱을 외적의 합으로 다시 쓰면, A의 행은 입력과의 정렬 정도를 재는 '키(특징 감지기)', B의 열은 그 감지기가 활성화될 때 더할 '값(보정)'처럼 해석된다. 예컨대 의료 데이터로 미세조정하면 A1이 심장질환 질문을 감지해 B1이 심장학 지식을 더하는 식이다.

이 해석에서 LoRA는 '국소 연상 기억'처럼 동작한다. 입력이 해당 영역과 무관하면 유사도가 작아 보정도 거의 없으므로, 기반 모델은 범용 지식을 유지하고 LoRA는 작은 과제별 기억만 더한다. 덕분에 같은 백본에 어댑터만 바꿔 끼우거나 여러 LoRA를 조합할 수도 있다. 학습을 안전하게 시작하려면 초기화가 중요하다. A·B를 모두 무작위로 두면 시작부터 출력이 바뀌어 불안정하고, 둘 다 0으로 두면 학습 신호가 없어 어댑터가 죽는다. 그래서 하나는 무작위, 하나는 0으로 둔다. LoRA는 보통 A를 무작위, B를 0으로 초기화한다. 또 A와 B는 역할·규모가 달라, LoRA+는 A에 작은 학습률, B에 큰 학습률을 주어 둘의 학습 속도를 맞춰 더 빠르고 나은 결과를 얻는다.

LoRA 어댑터는 작지만 여전히 얼린 기반 모델이 메모리를 크게 차지한다. 700억 모델에 랭크 64로 모든 선형 계층을 적응하면 학습 파라미터는 약 5억 8천700만 개로 전체의 1% 미만(16비트로 1.17GB)이지만, 기반 모델은 약 140GB다. QLoRA는 얼린 기반 가중치를 저정밀도로 양자화해 저장하고 계산 시에만 고정밀로 복원하며, 어댑터만 전정밀도로 학습한다. 이렇게 하면 700억 모델 미세조정이 단일 48GB GPU에 들어간다. 이때 가중치가 0 근처에 몰린 정규분포를 이룬다는 점을 활용해, 균등 간격 대신 각 구간이 같은 비율의 가중치를 담는 NF4(NormalFloat 4) 양자화를 쓰고, 이상치가 전체 스케일을 지배하지 않도록 블록 단위 양자화를, 스케일 값까지 다시 줄이는 이중 양자화를 더한다. 나아가 VeRA는 무작위 행렬 한 쌍을 모든 계층이 공유하고 작은 스케일 벡터만 학습해 파라미터를 약 126배까지 더 줄이고, DoRA는 가중치를 크기와 방향으로 분해해 둘을 따로 조정함으로써 전체 미세조정에 더 가까운 성능을 낸다.

주요 인사이트

  • LoRA의 전제는 '과제에 필요한 변화(delta W)는 소수의 중요한 방향으로 충분하다'는 저차원 가정이다. 이 가정이 성립하기에 두 작은 행렬만으로 큰 모델을 특화할 수 있다.
  • 학습 후 어댑터를 원본 가중치에 병합하면 추론 속도 손해가 없다는 점이 LoRA의 실용적 강점이다. 반면 DoRA는 정규화 때문에 이 병합·조합의 단순함을 일부 포기한다.
  • 초기화 규칙(A는 무작위, B는 0)에는 이유가 있다. 시작 시 출력 변화를 0으로 만들면서도 B가 곧바로 유의미한 그래디언트를 받아 학습을 시작할 수 있어야 하기 때문이다.
  • QLoRA의 NF4는 신경망 가중치가 0 근처에 몰린 정규분포라는 성질에 맞춰, 밀도가 높은 구간에 양자화 레벨을 더 촘촘히 배치해 4비트 예산을 효율적으로 쓴다.
  • LoRA→QLoRA→VeRA→DoRA는 각각 '메모리', '파라미터 수', '표현력'이라는 서로 다른 병목을 겨냥한 발전으로, 하나의 정답이 아니라 상황에 맞는 트레이드오프의 선택지다.

자주 묻는 질문

LoRA는 전체 미세조정과 무엇이 다른가요?

전체 미세조정은 모든 가중치를 갱신해 비용이 큽니다. LoRA는 원본 가중치를 얼려 두고, 변화량이 저차원이라는 가정 아래 두 개의 작은 행렬만 학습해 학습 파라미터를 크게 줄입니다. 학습 후에는 원본에 병합해 추론 속도를 유지합니다.

왜 A는 무작위, B는 0으로 초기화하나요?

둘 다 무작위면 학습 시작부터 출력이 바뀌어 불안정하고, 둘 다 0이면 학습 신호가 없어 어댑터가 학습되지 않습니다. 하나를 0으로 두면 초기 출력 변화가 0이 되고, A를 무작위·B를 0으로 두면 B가 곧바로 유의미한 그래디언트를 받아 안정적으로 학습이 시작됩니다.

QLoRA는 어떻게 큰 모델을 작은 GPU에서 미세조정하나요?

얼린 기반 모델을 NF4 같은 4비트로 양자화해 저장하고 계산할 때만 고정밀로 복원하며, 어댑터만 전정밀도로 학습합니다. 블록 단위 양자화와 이중 양자화까지 더해, 700억 파라미터 모델을 단일 48GB GPU에서 미세조정할 수 있습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식