다음은 <한권으로 끝내는 실전 LLM 파인튜닝> 도서의 스터디 Day5 요약입니다.
3.2 _ Gemma와 Llama 3 모델 구조 분석
3.2.1 Gemma 모델 구조 분석
- 모델의 크기를 줄여 고성능 컴퓨팅 자원이 부족한 환경에서도 언어 모델을 활용할 수 있게 하려는 혁신적 시도를 함.
- 모델의 크기를 줄이면서도 성능을 유지할 수 있는 효율적 설계가 가능함을 보여줌.
- input_layernorm과 post_attention_layernorm 2가지 요소가 추가됨. 이는 학습 과정에서 발생할 수 있는 gradient vanishing, gradient exploding 문제를 해결하기 위함이었음.
- 1. layernorm(RMSNorm) : 그래디언트라는 방향 지시등이 항상 적절한 크기를 유지하도록 조절해 주는 장치. layernorm(RMSNorm)은 데이터의 각 부분에 대해 평균 크기를 계산하고, 이를 기준으로 데이터를 독립적으로 조정한다.
- 2. Rotary Position Embedding(RoPE)의 도입 : 위치 정보를 회전 원판처럼 표현하는 방식. 각 토큰의 위치를 상대적인 각도로 표현한다. 각도로 표현된 위치 정보는 모델의 여러 층을 거치면서도 그 의미가 변하지 않는다. 따라서 텍스트의 구조가 모델의 처음부터 끝까지 일관되게 전달된다.
- 3. 활성화 함수 : GPT의 경우 ReLU 활성화 함수를 사용함. 이는 학습 과정에서 일부 뉴런이 항상 0을 출력하게 되는 Dead Neuron 문제를 야기함. Gemma는 이를 극복하기 위해 GELU(Gaussian Error Linear Unit)와 게이트 메커니즘인 GLU(Gated Linea Unit)을 결합한 아래 그림의 GeGLU(Gated GELU)라는 새로운 활성화 함수를 사용함. (논문 읽어볼 것)
- 게이트는 이전에 입력받은 문장과 새롭게 들어온 텍스트 간의 요소별 곱셈(dot prodct)을 통해 어떤 정보가 중요하고, 어떤 정보가 덜 중요한지 파악해 중요한 정보만을 전달하는 문지기 역할을 한다. 이렇게 변형된 GeGLU 함수는 입력값을 부드럽게 변형시켜 신경망이 더 복잡한 패턴을 학습할 수 있게 함.
3.2.2 Gemma와 Gemma 2 모델 비교
특징 | Gemma | Gemma2 |
어텐션 유형 | 멀티헤드 어텐션 | 로컬 슬라이딩 윈도우 및 글로벌 어텐션 그룹 쿼리 어텐션 |
훈련 방식 | 다음 토큰 예측 | 지식 증류(2B, 9B), 다음 토큰 예측(27B) |
정규화 | RMSNorm | RMSNorm |
로짓 제한 | 없음 | 어텐션 및 최종 레이어의 로짓 제한 적용 |
모델 크기 | 2B, 7B | 2B, 9B, 27B |
- 로컬 슬라이딩 : 각 토큰을 중심으로 특정 구간 내의 다른 토큰들과의 관계를 집중적으로 계산
- 글로벌 어텐션 : 넓은 구간 내의 모든 토큰 관계를 고려
- 그룹 쿼리 어텐션 : Head 수를 줄이기 위해 Query를 그룹화해서 사용함. 이러면 Keys와 Values 수도 줄어든다.
- 로짓 클리핑(Logit Clipping) : 최종 예측 내리기 직전 값인 logit을 특정 범위로 제한하는 방법. 입력 데이터의 중요한 부분에 집중하는 신경망의 마지막 층과 최종 출력층 사이에서 이뤄지는 작업. 예측값이 정해진 범위를 벗어나면 그 범위의 최댓값이나 최솟값으로 조정해 모델이 지나치게 극단적으로 예측하는 것을 막고 안전한 결과를 생성하기 위함.
3.2.3 Llama3 모델 구조 분석
- Meta에서 만든 대규모 언어모델. 오픈소스라는 점이 특이점이다.
- Gemma 2와 마찬가지로 RoPE 사용해 각 토큰의 위치를 상대적인 각도로 표현해 모델의 여러 층을 거치면서도 위치 정보가 일관되게 유지됨.
- RMSNorm 사용해 학습 과정 중 그래디언트가 너무 커지거나 작아지는 문제를 해결
- 그룹 쿼리 어텐션(GQA) 구조를 차용, 다중 쿼리와 다중 헤드 어텐션의 장점을 효과적으로 결합한 방식.
생성모델은 일반적으로 이전 생성한 내용의 핵심 정보를 저장해 두고 새로운 내용을 생헝할때 이를 참조한다. 하지만 다중 헤드 어텐션 모델에서 처리할 내용이 길어지거나 배치 크기가 커질수록 이 저장된 정보가 차지하는 메모리가 급격히 증가함. 다중 쿼리 어텐션(MQA)은 이 문제를 해결하기 위해 여러 질문에 대해 단일 키-값 쌍만을 사용한다. Llama3 모델은 이런 메모리 문제를 더 개선하기 위해 GQA 구조를 도입했다. - SwiGLU 활성화 함수 : 기존의 GLU를 개선, Swish 비선형함수와 특별한 수학적 연산을 결합해 사용함. 하나는 입력 신호를 변형하는 비선형 Swish 함수이고, 다른 하나는 그 변형된 신호를 조절하는 게이트이다. 이 게이트는 입력 신호의 어떤 부분이 다음 뉴런으로 전달될지를 결정한다. 입력 신호를 비선형적으로 변환하고 조절함으로써 중요한 정보는 강조하고 불필요한 정보는 억제하는 효과를 낸다. 또한 잔차 연결을 통해 원래의 입력 신호를 그대로 출력에 더해주면서, 정보를 변환하고 걸러내도 잔차 연결이 원본 정보를 보존한다.
3.2.4 GPT, Gemma, Llama 비교
특징 | GPT | Gemma | Gemma2 | Llam3 |
아키텍처 | Decoder | Decoder | Decoder | Decoder |
위치 인코딩 | Sinusodial PE | RoPE | RoPE | RoPE |
정규화 | Layer Norm | RMS Norm | RMS Norm | RMS Norm |
어텐션 메커니즘 | Multi-Head Attention | Multi-Head Attention | Local Sliding Window and Global Attention Grouped-Query Attention |
Grouped Multi-Query Attention |
활성화 | ReLU | GEGLU | GEGLU | SwiGLU |
데이터 크기 | 4.5M + 36M | ~6T | ~13T | 15T |
- 어텐션 메커니즘이 연산량을 줄이는 방식으로 발전해왔다.
각 구조를 더 자세히 이해하기 위해서는 논문을 따로 찾아봐야 할 듯 함.
'NLP' 카테고리의 다른 글
[Day 7] 한권으로 끝내는 실전 LLM 파인튜닝 - 단일 GPU Gemma-2B-it 파인튜닝 (0) | 2025.01.09 |
---|---|
[Day6] 한권으로 끝내는 실전 LLM 파인튜닝 - GPU 병렬화 기법 (0) | 2025.01.08 |
[Day4] 한권으로 끝내는 실전 LLM 파인튜닝 - 전체 파인튜닝 개념 & 데이터 준비 (2) | 2025.01.05 |
[Day3] 한권으로 끝내는 실전 LLM 파인튜닝 - 멀티헤드 어텐션과 피드포워드 (4) | 2025.01.03 |
[CS224N] Lecture 5: Recurrent Neural Networks RNNs (1) | 2024.04.21 |