본문 바로가기
AI/NLP

[LLM] LoRA (Low-Rank Adaptation) 를 이용한 LLM (Large Language Model) 최적화

by didi0di 2023. 9. 12.
728x90

LoRA : Low-Rank Adaptation of Large Language Models


Microsoft에서 발표한 LoRA 논문에 대해 알아보자

 

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

 

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

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

github.com

 

ABSTRACT


NLP의 추세가 large-scale pre-training으로 가기에 모델을 fine-tuning 할 때 소요되는 코스트가 너무 커지는 문제가 발생하였다.
그렇기에 이에 대한 해결책으로 LoRA를 제시한다.

GPT-3같은 거대한 모델을 fine-tuning하면 그 엄청난 parameter들을 다 재학습시켜야 함 → 이는 계산량도 많고 시간도 꽤 걸리는 부담스러운 작업이다.

 

이를 줄이기 위해

  • 원래 parameter는 freeze시키고
  • Transformer architecture의 각 layer마다 학습가능한 rank decomposition matrices를 추가하는 방식을 도입해 (Low-Rank Adaptation)
  • downstream tasks의 trainable parameters를 줄일 수 있었다.

결과적으로

  • GPT-3와 비교하여 trainable parameters를 약 10,000배 줄일 수 있었으며, GPU 메모리 요구량도 3배 줄일 수 있었다.
  • RoBERTA, DeBERTa, GPT-2, GPT-3같은 다양한 모델에서 비슷하거나 더 높은 fine-tuning 성능을 보여주었으며, 이는 적은 파라미터와 높은 training throughput의 장점을 가지고 있다.

또한 기존 adapters의 inference latency 문제 또한 LoRA에는 적용되지 않는다.

 

  • LoRA의 장점
    • 사전학습된 모델을 그대로 공유하면서 작은 LoRA 모듈을 여럿 만들 수 있다. 모델을 공유하면서 새로 학습시키는 부분(위 그림의 오른쪽에 있는 A, B)만 쉽게 바꿔끼울 수 있다.
    • layer에 추가한 작은 matrices만 학습시키고 효율적으로 메모리를 사용할 수 있다.
    • inference 과정에서 추가적인 latency 없이 사용할 수 있다.
    • 기존의 많은 방법들과도 동시 사용 가능하다.

 

참고

https://greeksharifa.github.io/paper_review/2022/09/21/LoRA/

 

Python, Machine & Deep Learning

Python, Machine Learning & Deep Learning

greeksharifa.github.io

https://velog.io/@nellcome/NLP2

 

LoRA 논문 리뷰

LoRA에 대해 알아보자

velog.io

 

https://asecurity.dev/entry/LoRALow-Rank-Adaptation-intrinsic-dimesion%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B1%B0%EB%8C%80-%EB%AA%A8%EB%8D%B8-%EC%B5%9C%EC%A0%81%ED%99%94

 

 

LoRA(Low-Rank Adaptation) - intrinsic dimesion을 이용한 거대 모델 최적화

최근 모델이 거대해 지면이 이를 잘 활용할 수 있는 Fine-Tuning에 집중되고 있는 것 같다. Huggingface도 Parameter-Efficient Fine-Tuning(PEFT) 를 통해 거대 모델을 자신이 알맞게 사용할 수 있도록 Fine-Tuning을

asecurity.dev

 

728x90

댓글