대규모 언어 모델이나 이미지 생성 AI 등 기계학습 모델에선 파인튜닝이나 LoRA(Low Rank Adaptation) 같은 방법에 의해 모델 가중치를 미세 조정해 특정 태스크나 목적에 따른 출력을 실시하도록 커스터마이징할 수 있다. 홍콩과기대 연구팀이 LoRA보다 계산 비용과 시간을 줄일 수 있는 새로운 방법인 DoRA(Weight-Decomposed Low-Rank Adaptation)를 발표했다.
완전히 사전 학습된 기계학습 모델을 최적화하려면 입력값 중요성을 수치화한 가중치 파라미터 조정인 파인튜닝을 실시할 필요가 있다. 하지만 일반 정밀 조정에선 모델 내부 가중치 매개변수를 모두 업데이트해야 하며 시간이 많이 걸리는 문제가 있다. 예를 들어 대규모 언어 모델인 LLaMA 2-7B는 매개변수가 70억이지만 이 모든 걸 다시 학습시키는 건 현실적이지 않다.
많은 대규모 언어 모델이나 이미지 생성 AI 등 확산 모델에선 트랜스포머(Transformer)라는 아키텍처를 채용하고 있다. 따라서 LoRA는 트랜스포머 계층별로 매개변수를 추가해 기계학습 모델 재조정을 더 빠르게 수행할 수 있다. LoRA는 일반 파인튜닝보다 재조정하는 파라미터 수가 훨씬 적기 때문에 파인튜닝보다 VRAM 사용량이 적어 계산 비용도 줄일 수 있다.
이번에 발표한 DoRA는 사전 학습된 모델 가중치 행렬 W를 스칼라 m과 방향 행렬 V로 분해하고 이 방향 행렬 V에 LoRA를 적용하는 방법이다. 예를 들어 실제 2차원 벡터 [x, y]는 벡터 시작점을 데카르트 좌표 원점에 놓으면 끝점 좌표(x, y)가 벡터 성분이 되어 화살표 방향과 크기를 표현할 수 있다. 동시에 화살표 길이를 절대치 √(x 2 +y 2)로 화살표와 X 정축 각도를 θ로 놨을 때 방향을 [cosθ, sinθ]로 나타낼 수 있다. 실 2차원 벡터 [1, 2]이면 m=√5(2.24), V=[√5/5(0.447), 2√5/5(0.894)]라는 형태로 나타난다.
이처럼 가중치 행렬 W를 mV로 분해한 뒤 이 V에 LoRA를 적용, 그러니까 차분 ΔV를 더하는 게 DoRA다. 수식을 쓰면 조정 후 가중치 행렬 W’=m(V+ΔV)가 되는 것이다. 하지만 실제로 DoRA는 가중치 행렬을 분해하고 LoRA를 적용할 뿐 아니라 2016년 발표된 가중치 정규화도 수행한다.
LoRA의 경우 성능을 최적화하기 위해 설정하는 랭크 수를 신중하게 결정해야 하지만 연구팀에 따르면 DoRA는 LoRA보다 견고하며 낮은 순위 수에서도 LoRA보다 높은 성능을 보여준다. 또 DoRA는 LoRA보다 저비용으로 높은 성능을 올릴 수 있다는 설명이다.
보도에선 실제로 구글 대규모 언어 모델인 바트를 경량화한 DistilBERT로 DoRA를 적용한 uf과 예측 정확도가 LoRA를 적용한 모델보다 1% 이상 향상됐다고 보고하고 DoRA는 LoRA를 논리적이고 효과적으로 확장한 유망한 기법이라고 밝혔다. 관련 내용은 이곳에서 확인할 수 있다.