Iniciar sesión

[Paper] ModerBERT

P
paper Lee
최근 올라오는 임베딩 모델 중 ModernBERT 구조 기반으로 학습된 모델들이 많다. 이에따라, ModernBERT 모델의 논문을 리뷰를 해보자
(11/10) Code Review는 아직 진행 중

TL;DR

기존 BERT보다 512 → 8192 input token으로 증가
RoPE (Rotary Positional Encoding)
GeGLU, Normalization, Bias Term Disabling, Deep-Narrow, Alternating Attention, Flash Attention 2 / 3, Unpadding 등 최신 기법들을 사용해서 아키텍쳐를 구성함
Alternating Attention으로 로컬-글로벌 어텐션
2조 개의 토큰으로 훈련함 (근데 영어 데이터로만 했음)

1. 논문이 다루는 Task

GLUE, IR, Code IR
IR도 Single-Vector, Multi-Vector를 테스트하고, MLDR (long document)를 평가함

2. 기존 연구 한계

가장 중요한건, 컨텍스트 길이 제한 (512), 비효율적인 아키텍처
학습 효율만 개선 / 검색 성능에 초점.. 이런식으로 한 부분에만 초점을 뒀음
추가로, 데이터가 너무 구식이라 코드 과제에서 한계가 있다함

3. 제안 방법론:

Main Idea

Architectural Improvements

Modern Transformer
RoPE
위치 정보 처리랑 더 많은 컨텍스트를 처리하기 위함
Normalization
pre-Normalization
입력 임베딩 이후에 먼저 layerNorm을 넣는 방식
안정적인 학습을 하기위함
long Context + Deep Layer로 인해서 post-Norm 방식으로는 학습이 어려워지기 때문에, pre-norm 방식으로 안정적으로 학습시킴
또한, Warm-up 의존도도 낮고, lr schedule 설계가 수월해짐
즉 결국은 long context에서의 학습을 위해서 설계되었다는 것
Bias Term 제거
바이어스 항을 대부분 다 제거함 (마지막 Decoder layer를 제외하고)
파라미터가 더 유용한 학습에 집중되도록 설계
Deep&Narrow 구조여서 동일 파라미터에서 더 큰 모델을 표현하기 위함
Bias도 하나의 파라미터이기 때문에..
구현 자체는 nn.Linear(.., bias=False) 이런식으로 구현할 수 있음
Activation
GeGLU
모델 표현력을 더 높이기 위함

Efficiency Improvement

Alternating Attention
매 3개 layer마다 global attention으로 처리 (전체 토큰이 어텐션을 주고 받기)
각각 RoPE의 Theta값을 다르게 설계함
이 방식은 전체 context를 잃지 않으면서 연산복잡도를 줄인다고함
global → local → global → local …식으로 어텐션을 적용함
나머지에는 sliding window로 local attention 처리 (일부 토큰만 어텐션 주고 받기)
Unpadding
보통 우리가 입력 시퀀스를 만들 때 padding 토큰을 생성하는데, 이걸 하지 않음
필요시 출력에서 다시 패딩을 복원하는 방식
long context에서 padding의 비율이 늘어나면 좀 메모리가 낭비되는게 있다고 함
Flash Attention 2/3이 가변 길이 처리를 지원 → 고효율로 어텐션 계산
Model Design
Deep & Narrow
layer는 진짜 많은데, 각 layer의 dimension이 작음
표현 계층이 깊고 추상화 능력이 높음
최근 언어모델 트렌드라고함

Trainig / Data

최근 Mixture Data들을 사용
영어 데이터로 구성된 2조 개의 토큰으로 학습
웹문서, 과학문헌, 코드데이터
토크나이저
OLMo 토크나이저 기반의 현대적인 BPE 토크나이저
코드 관련 작업 효율성과 성능을 개선하기 위함
CLS, SEP → BERT와 동일한 스페셜 토큰 사용
시퀀스패킹
Greedy 패킹 알고리즘 → 효율 99% 달성, 배치크기 균일화
마스킹 비율
30%의 마스킹 비율 사용 → 기존 15%는 효율적이지 못함
최적화 / LR 스케쥴
StableAdamW
파라미터별 학습률을 조정
안정적인 학습을 이끔
WSD
warming up 이 있고, 대부분 구간에서 LR이 고정됨 → Decay도 적음

✨Contribution

RoPE를 사용해서 8192 token까지 context 길이를 확장함
RoPE theta 크기 / 업샘플링 / LR Scheduling 다ㅏㅏㅏ 해야 성능이 올라감
downstream task 전반에 가장 균형 잡힌 모델을 만들 수 있게 됨

4. 실험 및 결과

Evaluation

NLU / Information Retreival / Long Context Retrieval / Code Retrieval로 평가를 진행함
다 이전 BERT계열 모델로 평가를 수행하였음
확실히 IR 부분에서는 다른 모델들보다 Base/Large 모두 좋은 성능을 보였음
Large도 거의 마찬가지 (다른 모델들에 성능이 좀 떨어지는 것이 있지만 거의 차이가 없음)
효율성 평가
파라미터가 거의 비슷함에도 불구하고, batch size를 크게 가져감
variable length에 대해서는 다른 모델들 보다 좋음
고정된 길이에 대해서는 조금 떨어짐
BEIR 전체 테스크에 대한 nDCG score

결과

Limit
Language : 영어데이터로만 학습해서 multilingual하지 않음
long context가 항상 최적은 아님, 짧은 문맥에서는 기존 모델보다 느릴 수도 있다고 함
주로 웹데이터 위주로 학습 → 내재된 편향이 있을 수 있음
MLM 목적 함수로 학습 → [MASK] 토큰을 대체할 단어를 예측하는 과정에서 일부 텍스트를 generate하는 능력이 있음
그럼 이상하게 생성할 수 있음
유해 콘텐츠의 위험성 존재
해당 논문은 데이터 규모, 아키텍처 개선 위주였음
scaling axis, model param 측면의 확장은 다루지 않았음
즉 모델크기를 키워서 한 실험은 없다는 뜻
개인 평
우선 기존 512 token 위주에서 8192 token으로 되었다는 것으로 Long Context에 대해 처리할 수 있음을 보였다는 것
이 때문에 현재 많은 embedding model들이 modernBERT 기반, XLM-RoBERTa 기반으로 되어가고 있음
또한 "code"에 대한 임베딩의 시작?이라고 볼 수 있는듯
Pa
Suscribirse a 'Paperl'
Si te suscribes al sitio, podrás recibir primero las últimas novedades, como nuevas publicaciones, mediante notificaciones y correo electrónico.
¡Regístrate en Slashpage y suscríbete a 'Paperl'!
Suscribirse
👍