LoRA 기법에 대해서

2024. 5. 18. 14:14칼럼

LoRA 기법

 


 

1. LoRA 기법. 

  • LoRA는 Low-Rank Adaptation 이라는 뜻입니다.
  • Low-Rank를 이용해서 시간, 리소스, 비용을 줄이는 기법입니다. 
  • LoRA는 파인튜닝을 위한 경량화 기법입니다. 모델 경량화의 한 종류입니다.
  • 거대 언어 모델(LLM)을 특정 task에 fine-tuning(adaptation)하는데 있어서 시간, 리소스, 비용의 소모를 줄이기 위해서 사용되는 기법입니다. 
  • LoRA는 인공지능 모델 중 자연어 처리(NLP) 분야에서 모델의 파라미터를 적은 양의 추가 파라미터로 조정하여, 새로운 테스크나 도메인에 적응시키는 기법입니다. 
  • LoRA는 AI 모델의 학습 가능한 파라미터(매개변수)를 줄여서 학습에 소요되는 비용을 절감함과 동시에 파인튜닝 작업에 대한 모델 정확도를 향상하는 기법입니다.
  • 짧게 요약하자면, 파라미터를 줄여서 전체 모델을 경량화시키는 기법입니다. 

 


 

 

2. LoRA 소개를 위한 정보

LoRA 기법을 설명하기 전, 알아야하는 정보들이 있어서 간략히 먼저 소개하겠습니다.

 

(1) 자연어 처리(NLP)

  • LoRA는 자연어 처리(NLP) 분야에서 주로 사용되는 기법입니다.
  • 자연어 처리(NLP)는 인간의 언어를 컴퓨터가 이해하고 생성할 수 있도록 하는 인공지능의 분야입니다. 
  • 문법적 단위로 자연어를 쪼개고, 자연어로 주어진 입력에 따라 동작하고, 다른 형식의 정보를 자연어로 변환하는 기술이 자연어 처리(NLP)에 해당합니다. 
  • 세부적으로는 자연어 분석, 자연어 이해, 자연어 생성 등의 분야로 나뉩니다. 
  • 예시로는 텍스트 분류(스펨 메일 필터링), 기계 번역(파파고), 질의 응답(검색 엔진), 텍스트 생성(자동 요약, 기사 작성)이 있습니다. 가장 단적인 예로는 GPT에서 텍스트 생성 모델로서 자연어처리가 활용되는 것을 들 수 있습니다. 

 

자연어 처리 과정

 

 

(2) Fine-tuning(미세 조정)

  • LLM은 기본적으로 미리 학습된 모델로 부터 특정 task에 adaptation 하기 위해 fine-tuning을 필요로 합니다. 
  • fine-tuning 이란 LLM의 weight(가중치)를 모두 다시 학습하는 것입니다. 
  • LLM에서는 특정 데이터에 대해 특정 작업을 수행하도록 기존 언어 모델을 미세 조정하는 것이 일반적입니다.
  • 처음부터 학습하는 것과 fine-tuning은 구별됩니다. 전자는 모델의 weight(가중치)가 무작위로 초기화 되지만, 후자는 사전 학습 단계에서 가중치가 이미 어느 정도 최적화 되어있으므로, 어떤 가중치를 최적화, 업데이트, frozen(동결)할 지를 결정하여 실행합니다. 

 

(3) 모델 경량화

  • 모델 경량화는 규모가 크거나 복잡한 모델을 작고 가벼운 형태로 변환하는 프로세스를 의미합니다.
  • 효율성과 성능의 향상이라는 장점이 있기 때문에 거의 모든 모델에서 사용됩니다.

 

 

 

(4) 거대언어모델(LLM)의 경량화 방법, PEET

  • LoRA 기법은 인공지능 모델에서, 그 중에서도 특히 거대언어모델(LLM)에서 사용되며, 주로 모델 내의 자연어처리(NLP) 분야에서 사용되는 경량화 방법입니다.
  • 거대언어모델(LLM)을 경량화하는 방법 중 PEET(Parameter Efficient Fine-Tuning)이 있는데 LoRA는 PEET의 일종입니다. 

 

PEET에는 그림처럼 다양한 기법이 존재합니다.

 

  • 적은 매개변수(parameter) 학습만으로 빠른 시간에 새로운 문제를 효과적으로 해결하는 미세 조정 방법
  • 전체 모델을 조정하는 것보다 적은 계산 자원과 데이터 자원을 사용하기 때문에 실행속도와 결과제공, 피드백의 과정이 효율적으로 작동하게 됩니다. 또 더 적은 리소스가 요구되기 때문에 더 많은 사용자가 모델을 사용할 수 있게 되며 더 다양한 작업(도메인에의 접근 등), 더 다양한 환경(제한이 있는 환경 등)에서의 사용도 용이하게 한다는 장점이 있습니다.
  • Parameter(매개변수)의 일부를 조정하기 때문에 원래 모델과 동일한 성능을 보장할 수 없고 PEET 적용 시 사용되는 하이퍼파라미터에 따라 성능이 크게 변할 수 있다는 단점이 있습니다.

 

PEET를 구조화한 그림

 

 


 

 

3.  LoRA(Low Rank Adoption) 기법 

  • LoRA(Low Rank Adoption), 즉 낮은 순위 적용 방식
  • 매개변수 가중치(weight) 중 일부만 미세조정하고 나머지는 원래대로 유지시키는 방식입니다.

 

LoRA 기법

  • 기존의 pre-trained weights는 frozen해두고 몇개의 layers만 학습하는 것입니다. dense layer의 weight를 low rank로 분리해둔 matrices만을 최적화하는(행렬 연산을 최적화하는) 방법입니다. (dense layer은 input과 output을 모두 연결해주는 layer이고 matrices는 행렬이라는 뜻입니다.)
  • 위의 그림에서도, fine-tuning을 할 때, W는 frozen 해두고 low-rank로 분리된 weight(가중치)인 A와 B만을 학습합니다.
  • Low-rank로 분리된 weight는 기존에 비해 크기가 작아지기 때문에 시간, 리소스, 비용이 줄어들게 됩니다. 
  • 이미, 학습된 모델을 가지고 있는 상태에서 특정 task에 adaptation 하기 위해서 A, B만 storage에 저장하고, swiching 때도 A', B' 만 변경하면 되기 때문에 storage와 task switching 면에서 효율적입니다. 

 

  • LoRA는 사전 학습된 LLM의 가중치 행렬을 구성하는 모든 가중치를 fine-tuning(미세 조정)하기 보다는, 이 행렬을 근사화하는 두 개의 작은 행렬을 미세 조정하는 '개선된' 미세 조정 방식입니다. 
  • 매개변수를 사용하는 큰 체크포인트 파일 대신 작은 체크포인트 파일을 얻어 저장공간을 효율적으로 사용할 수 있습니다.(모델의 용량을 크게 증가시키지 않는다는 뜻입니다.)
  • 훈련비용과 컴퓨터 리소스를 절약하면서도 성능을 향상시킬 수 있다는 장점이 있습니다.
  • 사전 학습된 딥러닝 모델의 특정 파라미터(기존의 파라미터)를 직접적으로 수정하지 않고, 모델의 파라미터를 조정하기 위한 소수의 추가적인 학습 가능한 파라미터를 도입합니다. 그렇기 때문에 대규모 파라미터를 가진 모델을 대상으로 할 때 유용합니다. 

 


 

LoRA: Low-Rank Adaptation of Large Language Models 논문 리뷰 — da2so (tistory.com)

 

LoRA: Low-Rank Adaptation of Large Language Models 논문 리뷰

Microsoft에서 나온 논문인 LoRA를 오늘 리뷰해 봅니다. LoRA는 GPT와 같은 Large Language Models(LLM)을 특정 task에 fine-tuning(adaptation)하는 데 있어서 time, resource cost가 너무 크다는 단점을 해결하기 위한 방

da2so.tistory.com

 

https://arxiv.org/abs/2106.09685

 

LoRA: Low-Rank Adaptation of Large Language Models

An important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes le

arxiv.org

 

참고하면 좋을 것 같아서 링크를 걸어두었습니다! 한 번 보시면 좋을 것 같습니다!

'칼럼' 카테고리의 다른 글

AI 최신 소식  (1) 2024.07.03
AutoML  (0) 2024.06.01
모델 경량화 방법  (0) 2024.05.07