본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
*_1. 학습 인증샷 4장 이상 포함
*_① 오늘자 날짜, 공부 시작 시각 포함 사진 1장
② 오늘자 날짜, 공부 종료 시각 포함 사진 1장
③ 1개 클립 수강 인증 사진 (강의장 목록 캡쳐, 강의 내용이 담긴 수강화면이 보이지 않도록) 1장
④ 학습 인증샷 1장 이상 (ex. 필기 촬영, 작업물, 등)
2. 학습 후기 700자 이상 (공백 제외)
LoRA란 무엇인가?
- 정의 : 대규모 언어 모델을 효율적으로 미세조정하는 기법으로, 전체 모델의 일부 파라미터만 학습하여 메모리와 계산 자원 효율성을 크게 향상시킴
- 목적
- 전체 파라미터 대신 추가적인 파라미터(주로 어댑터라 명명)만 학습하여 원본 LLM은 그대로 유지하는 방식
- 장점
- 학습 파라미터 수 대폭 감소 (ex. 전체 1%미만)
- 메모리 요구사항 감소 (최대 10배 이상 절약)
- 학습 속도 향상 (몇 배나 빠른 학습 속도)
- 원본 LLM 가중치는 학습되지 않은 채 보존 (학습한 어댑터를 버전 별로 교체하면서 사용하는 것이 가능)
풀 파인튜닝 (Full Fine-tuning)의 한계
파라미터 수의 문제
현재 LLM의 규모: 최신 LLM은 수십
- 수천억 개의 파라미터 보유
- 거대 모델 예시: GPT-3 (175B), LLAMA-3 (70B), Qwen-2.5 (72B)
- 자원의 한계: 전체 파라미터를 업데이트하는 것은 어지간한 큰 기업이 아니면 매우 부담스러운 일임
- 컴퓨팅 자원
- GPU 요구사항: 고성능 GPU 여러 대 필요 (NVIDIA A100등)
- 메모리 문제: (16비트 기준) LLaMA-3 70B는 140GB 이상 메모리 필요
- 학습시간/비용 : 수일
- 수주의 학습 시간과 막대한 클라우드 비용 발생
풀 파인튜닝 (Full Fine-tuning) - 전체 가중치 행렬 학습하기
LLM의 내부 연산은 기본적으로 행렬곱 : y = Wx
x: 입력 데이터 (벡터 상태)
W: LLM의 가중치 행렬 (학습 대상. 우리가 파라미터라 불리우는 값이 들어있는 행렬)
y: LLM의 중간 출력
학습과정: 모든 W 행렬의 값을 업데이트
문제점
메모리 부담 : 거대 언어 모델의 모든 파라미터를 메모리에 유지해야 함
과적합 위험 : 풀 파인 튜닝은 소량의 데이터 오류라도 모델 전체를 학습하므로, 언제나 모델이 쉽게 망가질 위험이 있음
특정 문제 특화 모델 : 특정문제에 특화된 모델을 만들 때에는 거대언어모델을 각각 학습하면, 거대언어모델 개수가 많아지고, 이에 따라서 필요한 GPU도 계속해서 늘어나게 됨 (반면, LoRA 튜닝은 각 특정 문제마다 모델을 학습해도 거대 언어모델은 1개)
LoRA 튜닝 - 작은 행렬을 추가하여 해당 행렬만 학습하기
LLM의 내부 연산 : y = Wx을 새로운 행렬이 포함된 식으로 변경하고 새로운 행렬만 학습하는 방식
LoRA 원리
LLM의 기존 가중치 행렬 (W)은 전혀 업데이트하지 않고 고정
새로운 행렬 A와 B라는 새로운 식을 추가하여 y=Wx식을 새로운 식 y=Wx + BAx로 변경
학습시에는 행렬 A,B만 학습하는 방식
이때 LLM의 기존 행렬 W에 비해서, 행렬 A와 B는 상대적으로 매우 작은 크기의 행렬을 사용
학습 시 기존 LLM의 거대한 가중치 행렬 W는 학습하지 않으므로, 학습 가능한 파라미터의 수 (행렬 A와 B)는 매우 작음
학습 후에는 기존 LLM은 전혀 학습이 안 되었으므로, 반드시 행렬 A와 B가 부착된 상태여야만 학습한 것처럼 동작
행렬 A와 B를 다시 분리하면 학습하지 않은 기존 LLM으로 돌아옴
실제 구현에는 y = Wx + BAx에 두가지 상수가 더 관여함. (r과 α)
r (rank) : “랭크” 또는 “알(r)”이라고 읽음. 저차원 행렬의 차원 수를 나타내는 랭크 값
α (alpha): “알파”, LoRA업데이트의 크기를 조절하는 스케일링 파라미터
α/r (alpha/r) : LoRA의 수식에서 중요한 비율로, 업데이트 크기와 학습의 안정성에 영향을 미침
이 두가지 값은 개발자가 직접 설정하는 값
LoRA의 핵심 파라미터
rank (r) 파라미터
랭크(r) : 저차원 분해의 차원 수를 결정하는 핵심 파라미터
r값이 클수록 : 표현력 증가 <-> 파라미터 수와 계산량 증가
r값이 작을수록 : 파라미터 효율성 증가 <-> 표현력 감소
일반적인 값 범위 : 4, 8, 16, 32, 64, 128
alpha (α) 파라미터
알파(α) : LoRA 업데이트의 크기를 조절하는 스케일링 파라미터
사용방식 : ΔW = (α/r) x BA 형태로 적용
역할 : α/r 비율이 학습의 안정성과 수렴 속도에 영향
일반적인 값 범위 : 8, 16, 32, 64
LoRA의 권장값
태스크 복잡도별 권장 값
복잡도 낮음 (텍스트 분류, 감정 분석)
r : (4
8) , α : 16
복잡도 중간 (요약, 단순 QA)
r : (8
16) , α : 32
복잡도 높음 (복잡한 QA, 코드 생성)
r : (32
64) , α : 64
복잡도 매우 높음 (창의적 글쓰기, 추론)
r : (64
128) , α : 128
트랜스포머 아키텍처 간단히 알아보기 : LoRA의 학습을 위한 기본 지식
LLM의 아키텍처 - 트랜스포머 : 현대 LLM의 기본구조, 트랜스포머의 블록을 쌓아 구성
트랜스포머 아키텍처에는 크게 ‘셀프 어텐션’과 ‘피드 포워드 네트워크’ 가 있음
셀프 어텐션
입력 시퀀스(문장) 내 각 토큰(단어)와 다른 토큰들 간의 의미적인 관계를 파악할 수 있도록 함
다시 말해, 문맥을 고려한 표현학습을 가능하게 함
핵심 구성 요소 : 쿼리(Query), 키(Key), 값(Value) 행렬이라는 것이 내부에 존재함
피드 포워드 네트워크의 역할
셀프 어텐션의 결과를 재조정하는 단계
입력으로 들어오는 벡터 or 행렬에 곱셈을 거치면서 아래와 같은 과정을 거침
입력 -> 확장 -> 수축 -> 출력
위의 과정을 거치면서 모델을 전체적인 표현력이 증가
핵심구성요소 : 이때 확장, 축소를 담당하는 행렬들이 존재
url : https://abit.ly/lisbva
'스타트업 투자 > 데이터 + 테크' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 34일차 : SFT와 DPO 강의 후기 (0) | 2025.05.04 |
---|---|
패스트캠퍼스 환급챌린지 33일차 : 양자화와 QLoRA 튜닝 강의 후기 (0) | 2025.05.03 |
패스트캠퍼스 환급챌린지 31일차 : 사전학습과 파인튜닝 강의 후기 (1) | 2025.05.01 |
패스트캠퍼스 환급챌린지 30일차 : 인공지능에서의 학습이란 강의 후기 (0) | 2025.04.30 |
패스트캠퍼스 환급챌린지 29일차 : No Answer 데이터 생성하기 강의 후기 (0) | 2025.04.29 |
댓글