티스토리 뷰

반응형

apple에서 나온 논문

 

2024년 4월 22일

 

huggingface에 오픈 소스로 코드가 있다. 

바로 다음날에 MS에서 더 작은 크기의 모델이 나왔다.

 

transformer 기반의 구조를 가지고 있는 기존 LLM은 isotropic(모든 방향으로 동일한 성질, 모든 transformer 계층이 구조적으로 동일하다)

장점 - 구현과 학습이 간단하다.

단점 - 다양한 유형의 정보를 처리해야 하는 경우(문법, 문맥 등) 특정 유형의 정보를 처리하기 힘둘 수 있다.

 

OpenELM은 anisotropic하다는 걸 말하고 시작하고 있다.

 

기존의 LLM보다 토큰도 작고, 모델 사이즈도 작으나, Average acc에서 더 좋은 성능을 보인다.

공개 데이터셋을 사용했다.

Source Subset Tokens
RefinedWeb 665 B
RedPajama
Github 59 B
Books 26 B
ArXiv 28 B
Wikipedia 24 B
StackExchange 20 B
C4 175 B
PILE 207 B
Dolma
The Stack 411 B
Reddit 89 B
PeS2o 70 B
Project Gutenberg 6 B
Wikipedia + Wikibooks 4.3 B

 

사전 학습

layer-wise scaling이라는 방법을 사용

표준 Transformer은 MHA와 FFN(feed forward network)으로 구성되어 파라미터를 균일하게 할당한다.

OpenELM에서는 lws를 사용해 head의 개수와 ffn배율을 조정해

파라미터를 비균일하게 할당한다.

 

어텐션 헤드 수와 ffn 배율을 정의하고,

alpha에서 어텐션 헤드 수와 ffn 차원을 조절한다.

beta에서 ffn 차원을 조절하는 최소와 최대를 구한다.

 

OpenELM Architecture

 

1.bias 사용하지 않음

2. RMSNorm 및 RoPE 적용 - 정규화 방식 다양하게

3. GQA(grouped Query Attention 사용

4.SwlGLU FFN 적용

5. Flash Attention 사용 / Liama와 같은 토크나이저 사용

 

편향 매개변수(bias) 미사용

완전연결 레이어(Fully conneted Layer)에서는 각 뉴런이나 층에 사용되는 편향 매개변수를 사용하지 않는다.

이는 연산량을 줄여 모델의 효율성과 성능을 향상시킨다.

 

bias는 모델의 출력값이 0이 아니도록 해주고 더 잘 학습될 수 있도록 도와준다.

 

하지만 현대 딥러닝에서는 BatchNorm, layerNorm, RMSNorm 등 다양한 정규화 기법이 사용된다.

이런 정규화 기법들로 충분한 안정화를 할 수 있으며, bias 역할과 중복될 수 있어 bias가 불필요해질 수 있다.

그래서 bias를 제거함으로서 파라미터 수를 줄이고, 과적합을 방지할 수 있다.

 

사전 정규화 적용

RMSNorm(제곱 평균 제곱근 정규화)를 사용하여 사전 정규화를 적용하고, 토큰의 상대적 위치 정보의 인코딩을 위해 RoPE(Rotatory Positional Embedding)을 사용한다.

 

RoPE 같은 경우에는 rotation 행렬을 이용한 임베딩이다.

기존의 Transformer만 말고, 기저벡터 변환을 이용해서 다른 좌표평면에서 보는 방식

 

GQA(grouped Query Attention) 사용

기존의 Multi-Head Attention이 아닌, Grouped-Query Attention을 사용한다.

 

GQA는 입력 텍스트의 다양한 부분을 동시에 고려해서, 모델이 더 넓은 문맥을 이해하고, 다양한 종류의 추론 작업을 수행할 수 있도록 한다.

Multi-query와 Multi-head의 중간

 

SwlGLU FFN 적용

보통 ReLU, Swish를 많이 쓰는데,

SwiGLU = Swish + GLU로 입력값의 특징을 효과적으로 추출하고, 정보를 적절하게 필터링하여 전달한다.

모델의 표현력을 향상시키고, 학습 능력 개선에 도움된다.

 

GLU는 입력을 두 개의 선형변환으로 나누고, sigmoid 함수를 수행한다.

게이팅 메커니즘

 

Flash Attention 사용 / Liama와 같은 토크나이저 사용

Flash Attention은 dot-product 계싼을 더 효율적으로 하게 도와준다.

특히 대규모 시퀀스에서 attention 메커니즘이 필요할 때, 계산 부담을 크게 줄여준다.

 

 

Zero-shot tasks에서의 성능 평가

시간이 지날수록 성능이 향상되는 것을 확인할 수 있다.

 

Mobiliama와 비교 했을 때는 더 적은 model size와 token을 사용했지만, 더 나은 성능을 보였다.

 

결론

 

1. 파라미터 수를 많이 줄인 오픈 소스 OpenELM 모델 제시

2. layer-wise scaling 등의 방법을 사용해 효과적으로 파라미터를 줄였다.

3. zero-shot, 모델 간 비교 등, 다양한 성능평가에서 좋은 결과를 얻었고

추가적으로 양자화도 수행할 수 있다.

 

 

 

반응형