LoRA와 QLoRA
낮은 순위 적응(Low-Rank Adaptation, LoRA)와 양자화된 낮은 순위 적응(Quantized Low-Rank Adaptation, QLoRA)은 둘 다 AI 학습에 사용되는 기법입니다. 더 구체적으로 설명하면, 이 둘은 매개 변수 효율적인 미세 조정(Parameter-efficient Fine-Tuning, PEFT)의 형태입니다. 이 미세 조정 기법은 대규모 언어 모델(Large Language Model, LLM)을 학습시킬 때 다른 방법에 비해 리소스를 더 효율적으로 사용해서 인기를 얻었습니다.
LoRA와 QLoRA는 둘 다 LLM을 더욱 효율적으로 미세 조정하는 데 도움이 되지만, 원하는 결과에 도달하기 위해 모델을 조작하고 스토리지를 사용하는 방식은 서로 다릅니다.
LoRA 및 QLoRA와 기존 미세 조정의 차이점은?
LLM은 대단히 많은 매개 변수로 이루어진 복잡한 모델입니다. 일부 LLM의 경우 매개 변수가 수십억 개에 달하기도 합니다. 이러한 매개 변수를 통해 일정량의 정보로 모델을 학습시킬 수 있습니다. 매개 변수가 많다는 것은 데이터 스토리지가 더 크며, 따라서 모델의 성능이 전반적으로 더 뛰어나다는 것을 의미합니다.
기존 미세 조정의 경우 LLM을 업데이트하려면 각 개별 매개 변수의 재적합(업데이트 또는 조정) 작업을 필요로 합니다. 이는 수십억 개의 매개 변수를 미세 조정하는 것을 의미할 수 있으며, 엄청나게 많은 컴퓨팅 시간과 비용이 소요됩니다.
각각의 매개 변수를 업데이트하는 것은 '과적합'으로 이어질 수 있습니다. 이 용어는 AI 모델이 일반적인 학습 데이터 외에 '노이즈', 즉 불필요한 데이터를 학습하게 되는 것을 의미합니다.
교사와 학급을 떠올려 보세요. 이 학급은 일 년 내내 수학을 배웠습니다. 시험 직전에 교사가 긴 나눗셈의 중요성을 강조합니다. 시험 도중에 많은 학생이 긴 나눗셈에 지나치게 몰두한 나머지 다른 문제에서 똑같이 중요한 수학 방정식을 잊어버렸습니다. 이는 기존 미세 조정에서 과적합으로 인해 LLM에 발생할 수 있는 결과입니다.
기존 미세 조정은 과적합 문제 외에도 리소스와 관련하여 많은 비용을 소모합니다.
QLoRA와 LoRA는 둘 다 전체 미세 조정의 효율성을 개선하기 위한 지름길을 제공하는 미세 조정 기법입니다. 이 기법은 모든 매개 변수를 학습시키는 대신 모델을 행렬로 분할하고 새로운 정보를 학습하는 데 필요한 매개 변수만 학습시킵니다.
앞에서 든 예시에 적용한다면, 이러한 미세 조정 기법은 시험에서 모델이 다른 주제를 잊어버리지 않고 새로운 주제도 효율적으로 통합하도록 할 수 있습니다.
Red Hat AI
LoRA의 원리
LoRA 기법은 새로운 매개 변수를 사용하여 새로운 데이터를 기반으로 AI 모델을 학습시킵니다.
전체 모델과 모든 사전 학습된 가중치를 학습시키는 대신 따로 떼어놓거나 '동결'해 놓고 더 작은 샘플 크기의 매개 변수를 대신 학습시킵니다. 이러한 샘플 크기를 가리켜 '낮은 순위' 적응(Low-rank Adaptation) 행렬이라고 하며, LoRA라는 이름은 여기에서 따온 것입니다.
'낮은 순위'라고 하는 이유는 매개 변수와 가중치의 수가 적은 행렬이기 때문입니다. 학습을 마친 다음 원래 매개 변수와 결합하여 단일 행렬로 작동합니다. 이 방식으로 미세 조정을 훨씬 효율적으로 수행할 수 있습니다.
LoRA 행렬을 행렬에 추가되는 하나의 행 또는 하나의 열로 생각하면 더 쉽습니다.
다음을 학습이 필요한 전체 매개 변수로 생각해 보세요.

매개 변수의 모든 가중치를 학습시키려면 상당히 많은 시간과 비용, 메모리가 필요합니다. 그렇게 한다 하더라도 여전히 학습할 거리가 많고 그 과정에서 많은 리소스가 낭비됩니다.
다음 열은 낮은 순위 가중치를 나타냅니다.

새로운 낮은 순위 매개 변수를 학습시킨 경우 단일 '행' 또는 '열'이 원래 행렬에 추가됩니다. 이를 통해 새 학습 내용을 전체 매개 변수에 적용할 수 있습니다.

이제 AI 모델이 새로 미세 조정된 가중치와 함께 작동할 수 있습니다.
낮은 순위 가중치를 학습시키는 데 드는 시간과 메모리, 비용은 더 적습니다. 학습을 완료한 샘플 크기는 추가 메모리를 사용하지 않고도 학습한 내용을 더 큰 행렬 내에 적용할 수 있습니다.
LoRA의 장점
LoRA는 더 적은 시간과 리소스, 노력으로 모델을 미세 조정할 수 있도록 하는 기법입니다. 장점은 다음과 같습니다.
- 학습할 매개 변수의 수 감소
- 과적합 리스크 감소
- 학습 시간 단축
- 필요한 메모리 감소
- 유연한 조정(학습을 모델의 일부에만 적용하고 다른 부분에는 적용하지 않을 수 있음)
QLoRA의 원리
QLoRA는 LoRA를 확장한 기법입니다. LoRA와 비슷하지만 메모리를 덜 사용한다는 추가적인 장점이 있습니다.
'QLoRA'에서 'Q'는 '양자화된(Quantized)'을 나타냅니다. 이 맥락에서 모델을 양자화한다는 것은 매우 복잡하고 정밀한 매개 변수(수많은 소수와 대량의 메모리)를 더 작고 더 간결한 매개 변수(더 적은 소수와 더 적은 메모리)로 압축하는 것을 의미합니다.
그 목적은 단일 GPU(그래픽 처리 장치, Graphics Processing Unit)의 스토리지와 메모리를 사용하여 모델의 일부를 미세 조정하는 것입니다. 여기에는 LoRA보다 훨씬 적은 메모리로 행렬을 양자화할 수 있는 새로운 데이터 유형인 4비트 NF4(NormalFloat)가 사용됩니다. 매개 변수를 더 작고 더 관리하기 용이한 데이터로 압축하여 필요한 메모리 풋프린트를 원래 크기의 최대 4배까지 줄일 수 있습니다.
모델을 양자화하면 크기가 작기 때문에 미세 조정이 훨씬 더 수월해집니다.
다음을 원래 모델의 매개 변수로 생각해 보세요.

12개 매개 변수 중 3개는 초록색, 6개는 파란색, 2개는 노란색, 1개는 분홍색입니다. 모델이 양자화되면 이전 모델의 표현으로 압축됩니다.

양자화된 후의 샘플 크기는 초록색 1개, 파란색 2개, 노란색 1개입니다.
양자화할 때 매우 작은 일부 데이터는 압축 중에 손실될 위험이 있습니다. 예를 들어 분홍색 매개 변수 1개는 매개 변수에서 매우 작은 부분을 차지하여 압축된 버전으로 이어질 만큼 충분한 데이터를 대표하지 않기 때문에 누락되었습니다.
이 예시에서는 12개의 매개 변수를 4개로 압축했습니다. 하지만 현실에서는 수십억 개의 매개 변수가 단일 GPU에서 관리 가능한 수준으로 미세 조정될 수 있는 한정된 수로 압축됩니다.
이상적인 상황에서는 새로 학습된 행렬을 원래 행렬에 다시 추가할 때 손실된 데이터를 원래 매개 변수에서 복구할 수 있으며, 그 과정에서 정밀도나 정확도를 잃지 않습니다. 그러나 이는 보장되지 않습니다.
이 기법은 고성능 컴퓨팅과 유지 관리 요구 사항이 적은 메모리 스토리지를 결합한 것입니다. 이렇게 하면 제한적인 리소스로 작업하면서 모델을 매우 정확하게 유지할 수 있습니다.
QLoRA의 장점
QLoRA는 메모리 유지 관리 요구 사항이 적은 것이 주된 장점인 기법입니다. LoRA와 마찬가지로 효율성을 중시하여 미세 조정 학습 프로세스를 더 쉽고 빠르게 진행할 수 있도록 합니다. 장점은 다음과 같습니다.
- LoRA보다 더 적은 메모리 사용
- 데이터 과적합 방지
- 높은 정확도 유지
- 신속하고 간편한 모델 튜닝
LLM을 양자화하면 정확도가 얼마나 떨어질까요? 50만 개의 양자화된 LLM을 평가할 때 어떤 일이 발생하는지 확인해 보세요.
LoRA와 QLoRA의 차이점은?
LoRA는 그 자체로 효율적인 미세 조정 기법입니다. QLoRA는 LoRA에 더해 효율성을 높이기 위한 여러 기법을 추가한 확장입니다. QLoRA는 훨씬 적은 스토리지 공간을 사용합니다.
어떤 기법이 요구 사항에 더 적합한지 결정하기 어렵다면 사용 가능한 스토리지와 리소스를 고려하는 것이 가장 좋은 방법입니다. 스토리지가 제한되어 있다면 QLoRA를 실행하는 것이 더 쉬울 것입니다.
Red Hat의 지원 방식
Red Hat® AI는 AI 여정의 초기 단계에 있는 기업이든, 하이브리드 클라우드 전반으로 확장할 준비까지 마친 기업이든 상관없이 AI 여정에 오른 기업이라면 모두 도움을 줄 수 있는 제품 및 서비스의 포트폴리오입니다.
Red Hat AI는 특수 목적에 맞게 빌드된 작은 모델과 유연한 사용자 정의 기법을 통해 어느 위치에서나 개발하고 배포할 수 있는 유연성을 제공합니다.