ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LLM 기초 다지기] LoRA for LLM Fine-tuning
    Deep-Learning/[NLP] 이론 2023. 11. 9. 14:06

    진작 알았다면 좋았을 NLP 및 LLM에 대한 기초 지식 11. LoRA for LLM Fine-tuning

    Contents
    🔹 Word Embeddings: https://kuklife.tistory.com/144
    🔹 Attention Mechanism: https://kuklife.tistory.com/145
    🔹 Self-Attention: https://kuklife.tistory.com/148
    🔹 Overview of LLMs: 
    🔹 LLM benchmark and Metrics:
    🔹 GPT: 
    🔹 LLaMA2: 
    🔹 RAG: 
    🔹 Chain of Thought (CoT, Zero-shot CoT, AutoCoT, ReACT): 
    🔹 Fine-tuning for LLM (LoRA, P-tuning):  https://kuklife.tistory.com/147

    LoRA 3줄 요약

    - https://arxiv.org/abs/2106.09685

    - PLM의 크기가 점점 커질수록 fine-tuning의 cost가 점점 커지고 있다. 그에 대한 해결책으로 LoRA가 등장하였다 

    - LoRA는 PLM을 freeze 한 뒤, trainable rank decomposition metrices를 inject하여 downstream task의 trainable parameters를 줄이는 기법이다. GPT3의 0.01% 정도의 파라미터만 학습하는 기법으로 GPU 메모리 요구량도 3배를 줄인다.

    - 또한, 기존에 제안된 adapter에서 발생하는 inference latency 문제를 해결했다.

     

    LoRA 개요 (Introduce)

    - LLM을 1) full fine-tuning 하면 비싼 cost가 발생하고, 2) 조금의 파라미터만 학습하는 외부 모듈을 추가하는 방법론(adapter)은 종종 inference layency 문제를 일으킨다.

    - LoRA는 dense layers의 rank decomposition matrices를 optimizing 함으로써 기존 dense layers를 간접적으로 학습하기 때문에 이 기법은 아래와 같은 이유로 위 2가지 문제를 해결한다.

     1) 작은 low-rank matrices만을 optimaize 함으로써 학습을 효과적으로 할 수 있고, 요구되는 하드웨어 성능도 줄일 수 있다.

     2) 심플한 선형 디자인을 통해 inference latency를 없앴다.

     

     

    다른 fine-tuning 기법의 문제점 (P-tuning, Adapter)

    - Adapter Layers Introduce Inference Latency: 큰 모델에는 하드웨어 병렬화를 많이 사용했고, 이는 adapter layer가 순서대로 처리되어야 하는 문제가 있다. 이로 인해 어뎁터를 사용할 때 latency가 존재하였다.

    - Directly Optimizing the Prompt is Hard: Prefix-tuning은 optimize하기 어려웠으며 성능이 trainable parameters에 따라 급변한다.

    방법론

    - Aghajanyan et al.(2020)에 따르면, 특정 task에 pre-trained 모델을 적용할 때 해당 모델은 낮은 "intrinsic dimension"을 가진다. 여기서, "Intrinsic dimension"은 모델의 내재적 차원 또는 모델이 표현할 수 있는 표현의 차원을 의미합니다. 낮은 intrinsic dimension은 해당 모델이 표현할 수 있는 표현의 수가 적다는 것을 의미합니다.

    - 정리하자면 일반적인 pre-train 모델들은 full-rank 즉 모든 특성들을 잘 가지고있다. 이 때 pre-train 모델을 downstream task에 적용하면 full-rank가 아닌 low "instrisic rank"만을 가져도 잘 학습하기에 low "instrisic rank"를 가진 adapter를 적용하고자 하였다.

    - 이를 수식적으로 표현하면 다음과 같다.

    - 여기서 A는 random gaussian initialization, B는 0으로 초기화. 그리고 Wx의 변화량은 α/r로 scaling 된다. 이는 Adam으로 optimization 할 떄, α를 tuning하는 것은 learning rate를 tuning 하는 것과 같이 하였다

    - 아래 코드는 lora의 코드 일부이다. (코드를 확인해보니 r, α값은 보통 (8,16) 혹은 (16,32) 로 설정하였다)

     

    실험결과

    - NLU (GLUE 벤치마크)

     

    - NLG (E2E NLG Challenge)

     

    - vs. GPT3

     

    - 최적의 rank r을 찾는 실험: 저자들은 Grassmann distance를 기반으로 다음과 같이 두 subspace의 유사도를 측정하였는데, 자세한건 논문을 참고해주세요!

    댓글

by KUKLIFE