Llama 3
이번 글에서는 메타의 LLM인 Llama3에 대해 살펴보도록 하겠습니다. LLaMA(Large Language Model Meta AI) 모델 메타의 오픈소스 LLM 모델로 2023년 2월에 Llama1이 처음 발표되었다. 트랜스포머 아키텍처를 기반으로 하며, Llama2의 경우 Llama1에서 학습 데이터를 40% 더 많이 사용하였다. 7B, 13B, 70B 등 여러 파라미터 사이즈의 모델이 존재하며, Alpaca와 Vinuca 같이 수많은 파생 모델이 존재한다. GPT-3와의 차이점 GeLU 대신 SwiGLU 활성화 함수 사용 Swish와 GLU의 조합인 활성화 함수로 실험적으로 성능이 뛰어나서 사용 Swish는 학습 가능한 파라미터인 $β$ 값에 따라 다른 특성을 가지는 활성화 함수 GLU(Gated Linear Units)는 모델이 신경망에서 정보가 흐르는 것을 선택적으로 조절할 수 있도록 해주는 방법 SwiGLU에서 β, W, b는 모두 학습 가능한 파라미터 SwiGLU(x) = x * sigmoid(β * x) + (**1** - sigmoid(β * x)) * (Wx + b) 절대 위치 임베딩 대신 Rotary Positional Embedding(RoPE) 사용 트랜스포머는 위치를 고려 못하기 때문에 위치 임베딩 추가 필요 기존 트랜스포머는 절대 위치 임베딩을 사용하여 위치에 따른 사인함수와 코사인 함수 값을 더하는 방식을 사용 RoPE는 시퀀스의 각 위치마다 고유한 값의 회전을 통하여 절대 위치 임베딩과 상대 위치 임베딩을 통합하는 방법 Root-Mean-Square(제곱평균제곱근) 레이어 정규화 사용 모델이 재스케일링에 영향을 받지 않고, 적절한 학습률을 자동으로 찾아가는 암시적 학습률 적응 능력을 갖게 됨 기본 레이어 정규화에 비하여 계산이 효율적이고 안정적 Grouped Query Attention 사용 기존 Multihead Attention에서는 계산된 key와 value 벡터를 디코딩 단계에 쓸 수 있도록 저장하는 Key-Value caching 때문에 연산에 비용이 많이 소요되고, 디코딩 단계마다 캐시를 로드하고 업데이트 해야 하기 때문에 메모리 오버헤드 발생 Grouped Query Attention은 Query를 그룹으로 나누고 각 그룹이 Key와 Value를 공유하도록 하여 긴 컨텍스트에서 어텐션 계산을 더 빨리 할 수 있도록 함
1