📍 Abstract
Gemma는 Gemini 모델을 만드는 데 사용된 연구 및 기술로 구축된 가벼운 sota 오픈 모델이다. Gemma는 언어 이해, 추론 및 안정성에 대한 벤치마크에서 강력한 성능을 보여주며 2B, 7B 두 가지 크기의 모델을 제공한다. 18개의 벤치마크 중 11개에서 비슷한 크기의 오픈 모델보다 뛰어난 성능을 보였다.
📍 Introduction
Gemma는 Gemini 모델과 유사한 아키텍처, 데이터, 훈련 방법을 사용하여 최대 6T 토큰의 텍스트에서 학습되었다. 모델의 크기는 2B, 7B가 제공되었다.
- 7B Gemma
- 70억 개의 파라미터 모델
- GPU 및 TPU에서 효율적인 배포 및 개발을 위함
- 2B Gemma
- 20억 개의 파라미터 모델
- CPU 및 온디바이스 애플리케이션을 위함
📍 Model Architecture
Gemma는 transformer 디코더 기반의 모델이다. 모델은 8192개 토큰의 context 길이로 훈련된다. (context length란 LLM이 한 번에 처리할 수 있는 토큰 수이다. input sequence의 최대 길이이다.)
Gemma에서는 초기 transformer 논문 이후 제안된 여러가지 개선 사항을 활용한다.
🔵 Muti-Query Attention (MQA)
MQA는 Multi-head attention(MHA)에서 각 attention head가 독립적인 쿼리, 키, 밸류 세트를 사용하는 대신 모든 head가 동일한 키와 값 세트를 공유하는 방식이다. 쿼리만 여러 개 사용하고 키와 밸류는 공유하여 사용한다. 대규모 모델에서는 MHA에서 각각의 쿼리, 키, 밸류 세트로 인해 계산량이 매우 커지는데, MQA는 공유된 키와 밸류를 사용하여 메모리 사용량과 계산 복잡도를 줄인다.
(GQA 논문 - https://arxiv.org/abs/2305.13245 )
7B 모델은 multi-head attention을 사용한 반면 2B 모델은 multi-query attention을 사용했다. 용량을 더 줄이기 위한 변형이다.
🔵 RoPE Embeddings
RoPE Embedding은 Rotary Position Embedding이다. 기존의 positional encoding이 위치 정보를 입력에 추가하는 방식이라면, RoPE는 각 입력 토큰의 위치에 따른 회전 변환을 적용해 입력 데이터를 처리한다고 한다. positional encoding 방식보다 계산 효율성이 높다고 한다. 또한 모델의 크기를 줄이기 위해 입력과 출력에서 임베딩을 공유한다.
🔵 GeGLU Activations
표준 ReLU 비선형성은 GeGLU 활성화 함수로 대체된다.
🔵 RMSNorm
📍 Training Infrastructure
Gemma 모델은 TPUv5e를 사용하여 훈련되었다.
📍 Pretraining
- Training data
Gemma 2B와 7B는 각각 영어데이터(웹 문서, 수학 및 코드)의 2T, 6T 토큰에서 학습되었다. Gemini와 다르게 Gemma는 멀티 모달이 아니다. (멀티모달 AI란 여러 인터페이스를 통해 서로 다른 유형의 정보를 컴퓨터가 학습하여 사고할 수 있게 만든 AI이다. 예를 들면 이미지를 받아 이미지와 관련된 질문의 답을 생성하는 모델이 있다. ) 또한 다국어 작업을 잘 수행하도록 훈련되지는 않았다. 따라서 영어 외 언어를 사용하고자 할 때는 파인튜닝이 필요하다.
- Filtering
📍 Instruction Tuning
- Supervised Fine-Tuning
- Filtering
- Formatting
Instruction tuning 된 모델은 대화에서의 역할을 표시하고 대화 차례를 구분하는 formatter로 훈련되었다. 아래와 같은 토큰이 있다.
- Reinforcement Learning from Human Feed-back
RLHF를 사용하여 supervised 파인튜닝 모델을 조정했다. 예전에 배웠던 RLHF가 나왔길래 당시 공부했던 강의 자료를 첨부해보았다.
📍 Evaluation
- Human Preference Evaluations
위 이미지는 사람의 선호도를 기반으로 한 평가 결과로 비교 대상 모델은 Mistral v0.2 7B이다. %로 적힌 수치는 Gemma의 승률이다. Win/Tie/Loss 의 구체적인 수치도 각각 나와있다. 두 모델의 답변을 사람에게 제공하여 더 나은 답변을 선택하도록 했을 때 선택된 것이 이긴 것(Win)이다. 그런데 초기 버전의 논문을 보면 수치가 약 5% 가량 더 낮다. 모델이 업데이트 되며 성능이 더 좋아져서 평가 결과가 좋아진 것인가 했는데 아래 나오는 자동 벤치마크 평가 결과는 초기 논문과 변함이 없다. 인간 피드백을 통한 강화학습이 이루어졌으므로 사람이 선호하는 방향으로 파인튜닝이 이루어져 사람의 선호도가 더 높아졌으나 벤치마크는 더 나은 성능이 나오지 않아 기존 수치를 그대로 사용한 것일 수 있을 것 같다.
- Automated Benchmarks
transformer 구조를 기반으로 하는 언어모델이 많다보니 계속 GQA 논문이 보인다. 다음 시간에는 이 논문을 공부해보고 넘어가야겠다. 또 세부적인 Embedding 기법들이 항상 소개되는데 깊게 이해하지 않고 이런 것이 경량화를 위해 사용되었구나 수준으로 넘어갔는데 이번에 나온 RoPE는 특히 더 모르겠다. 또 평가를 할 때 비교 대상이 된 모델들이 어떻게 선정되었는지도 궁금해졌다. Gemma는 Mistral-7B와 비교되어 사람의 선호도 평가가 이루어졌는데 왜 굳이 Mistral-7B와 비교했을까?도 궁금하다. 저번과 비슷한 수준으로 공부한 것 같은데 왠지 이번에는 더 얕게 읽는 듯한 느낌도 들었다. 기술 하나하나에 대한 이해의 깊이도 조금씩 더 늘려가야겠다.
'엣지컴퓨팅' 카테고리의 다른 글
LLaMA2의 GQA 코드 살펴보기 (1) | 2024.10.30 |
---|---|
[논문 읽기] LLaMA: Open and Efficient Foundation Language Models (4) | 2024.10.14 |
[논문읽기] GQA: Training Generalized Multi-Query Transformer Models fromMulti-Head Checkpoints (0) | 2024.10.07 |
[MIT 6.5940] EfficientML.ai Lec03: Pruning and Sparsity (1) | 2024.09.18 |
[논문읽기] Mobile LLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases (1) | 2024.09.15 |