Llama 3 vs 3.1 모델 비교
Oct 7, 2024
개요
Llama 3와 3.1 모델이 얼마만큼 차이가 있는지 비교해본다. 또한 Qwen2와 아키텍처 차이를 확인해본다.
모델 구조 비교
llama 3 8B의 마지막 레이어는 다음과 같다. 이후 버전인 3.1, 3.2도 모두 동일한 구조를 갖고 있다.
model.layers.31.input_layernorm.weight [4 096]
model.layers.31.mlp.down_proj.weight [4 096, 14 336]
model.layers.31.mlp.gate_proj.weight [14 336, 4 096]
model.layers.31.mlp.up_proj.weight [14 336, 4 096]
model.layers.31.post_attention_layernorm.weight [4 096]
model.layers.31.self_attn.k_proj.weight [1 024, 4 096]
model.layers.31.self_attn.o_proj.weight [4 096, 4 096]
model.layers.31.self_attn.q_proj.weight [4 096, 4 096]
model.layers.31.self_attn.v_proj.weight [1 024, 4 096]
model.norm.weight [4 096]
lm_head.weight [128 256, 4 096]
Qwen2 7B의 마지막 레이어는 다음과 같다. 2.5도 동일한 구조를 갖고 있다.
model.layers.27.input_layernorm.weight [3 584]
model.layers.27.mlp.down_proj.weight [3 584, 18 944]
model.layers.27.mlp.gate_proj.weight [18 944, 3 584]
model.layers.27.mlp.up_proj.weight [18 944, 3 584]
model.layers.27.post_attention_layernorm.weight [3 584]
model.layers.27.self_attn.k_proj.bias [512]
model.layers.27.self_attn.k_proj.weight [512, 3 584]
model.layers.27.self_attn.o_proj.weight [3 584, 3 584]
model.layers.27.self_attn.q_proj.bias [3 584]
model.layers.27.self_attn.q_proj.weight [3 584, 3 584]
model.layers.27.self_attn.v_proj.bias [512]
model.layers.27.self_attn.v_proj.weight [512, 3 584]
model.norm.weight [3 584]
lm_head.weight [152 064, 3 584]
Vocab Size뿐만 아니라 아키텍처의 사이즈도 많이 다르며, Qwen2의 경우 QKV에 bias도 별도로 갖고 있다.
라마 3.2 1B까지 차이
GPT-2 이후 라마 2부터 변화 과정을 도식화하면 다음과 같다.1 라마 3 이후 GQA가 모든 모델에 적용된 것 외에는 계속 동일하다.
모델 변화
Llama 3 8B와 Llama 3.1 8B의 변화를 첫 번째 모델을 기준으로 퍼센트로 산출하면 다음과 같다. 일부 아웃라이어가 있기 때문에 평균이 아닌 중앙값(median)으로 산출했다.
주로 인풋에 가까운 레이어의 변화가 크며, Q의 첫 번째 레이어는 40% 가까운 변화를 보인다. input_layernorm과 post_attention_layernorm은 뒤로 갈수록 2%내로 변화가 줄어들며 전반적으로 큰 차이가 없다. 그러나 MLP를 비롯한 나머지 레이어는 대부분 20% 내외의 변화가 있다.
파라미터의 변화를 추출하는 코드는 (비공개) #1-14 model-diff.py
에 비공개로 관리한다.
파라미터 설명
히트맵으로 언급한 각 파라미터와 모델에서의 위치는 다음과 같다.
- input_layernorm
- self_attn_q_proj
- self_attn_k_proj
- self_attn_v_proj
- self_attn_o_proj
- post_attention_layernorm
- mlp_gate_proj
- mlp_up_proj
- mlp_down_proj
Llama 3.1 모델 및 파라미터 위치
앞서 모델 구조에 파라미터 위치를 표기하여 최종 정리해보면 다음과 같다.