📕 428커밋의 기록이 상품이 됐습니다 →
agenwiki

AI

LoRA

원본 모델의 가중치는 그대로 두고 작은 보조 행렬만 학습해서 모델을 특정 용도에 맞추는 경량 파인튜닝 기법이다. 학습해야 할 파라미터 수가 크게 줄어 적은 자원으로도 모델을 조정할 수 있다.

최종 수정

개념

LoRA(Low-Rank Adaptation)는 파인튜닝의 한 방식으로, 이미 학습된 모델의 가중치를 직접 고치지 않고 그 옆에 작은 행렬 한 쌍을 덧붙여 그 부분만 학습한다. 원본 가중치는 얼어붙은 채로 두고, 추가된 행렬이 만들어 내는 변화량만 학습하는 구조다.

핵심 아이디어는 "모델을 특정 용도에 맞추는 데 필요한 변화는 생각보다 단순하다"는 가정이다. 거대한 가중치 행렬 전체를 새로 배우는 대신, 그 변화량을 훨씬 작은 두 행렬의 곱으로 근사한다. 이때 두 행렬의 크기를 결정하는 값을 랭크(rank)라 부르며, 랭크가 작을수록 학습할 파라미터는 줄고 표현할 수 있는 변화의 폭도 좁아진다.

그 결과 학습 대상 파라미터는 원본 모델에 비해 아주 작은 비율로 줄어든다. 학습 중 저장해야 할 옵티마이저 상태도 함께 줄기 때문에, 전체 파인튜닝이라면 다루기 힘들었을 크기의 LLM도 훨씬 적은 메모리로 조정할 수 있다. 학습이 끝나면 결과물은 원본 모델과 별개의 작은 파일로 남고, 이를 흔히 어댑터(adapter)라 부른다.

보조 행렬을 어디에 붙일지도 선택 사항이다. 흔히 어텐션 층의 투영 행렬에 적용하지만, 피드포워드 층까지 포함하도록 범위를 넓히기도 한다. 여기에 어댑터의 영향력을 조절하는 스케일 계수를 함께 두어, 원본의 성질을 얼마나 유지하고 새 데이터를 얼마나 반영할지 균형을 맞춘다. 랭크와 적용 범위, 스케일 계수가 LoRA 학습에서 손대게 되는 주요 조절 값이다.

쓰임새

가장 흔한 쓰임새는 범용 모델을 특정 도메인의 말투나 형식에 맞추는 일이다. 사내 문서의 문체를 따르는 요약기, 특정 분야 용어를 정확히 다루는 상담 모델, 정해진 서식대로만 답하는 구조화 출력 전용 모델 같은 것들이 여기에 해당한다.

어댑터가 작다는 점은 운영에서 특히 유용하다. 하나의 원본 모델을 메모리에 올려 두고 용도별 어댑터만 갈아 끼우는 식으로 여러 변형을 동시에 서비스할 수 있다. 고객사별로 다른 어댑터를 붙이거나, 새 버전을 만들어 기존 것과 나란히 비교하는 일도 가벼워진다. 양자화와 함께 쓰여 메모리 사용량을 더 줄이는 조합도 널리 쓰인다.

준비해야 할 데이터의 성격도 전체 파인튜닝과는 다르다. 방대한 양보다는 원하는 출력 형태를 일관되게 보여 주는 예시가 중요하다. 형식이 제각각인 예시를 많이 모으는 것보다, 기준이 통일된 예시를 적당한 규모로 갖추는 편이 결과가 낫다.

자주 하는 오해

LoRA를 쓰면 모델에 새로운 지식을 넣을 수 있나?

파인튜닝 계열 기법 전반이 지식 주입에는 잘 맞지 않는다. 최신 정보나 사내 문서의 내용을 반영하고 싶다면 검색 증강 생성(RAG)이 대체로 더 적절하다. LoRA가 잘하는 것은 말투, 형식, 작업 수행 방식을 바꾸는 쪽이다.

랭크를 키울수록 성능이 좋아지지 않나?

랭크를 키우면 학습 파라미터와 자원 소모가 늘 뿐, 결과가 비례해서 좋아지지는 않는다. 작업이 단순할수록 낮은 랭크로 충분한 경우가 많고, 오히려 과적합 위험이 커지기도 한다.

LoRA를 쓰면 추론이 느려지지 않나?

학습이 끝난 어댑터를 원본 가중치에 합쳐 버리면 추론 시 구조가 원본과 같아져 추가 비용이 거의 없다. 어댑터를 합치지 않고 분리해 둔 채 여러 개를 갈아 끼우는 방식에서만 약간의 오버헤드가 생긴다.

관련 용어

관련 글

용어

RLHF

사람이 매긴 응답 선호도를 학습 신호로 삼아 모델의 답변 방식을 다듬는 학습 기법이다. 오늘날 대화형 AI가 유용하고 안전한 답을 내놓도록 만드는 핵심 단계로 쓰인다.

용어

양자화

모델의 가중치·연산을 더 적은 비트 수로 표현해 모델 크기와 연산량을 줄이는 경량화 기법이다. 제한된 자원 환경에 모델을 올릴 때 흔히 쓰인다.