한 권으로 끝내는 실전 LLM 파인튜닝 - 강다솔 지음/위키북스 |
03. 전체 파인튜닝
Gemma 모델 구조 분석
Gemma는 매개변수를 늘려 성능을 높이는데 집중한 기존 모델들과 달리, 모델의 크기를 줄여도 성능을 유지하며 효율적으로 작동할 수 있다는 것을 보여줬다.
GPT와 Gemma의 모델 구조를 비교한 이미지다. 해상도가 좀 낮지만.. 어쨌든 가장 눈에 띄는 변화는 input_layernorm과 post_attention_layernorm가 추가된 것이다. layernorm(RMSNorm)은 그레디언트가 너무 크거나 작아지지 않고 항상 적절한 크기를 유지하도록 조절해 주는 장치다. 다음으로 다른 부분은 Rotary Position Embedding(RoPE)으로 위치 정보를 회전하는 원판처럼 표한하는 방식이다. 이를 통해 텍스트의 구조를 모델의 처음(입력)부터 끝(출력)까지 일관되게 전달한다. 마지막으로 Gemma에는 GPT에 사용된 ReLU의 한계를 극복하고 입력 값을 부드럽게 변형시켜 주는 GeGLU(Gated GELU)라는 새로운 활성화 함수를 사용했다고 한다.
지금까지 GPT와 Gemma의 차이점을 확인해 봤고, 다음은 새로 공개된 Gemma 2와 기존 Gemma 모델을 비교한 표다.
특징 | Gemma | Gemma2 |
어텐션 유형 | 멀티헤드 어텐션 | 로컬 슬라이딩 윈도 및 글로벌 어텐션, 그룹 쿼리 어텐션 |
훈련 방식 | 다음 토큰 예측 | 지식 증류(2B, 9b), 다음 토큰 예측(27B) |
정규화 | RMSNorm | RMSNorm |
로짓 제한 | 없음 | 어텐션 및 최종 레이어의 로짓 제한 적용 |
모델 크기 | 2B, 7B 모델 | 2B, 9B, 27B 모델 |
여기서 '로짓(logit)'은 최종 예측을 내리기 직전의 값을 말하는데 이를 특정 범위로 제한하는 방법을 로짓 클리핑(logit clipping)이라고 한다. Gemma 2에는 모델이 지나치게 극단적으로 예측하는 것을 막기 위한 방법으로 로짓 클리핑이 적용됐다고 한다.
Llama3 모델 구조 분석
Llama 3에 적용된 기술 중 RoPE, RMSNorm, 그룹 쿼리 어텐션(GQA) 등은 Gemma에도 적용된 동일한 기술이고, 다른 부분은 활성화 함수다. Llama 3에는 SwiGLU 활성화 함수가 사용됐는데 이는 기존의 GLU(게이트 선형 단위)를 개선한 것으로, 스위시(Swish)라는 비선형 함수와 특별한 수학적 연산을 결합한 것이라고 한다. SwiGLU는 입력 신호를 비선현적으로 변환하고 조절하는데, 이 과정에서 중요한 정보는 강조되고, 불필요한 정보는 억제된다.
다음 표는 지금까지 알아본 GPT, Gemma, Gemma 2, Llama 3 모델의 특성을 비교한 표다.
특징 | GPT | Gemma | Gemma 2 | Llama 3 |
아키텍처 | Decoder | Decoder | Decoder | Decoder |
위치 인코딩 | Sinusoidal PE | RoPE | RoPE | RoPE |
정규화 | Layer Norm | RMS Norm | RMS Norm | RMS Norm |
어텐션 매커니즘 | Multi-Head Attention | Multi-Head Attention | - Local Sliding - Windonw and Global Attention - Grouped-Query Attention |
Grouped Multi-Query Attention |
활성화 | ReLU | GEGLU | GEGLU | SwiGLU |
데이터 크기 | 4.5M+36M | ~ 6T | ~ 13T | 15T |
아키텍처는 모두 Decoder 구조를 사용한다. 포지셔널 인코딩을 보면 GPT는 사인과 코사인을 이용한 Sinusoidal positional Encoding을 사용하고 나머지 모델들은 RoPE를 사용한다. 정규화도 GPT만 다르고, 어텐션 매커니즘을 주목해야 하는데 연산량을 줄이는 방향으로 발전했다고 한다. 나머지는 표에 있는 내용 그대로다. 5일 차는 여기까지. 6일 차 스터디에서는 Gemma, Llama를 깊이 공부하기 전에 GPU 병렬화 기법을 배운다. 끝.
'개발 > AI' 카테고리의 다른 글
[Day7] LLM 스터디 1기 - 단일 GPU Gemma 파인튜닝 (1) | 2025.01.17 |
---|---|
[Day6] LLM 스터디 1기 - GPU 병렬화 기법 (0) | 2025.01.16 |
[Day4] LLM 스터디 1기 - 파인튜닝 개념 (1) | 2025.01.11 |
[Day3] LLM 스터디 1기 - 멀티헤드 어텐션 & 피드포워드 (1) | 2025.01.10 |
[Day2] LLM 스터디 1기 - 언어 모델 구조 및 셀프 어텐션 메커니즘 이해 (3) | 2025.01.05 |