Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 프로그래머스
- 코딩테스트
- 이분탐색
- 완전탐색
- 머신러닝
- Scaling Laws
- bfs/dfs
- 판다스
- 코딩테스트실력진단
- speaking
- peft
- 데이터분석
- 그래프이론
- Generative AI
- 플로이드와샬
- 알고리즘
- DP
- 코드트리
- Python
- Lora
- paper review
- Fine-Tuning
- Study
- LLM
- 파이썬
- 스터디
- 파인튜닝
- English
- Coursera
- 최단경로
Archives
- Today
- Total
생각하는 아져씨
PEFT, LoRA 입문하기✌️ 본문
앤드류 응 교수님의 강의를 듣고 정리 및 공부한 글임을 알려드립니다.
Generative AI with LLMs In Generative AI with Large Language Models (LLMs), created in partnership with AWS, you’ll learn the fundamentals of how generative AI works, and how to deploy it in real-world applications.
LoRA(Low Rank Adaptation)
- PEFT 중 Reparameterization 테크닉에 속하는 기법으로, 사전학습 모델에 학습이 가능한 Rank decomposition 행렬을 삽입한 것으로 파인튜닝 동안 학습되는 파라미터를 줄이는 전략
- 오리지널 모델의 파라미터를 freezing 하고
- ‘A Pair of Rank Decomposition Matrices’를 오리지널 weights에 주입합니다.
- 그리고 smaller matrices의 weights를 학습합니다.
- Rank Decomposition
- 행렬의 차원을 r 만큼 줄이는 행렬과 다시 원래 크기로 키워주는 행렬의 곱으로 나타내는 것을 의미합니다.
- 레이어 중간마다 존재하는 hidden states h에 값을 더해줄 수 있는 파라미터를 추가해 줘서 모델의 출력 값을 원하는 타깃 레이블에 맞게 튜닝하는 것이 LoRA 테크닉입니다.
- 핵심 포인트는,
- 오리지널 모델의 weights는 Freeze!
- 한 쌍의 rank decomposition matrices를 오리지널 모델의 weights에 주입!
LoRA Example 살펴보기
트랜스포머 아키텍처를 활용해 살펴보겠습니다.
- 트랜스포머에는 2 종류의 NN이 학습 → Self Attention & Feed forward Network
- 원래 이 2 파트는 pre-training 시 학습되는 parameter 들로, Full fine-tuning 진행 시 이 부분이 모두 update 됩니다.
- 하지만! LoRA를 사용하면 모두 update 하지 않아도 됩니다.
1. Original weights freeze : 먼저 오리지널 weights는 고정!
2. Matrix Multiply the low rank matrices : Low Rank Matrices의 행렬곱을 진행
3. Add to original weights : 오리지널 weights에 LoRA Matrices를 더함
4. Update weights : small matrices만 업데이트
LoRA의 장점
- LoRA significantly reduces parameters
- 트랜스포머 논문에 따르면, weights 차수가 512 * 64로 총 32,768개의 학습 파라미터 존재합니다.
- rank = 8 인 LoRa를 이용하면, 32,768개의 파라미터를 풀로 업데이트하지 않고, 작은 rank decomposition matrices를 대신 학습할 수 있습니다.
- 즉, B는 5128 = 4,096개, A는 864 = 512개로 총 4,608개 파라미터만 업데이트하면 되는 것이죠.
- 기존보다 86% 감소하게 되고,
- 그렇기 때문에 single gpu에서도 PEFT 가능하다는 장점이 있습니다.
- LoRA is flexible
- rank decomposition matrices가 아주 작기 때문 → 각 Task에 대해 fine-tune 할 수 있고, inference 시 weights를 업데이트할 수 있습니다.
- Full fine tuning 시, Task 마다 오리지널 LLM과 동일한 사이즈의 모델이 만들어지면서 → 모델을 저장하고 처리하는데 storage 문제가 발생할 수 있습니다.
- 하지만, LoRA로 공간도 절약하고 flexible 하게 적용이 가능하게 됩니다.
'Machine & Deep Learning > Generative AI' 카테고리의 다른 글
LLM의 효율적인 파인튜닝, PEFT 연구는 어떻게 흘러왔을까?🤩 (0) | 2023.10.20 |
---|---|
파라미터를 효율적으로 파인튜닝한다?! 🤩 (1) | 2023.10.20 |
Fine tuning 후 Model Evaluation(ROUGE, BLEU, Benchmarks) (0) | 2023.09.14 |
Instruction Fine-tuning과 Catastrophic Forgetting (0) | 2023.09.13 |
Fine-tuning - Instruction Fine-tuning에 대해서 (0) | 2023.09.12 |