최근 모델이 거대해 지면이 이를 잘 활용할 수 있는 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가 되어 엄청난 경량화가 가능해진다고 한다.
원 논문을 참고해보면 좋을 것 같다.
[2106.09685] LoRA: Low-Rank Adaptation of Large Language Models (arxiv.org)
사용해 보기
LoRA 모델은 Image 쪽에서 큰 성능을 발휘한다고 한다. Colab에서 LoRA 관련된 가이드는 아주 많다. 그중 Image 분류를 먼저 해보도록 하자.
참고한 사이트는 아래와 같다.
Image classification using LoRA (huggingface.co)
'Bigdata' 카테고리의 다른 글
자연어 기계학습(ML/Transformer) - temperature, top 파라메터 의미 (0) | 2024.08.11 |
---|---|
Transformer(Bert/GPT) - Self-Attention, Multi-head Attention 이해 (0) | 2024.08.11 |
NTP(Next Token Prediction) 모델 이해 (0) | 2024.08.11 |
Masked Language Modeling(MLM) 모델 이해 (0) | 2024.08.11 |
딥러닝 - 뉴런(Neuron)이란? 개념 이해 (0) | 2024.08.11 |