본문 바로가기
Bigdata

LoRA(Low-Rank Adaptation) - Fine-Tuning 최적화

by 올엠 2024. 8. 11.
반응형

최근 모델이 거대해 지면이 이를 잘 활용할 수 있는 Fine-Tuning에 집중되고 있는 것 같다.

Huggingface도 Parameter-Efficient Fine-Tuning(PEFT) 를 통해 거대 모델을 자신이 알맞게 사용할 수 있도록 Fine-Tuning을 지원해주고 있는데, Transformer 모델 관련하여 2021년 Microsoft에서 공개한 LoRA모델이 PEFT로 큰 인기를 끌고 있어 이를 조사한 내용을 정리해 본다.

Row-Rank - r

Rank는 매트릭스의 기준이 되는 차원으로, 의미가 있는 정보/핵심 정보를 의미한다.

여기에 Row를 붙여 Row-Rank, 적은 핵심 정보를 의미한다.

LoRA모델은

dxd 를 A(dxr) x B(rxd) = dxr 를 통해 배열 곱을 하여 를 통해 핵심 정보, 적은 정보로도 내가 원하는 데이터를 만들 수 있다.

여기에서 d는 Transformer layer로 각 파라메터가 존재하는 레이어를 의미한다.

기본적인 이해를 위해 LoRa 논문에 나오는 그림으로 확인해보면 다음과 같다.

논문에서 GPT3 기준으로 진행했을 때, 기존 모델이 12,888개 x 12,888 의 배열이 존재했다면,

 low-rank r를 이용해서 r을 2로 했다면, A(12,888개 x 2) x B(12,888개 x 2)으로 12,888개 x 4가 되어 엄청난 경량화가 가능해진다고 한다.

원 논문을 참고해보면 좋을 것 같다.

GitHub - microsoft/LoRA: Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large Language Models"

[2106.09685] LoRA: Low-Rank Adaptation of Large Language Models (arxiv.org)

사용해 보기

LoRA 모델은 Image 쪽에서 큰 성능을 발휘한다고 한다. Colab에서 LoRA 관련된 가이드는 아주 많다. 그중 Image 분류를 먼저 해보도록 하자.

참고한 사이트는 아래와 같다.

Image classification using LoRA (huggingface.co)

 

 

 

 

 

반응형