일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- deep learning
- 이상탐지
- 데이터 파싱
- rrf
- 활성화 함수
- Non-Maximum Suppression
- LLaVA
- visual instruction tuning
- 손실함수
- LLM
- pdf parsing
- rag-fusion
- 퍼셉트론
- nlp
- 합성곱 신경망
- fine tuning
- 파인튜닝
- anomaly detection
- Cross Entropy Error
- qlora
- Mean squared error
- 딥러닝
- 활성화함수
- leetcode
- 오차역전파
- multi-query
- Time Series
- gemma3
- rag parsing
- 시계열
- Today
- Total
Attention, Please!!!
Google의 새로운 대항마 Gemma 3 모델 리뷰 본문

2025년 3월 중 구글은 Gemma 모델 시리즈의 업데이트 버전인 Gemma 3를 발표하였다. 이 모델은 비슷한 파라미터를 가진 다른 오픈 소스 모델들에 비해 강력한 성능을 보여주며, 100B 파라미터 미만의 오픈 LLM 중 가장 뛰어난 능력을 갖춘 Gemma 3의 27B 모델이 있다. 이를 달성하기 위해 구글은 정확도와 효율성을 모두 개선할 수 있는 새로운 아키텍처를 개발하였으며, Gemma 3는 기본적으로 멀티모달 기능을 지원하여 텍스트와 이미지 입력을 모두 처리할 수 있다는 아주 강력한 장점이 있는 모델이다.

더 나아가 Gemma 3 모델은 "single-accelerator model"을 기반으로 설계 되었으며, LMAreana 리더보드에서 Chatbot Arena Elo Score 평가에서 LLaMA3 시리즈의 405B 모델, DeepSeek-V3, o3-mini와 같은 대형 모델에 비해 월등히 성능이 좋은 것을 알 수 있다. 여기에서 Single-accelerator model이 의미하는 바는 여러 개의 GPU 혹은 TPU 같은 accelerator를 사용하지 않고, 하나의 accelerator에서 효율적으로 작동할 수 있게 설계 되었다는 것이다. 여기에서 시사하는 바는 고성능의 GPU 혹은 TPU를 보유하고 있지 않아도, 웬만하면 사용자 입맛에 맞게 파인튜닝을 할 수 있다는 점이다... 갓 구글.....
따라서, 본 게시물에서는 Gemma 3 모델의 주요 아키텍처를 살펴보고, 이러한 개선들이 성능, 효율성, 사용성 측면에서 어떤 영향을 줄 수 있는지에 대해 알아보고자 한다. 추가적으로 파인튜닝을 효과적으로 수행하기 위한 메모리 관점, 학습 효율성에 미치는 요인에 대해서도 알아볼 것이다.
Model Architecture
Gemma 3 모델은 "Decoder-only transformer architecture" 기반으로 학습되었으며, 기존 Gemma 시리즈의 아키텍처를 유지하면서도 몇 가지 수정을 통해 Gemma 3를 선보였으며, 이에 대해 알아보고자 한다.
1. Grouped-Query Attention (GQA)
GQA는 2023년에 Google Research에서 제안된 기법으로, 기존 multi-head attention(MHA)에서 쿼리를 여러 그룹으로 나누어 계산하는 것을 의미한다. MHA에서는 독립적으로 쿼리(Query), 키(Key), 값(Value)을 할당하지만, GQA는 쿼리를 그룹화해 키와 값의 계산을 공유한다. 즉, 만약에 8개 헤드가 있다면, GQA는 이를 4개 그룹으로 묶고 각 그룹당 하나의 쿼리를 사용해서 계산량을 줄이는 데 초점을 둔다. Gemma 3 모델은 128,000 token을 지원하는 데 이때의 어텐션 계산 비용이 기하급수적으로 증가하게 되는데, GQA 방식을 도입하여 이러한 메모리 관점에서 많은 이득을 본다. Gemma 3 모델은 "single-accerlator model" 이기 때문에, 메모리 사용량을 어떻게든 줄이는 방법이라고 생각하면 좋을거 같다.
2. RMSNorm을 통한 pre-norm & post-norm
RMSNorm 개념은 2019년도에 Edinburgh 및 Zurich 대학에서 제안된 정규화 기법이다. LayerNorm 같은 경우, 입력 벡터의 평균과 분산을 모두 사용해 정규화하는 반면, RMSNorm은 평균 계산을 생략하고, RMS만 사용하기 때문에 계산이 더 간단하고 효율적이면서도 비슷한 효과를 준다. 이러한 정규화의 핵심 아이디어는 레이어 간 값의 분포를 안정화해 학습을 더 원활하게 만드는 것에 대해 초점을 둔다. 근데 Gemma 3의 technical report에서 RMSNorm을 pre-norm(사전 정규화) 및 post-norm(사후 정규화)에 모두 사용한다고 한다.
- pre-norm: Norm Layer --> Attention or FFN --> Residual
- post-norm: Attention or FFN --> Residual --> Norm Layer
그럼 도대체 왜 굳이 pre-norm과 post-norm이 필요한 이유는 생각보다 단순하다. 앞에서 언급하였듯이 Gemma 3 모델은 멀티모달(Image & Text)을 지원하는 모델이기 때문에, 각각의 다른 modality으로 인하여 feature에 대한 스케일이 어긋날 수 도 있다. 그래서 두 개의 Norm Layer을 사용하는 것은 단순하게 텍스트와 이미지 데이터에 대한 분포를 맞춰준다고 생각하면 된다.
3. Soft-Capping 대신 QK-Norm
Gemma 3 모델에서 차용한 QK-Norm에 대해 알아보기에 앞서 일단 soft-capping의 개념에 대해서 먼저 알아보고자 한다. Soft-capping은 Gemma 2 모델에서 사용된 기법이며, 이는 출력 값을 특정 임계값 내로 제한하는 기법이다. 예를 들어, 값이 너무 커지지 않도록 로그 함수나 tanh와 같은 비선형 함수로 "캡핑"하는 것이다. 이는 모델의 안정성을 극대화할 수 있지만, model representation 측면에서는 별로 좋지 않다. 이러한 이유로 인하여 정보 손실이 발생하며, 멀티 모달 데이터의 복잡한 패턴을 학습하는 데 큰 제한이 생기기 때문에 Gemma 3 모델에서는 사용되지 않았다.
Gemma 2에서 채택된 Soft-Capping 방식은 모델의 표현 능력을 감소시켜 다른 방안이 필요하였다. 그래서 2020년 Cyndx Techologies에서 제안한 QK-Norm 기법을 선택하였다.일반적으로 쿼리(Query)와 키(Key) 간의 내적을 통해 Attention Score을 계산하게 된다. 하지만 이러한 방식은 멀티모달의 쿼리(Query:텍스트) 및 키(Key:이미지) or vice versa와 같은 조합에서 두 벡터 간의 내적을 구하고 Softmax 함수를 거치게 된다면, attention score가 극단적으로 편향될 가능성이 매우 높아지므로, 특정 토큰에만 집중하는 경우가 발생한다.
따라서, 멀티모달 측면에서 attention의 분포를 안정화하고, modality 간의 scale mismatch를 없애주는 방법이 필요한데, 이게 바로 QK-Norm 기법이다. QK-Norm은 단순하게 쿼리(Query) 및 키(Key) 벡터에 대해 정규화를 적용해서, attention score가 지나치게 커지거나 작아지는 것을 방지하는 데 큰 목적을 둔다.
4. Pan & Scan 기법 (Image 처리 방법)
이전 Gemma 시리즈 모델들은 텍스만 처리할 수 있는 모델이였지만, Gemma 3 모델은 멀티모달 기능을 지원한다. Gemma 3의 놀라운 점은 단순한 언어 생성 모델이 아닌, 이미지 캡셔닝, 시각적 질의응답, 텍스트-이미지 생성 등 다양한 작업에 활용될 수 있다는 것이다. 이를 위해 Gemma 3 모델은 4 억개의 파라미터를 가진 SigLIP 비전 인코더와 통합되었다. SigLIP은 어떻게 보면 CLIP 모델과 굉장히 유사하지만, 시그모이드 손실 함수를 사용해 학습되었다는 것이 가장 큰 차별점이다. 이러한 인코더를 통해 이미지를 소프트 이미지 토큰 시퀸스로 변환하게 되는데, 이는 텍스트 토큰과 유사한 형태로 처리할 수 있다는 것이 가장 큰 장점이다. 또한, 모델이 이미지를 전체적으로 처리하지 않고, 이미지 임베딩을 256개의 고정 크키 벡터로 압축하여 모델의 추론 비용을 상대적으로 줄일 수 있다. 하지만 SigLIP의 가장 큰 단점은 896 x 896 픽셀의 특정 해상도에서 작동하는 데, 거의 대부분의 이미지들은 다양한 크기와 형태를 가지게 된다. 어떤 것은 1920 x 1080이고 어떤 것은 1280 x 720인 것처럼 천차만별이다. 이러한 문제점을 해결하기 위해 Gemma 3 모델에서는 Pan&Scan이라는 기법을 도입하였다. 이는 이미지를 여러 개의 작은 조각으로 나누는 방식이며, 각 조각들이 서로 겹치지 않도록 분할하는 것을 의미한다.
SigLIP은 특정 해상도만 처리할 수 있지만, 입력 데이터가 896 x 896 해상도 보다 높다면, 이를 896 x 896 해상도에 맞춰서 Pan&Scan(비중첩 크롭핑)을 통해 SigLIP의 해상도와 맞춘다. 예를 들어, 1920×1080 해상도의 원본 이미지를 고정 크기인 896×896으로 나누어 가로로 2개(1792), 세로로 1개(896) 조각들이 생성되고, 남은 부분(128×184)은 자르거나 별도로 처리한다.
5. Longer Context Support (5:1 Interleaving Local/Global Layer)
Gemma 3 모델은 128,000개의 토큰을 처리할 수 있다. 단, 1B 모델 같은 경우는 32,000 토큰으로 제한된다. 128,000 토큰을 처리하게 되면, 일반적으로 추론하는 과정에서 KV Cache의 크기가 기하급수적으로 커지므로 메모리가 죽어가는 현상이 발생하게 된다. 이에 Gemma 3 모델에서는 로컬 레이어와 글로벌 레이러를 5:1 비율로 혼합하여, 5개의 로컬 레이어 뒤에 1개의 글로벌 레이어가 오도록 interleaving하게 설계하였다. 근데 이때 가장 첫번 째 레이어는 LOCAL LAYER이다. 여기에서 로컬 레이어는 1,024 토큰의 비교적 짧은 세그먼트만 처리하며, 글로벌 레이어는 전체적인 컨텍스트를 담당하게 된다. 이렇게 설계한 이유는 메모리 사용량을 억제하면서도 모델이 local/global 관점에서 컨텍스트를 유지하기 위함이다.
Model Training
Gemma 3 모델에 대해 사전 학습을 어떠한 데이터, 토큰나이저, 필터링, 증류(Distillation)를 하였는지에 대해서는 너무나도 일반적인 내용이기 때문에 다루지 않을 것입니다. 하지만, On-device 환경에 실질적으로 사용할 수 있는지에 대한 post-training optimization 관점에 대해 알아보고자 한다.
1. Quantization Aware Tuning for Efficiency
모델을 더 작고 효율적으로 만들기 위해 구글 연구진은 mixed-precision 기법을 사용했다. 이 기법은 단일 정밀도에 의존하지 않고, fp32, fp16, bfloat16, int8 같은 여러 정밀도를 상황에 맞게 조합하여 계산 성능과 메모리 효율성을 최적화하는 방법이다. 과거에는 LLM을 훈련하거나 추론할 때 주로 fp32를 사용해 정밀도를 극대화했지만, 2024년 말부터는 중요한 연산에 높은 정밀도(fp32)를, 속도와 메모리 절약이 필요한 부분에 낮은 정밀도(fp16, int4)를 적용하는 방식이 대세로 자리잡았다.
이러한 트렌드는 최근 LLM 시장에서 두드러진다. Microsoft는 "Optimizing Large Language Model Training Using FP4 Quantization" 논문을 통해 FP4 정밀도로도 LLM을 훈련하고 추론할 수 있음을 증명하며 업계에 큰 반향을 일으켰다. DeepSeek 역시 낮은 mixed-precision을 활용해 주목받았다. 이처럼 정밀도를 유연하게 조정하는 것은 LLM의 학습과 배포에서 점점 더 중요한 요소가 되고 있다.
여기서 Quantization Aware Training, 줄여서 QAT는 모델을 낮은 정밀도로 양자화할 때 쓰이는 핵심 기술이다. 이는 가중치와 연산을 32비트나 16비트에서 4비트나 8비트로 바꾸면서도 성능 저하를 줄이기 위해 훈련 중 미리 조정하는 방법이다. Gemma 3는 QAT를 통해 모델을 경량화하였다. 예를 들어, 일반적으로 LLM은 높은 정밀도(bfloat16)로 훈련되며, Gemma 3의 27B 모델은 이 형식으로 54GB 메모리를 차지한다. 하지만 QAT를 적용하면 int4나 fp8로 변환하면서 사전 훈련 후 수천 번의 파인튜닝 절차를 통해 오차를 줄이고 성능을 유지할 수 있게 되었다. Gemma 3에서는 int4, 블록별 int4, fp8 버전에 QAT를 활용해 메모리를 14GB까지 줄였으며, KV 캐시를 포함했을 때는 전체적인 메모리의 사용량을 32.8GB로 효율성을 높였다.
2. Instruction-Tuning and Reinforcement Learning
사전 훈련(Pre-training)을 마친 후, 모델은 수학, 추론, 대화, 다국어 작업 능력을 높이기 위해 명령 조정(Instruction-tuning)을 거쳤다. 구글 연구진은 BOND, WARM, WARP 같은 모델의 기술을 활용하여 지식 증류(Knowledge Distillation)와 강화 학습(RL)을 결합하였다. 이때 보상 함수는 human feedback data를 기반으로 WARM을 훈련시켜 프로그래밍 출력 품질을 개선하였으며, 정답 보상 함수를 추가하여 논리적 추론 능력을 강화시켜 수학 문제를 어려움 없이 수행할 수 있는 능력을 갖추게 되었다. 사후 훈련 필터링 단계는 Hallucination(환각)을 줄이고 사실성을 높이는 데 초점을 맞췄으며, 다른 성능 저하 없이 설계되었다. 개인 정보, 안전하지 않은 출력, 잘못된 자기 식별, 중복 예제는 훈련 데이터에서 제외했다.
'LLM' 카테고리의 다른 글
과연, Perplexity를 기반으로 LLM을 평가하는 것이 합리적일까? (0) | 2025.04.09 |
---|---|
LLM 추론 시 GPU 메모리 사용량 알아보기 (0) | 2025.03.22 |