LoRA(Low-Rank Adaptation의 약자)는 사전 훈련된 신경망을 새로운 작업에 적응시키기 위해 원래 가중치를 고정하고 저차원 행렬 형태의 소수의 훈련 가능한 매개변수를 주입하는 미세 조정 기법입니다. 추가된 행렬은 수정하는 전체 가중치 행렬에 비해 매우 작기 때문에, LoRA는 수십억 개의 매개변수를 가진 모델을 전체 매개변수의 1% 미만만 훈련하고 저장하면서 적응시킬 수 있어, 소비자용 하드웨어에서도 미세 조정이 가능하게 합니다.
역사
LoRA는 2021년 6월 Microsoft의 Edward Hu와 공동 저자들이 발표한 논문에서 소개되었으며, 사전 훈련된 모델을 새로운 작업에 특화시키는 데 필요한 가중치 업데이트가 낮은 "내재적 순위"를 가지는 경향이 있어, 두 개의 훨씬 작은 행렬의 곱으로 잘 근사될 수 있음을 관찰했습니다. LoRA는 전체 가중치 행렬을 직접 업데이트하는 대신, 곱이 고정된 원래 가중치에 더해지는 두 개의 저차원 행렬을 학습하며, 추론 시에는 업데이트를 다시 병합하여 추가 지연 시간 없이 사용할 수 있습니다. 이 기법은 처음에 GPT-3와 같은 대규모 언어 모델에서 시연되었으며, 2023년 확장판인 QLoRA는 이를 고정된 기본 모델의 4비트 양자화와 결합하여 매우 큰 모델을 미세 조정하는 데 필요한 메모리를 극적으로 줄였습니다.
방법
공식적으로, 사전 훈련된 가중치 행렬에 대해 LoRA는 업데이트를 저차원 다운 프로젝션 행렬과 업 프로젝션 행렬의 곱으로 표현하며, 스케일링 계수로 조정되고 일반적으로 훈련 시작 시 어댑터가 아무것도 기여하지 않도록 초기화됩니다. 이 두 개의 작은 행렬만 일반적인 경사 하강법을 통해 최적화되고, 원래 가중치는 고정된 상태로 유지되어 기본 모델의 광범위한 능력이 파괴적 망각으로부터 보호됩니다. 여러 LoRA 어댑터는 다양한 작업이나 스타일에 대해 독립적으로 훈련될 수 있으며, 추론 시 동일한 기본 모델에 교체하거나 결합할 수 있고, 기본 네트워크를 재훈련할 필요가 없습니다.
응용 분야
대규모 언어 모델 배포에서 LoRA는 작업별 또는 도메인별 어시스턴트를 저렴하게 구축하는 표준 방법이며, Llama와 같은 모델을 중심으로 한 오픈 미세 조정 생태계의 많은 부분을 뒷받침합니다. 이는 Stable Diffusion 출시 이후 이미지 생성 커뮤니티에서도 동등하게 중심적인 역할을 하게 되었으며, 사용자는 종종 200MB 미만의 작은 LoRA 파일을 훈련하여 기본 모델에 특정 캐릭터, 예술 스타일 또는 주제를 소수의 예제 이미지로 가르친 다음, 커뮤니티 모델 허브에서 공유하고 여러 개를 조정 가능한 강도로 동시에 결합합니다. 오픈 프롬프트와 기본 체크포인트 위에 계층화된 가벼운 LoRA 파일을 기반으로 한 이러한 하향식 맞춤화 문화는 초기 Midjourney와 같은 폐쇄적이고 적응 불가능한 시스템에 비해 Stable Diffusion 커뮤니티 성장의 중요한 동인이었습니다.
한계
LoRA의 저차원 가정은 모델의 표현에 상당한 변화가 필요한 작업에서 전체 미세 조정보다 성능이 떨어질 수 있음을 의미하며, 순위, 적응할 가중치 행렬의 하위 집합, 스케일링 계수를 선택하는 데는 사소하지 않은 튜닝이 필요합니다. 기존 표현만 수정하고 대규모로 새로운 지식을 추가하지 않기 때문에, LoRA는 일반적으로 모델에 많은 양의 새로운 사실적 내용을 가르치는 것보다 스타일, 형식, 행동 적응에 더 적합하며, 이러한 격차는 종종 검색 증강 생성이나 전체 사전 훈련 연속으로 대신 채워집니다.