AI VIDEO BRIEFING

LoRA 파인튜닝 원리 완전 정리: 저랭크 분해와 정밀도·양자화, 그리고 QLoRA까지 한눈에

거대 언어모델을 적은 자원으로 미세조정하는 LoRA의 원리를, 정밀도와 양자화의 기초부터 저랭크 분해와 랭크·알파 하이퍼파라미터, 그리고 허깅페이스 PEFT 라이브러리와 QLoRA까지 단계별로 차근차근 설명합니다.

LoRA로 거대 모델을 저비용으로 파인튜닝하기: 정밀도·양자화부터 이해하기 영상 대표 이미지

핵심 메시지

  • 모델이 수천억~조 단위 파라미터로 커지면서 전체 파인튜닝은 시간과 GPU 메모리 부담이 크다.
  • 정밀도를 낮추거나 양자화하면 메모리를 줄이고 학습 속도도 높일 수 있다.
  • LoRA는 가중치 변화량 ΔW를 두 개의 저랭크 행렬 곱으로 표현해 극소수 파라미터만 학습한다.
  • 학습 후 저랭크 가중치를 원본에 합칠 수 있어 추론 시 추가 지연이 없다.
  • 허깅페이스 PEFT 라이브러리로 손쉽게 적용할 수 있고, QLoRA는 4비트 양자화를 결합한다.

쉽게 이해하기

대규모 언어모델의 파라미터 수는 급격히 커져, 영상은 GPT-4를 약 1조 8천억 파라미터 규모로 언급한다. 많은 사람이 이런 모델을 자신의 데이터로 파인튜닝하고 싶어 하지만, 조정할 파라미터가 많아 시간이 오래 걸리고 GPU 요구량도 막대하다. 그래서 거대 모델을 다루는 두 축, 즉 정밀도·양자화와 파라미터 효율적 파인튜닝을 함께 살펴본다.

신경망 가중치는 보통 float32로 저장된다. 절반 비트만 쓰는 반정밀도로 바꾸면 메모리는 절반이지만 표현할 수 있는 자릿수가 줄어 반올림 오차가 쌓일 수 있다. 모델 크기는 데이터 타입 크기에 가중치 수를 곱해 대략 추정할 수 있는데, 예로 1760억 파라미터의 Bloom은 추론에만 약 350GB가 필요하다. 더 낮은 정밀도는 그대로는 잘 동작하지 않지만, 양자화는 단순히 비트를 버리는 대신 양자화 계수를 계산해 정밀도를 유지한다. 3만 5천 회 실험을 한 논문은 4비트 양자화가 거의 보편적으로 최적이라고 결론지었으며, 낮은 정밀도는 메모리뿐 아니라 학습 속도(플롭스 기준 약 2배)에도 이득이다.

파라미터 효율적 파인튜닝은 전체 가중치보다 적은 수만 조정한다. 전통적 전이학습은 가중치를 얼리고 과제별 헤드를 붙이지만 내부 표현을 학습하지 못한다. 2019년 구글의 어댑터 층은 모델 층 사이에 새 모듈을 끼우지만 추론 지연이 늘고, 스탠퍼드의 프리픽스 튜닝은 입력 벡터만 최적화하는 가벼운 대안이지만 제어에 한계가 있다. 이 흐름의 종착점이 저랭크 분해를 쓰는 LoRA다.

행렬의 랭크는 독립적인 행·열 벡터의 최소 개수를 뜻하며, '저랭크'는 랭크가 차원 수보다 작은 경우다. 2021년 페이스북 연구의 '내재적 차원' 논문은 파인튜닝에 전체 파라미터 공간만큼 효과적인 저차원 재매개변수화가 존재함을 보였다. 예를 들어 BERT는 200개 파라미터만으로 전체 파인튜닝 정확도의 90%에 도달했고, 모델이 클수록 내재적 차원은 오히려 낮아지는 경향이 있다.

마이크로소프트의 LoRA 논문은 가중치 변화량 ΔW도 낮은 내재적 차원을 가진다고 보고, ΔW를 두 저랭크 행렬 B와 A의 곱으로 구성한다. 원본 가중치 W0는 그대로 두고, 학습 시작에서 ΔW가 0이 되도록 B는 0으로, A는 정규분포로 초기화한다. 트랜스포머에서는 보통 어텐션 가중치에 적용하며, 순전파에서 원본 출력과 저랭크 경로의 출력을 더한다. 출력은 알파를 랭크로 나눈 값으로 스케일링하는데, 랭크는 보통 1~64 범위이고 알파는 미세조정 반영 정도를 조절해 다른 하이퍼파라미터(예: 학습률)를 안정화한다. 실험상 아주 작은 랭크로도 좋은 성능이 나오며, 데이터가 기존과 크게 다를수록 더 높은 랭크가 필요하다.

LoRA의 이점은 분명하다. 학습할 가중치가 적어 빠르고 메모리가 덜 들며, 학습한 ΔW를 원본에 단순히 더해 합칠 수 있어 어댑터와 달리 추론 시 추가 부담이 없다. 과제별로 서로 다른 LoRA 가중치를 갈아 끼울 수도 있다. 허깅페이스의 PEFT 라이브러리는 get_peft_model 함수로 대상 모듈(키·쿼리·값 행렬 등)과 알파·랭크를 지정해 손쉽게 적용하게 해주며, 한 예시에서는 원본 가중치의 0.19%만 학습되었다. 여기에 4비트 양자화를 결합한 QLoRA를 쓰면 하드웨어 요구량을 더욱 줄일 수 있다.

주요 인사이트

  • 정밀도 하향과 양자화는 메모리 절감뿐 아니라 플롭스 기준 약 2배의 학습 속도 향상을 함께 가져온다.
  • '내재적 차원' 관점에서 큰 파운데이션 모델일수록 적은 파라미터로도 잘 적응한다는 사실이 LoRA의 이론적 토대가 된다.
  • ΔW를 B·A로 분해할 때 핵심은 기존 ΔW를 분해하는 것이 아니라, B·A를 곱해 ΔW를 새로 구성하며 시작 시점에 0이 되도록 초기화하는 데 있다.
  • 알파를 랭크로 나눠 스케일링하는 설계 덕분에 랭크를 바꿔가며 실험해도 학습률 같은 다른 하이퍼파라미터를 크게 손대지 않아도 된다.
  • LoRA 가중치를 원본에 병합할 수 있어 추론 지연이 없고, 과제별 가중치를 교체하는 방식은 하나의 파운데이션 모델을 여러 용도로 재사용하게 해준다.

자주 묻는 질문

LoRA가 전체 파인튜닝보다 자원을 크게 아끼는 이유는 무엇인가요?

가중치 변화량 ΔW를 두 개의 저랭크 행렬 곱으로 표현해 극소수 파라미터만 학습하기 때문입니다. 영상의 한 예시에서는 원본 가중치의 0.19%만 학습되어, 거대 모델도 단일 GPU에서 미세조정할 수 있었습니다.

LoRA에서 랭크와 알파는 어떻게 정하나요?

랭크는 보통 1~64 범위에서 고르며, 데이터가 기존 학습 데이터와 크게 다를수록 더 높은 랭크가 필요합니다. 알파는 미세조정 가중치의 반영 정도를 조절하는 스케일 인자로, 알파를 랭크로 나눠 적용해 학습률 등 다른 하이퍼파라미터를 안정화합니다.

QLoRA는 LoRA와 무엇이 다른가요?

QLoRA는 사전학습된 원본 가중치에 4비트 양자화를 추가로 적용해, 입력을 원본 대신 양자화된 버전으로 통과시킵니다. LoRA의 저랭크 분해에 양자화를 결합해 하드웨어 요구량을 한층 더 낮춥니다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식