# [Paper] ModerBERT

최근 올라오는 임베딩 모델 중 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

![Image](https://upload.cafenono.com/image/slashpagePost/20251110/140654_sf1a49T0Kh8NXYqss1?q=80&s=1280x180&t=outside&f=webp)

- NLU / Information Retreival / Long Context Retrieval / Code Retrieval로 평가를 진행함

- 다 이전 BERT계열 모델로 평가를 수행하였음

- 확실히 IR 부분에서는 다른 모델들보다 Base/Large 모두 좋은 성능을 보였음

- Large도 거의 마찬가지 (다른 모델들에 성능이 좀 떨어지는 것이 있지만 거의 차이가 없음)

효율성 평가

![Image](https://upload.cafenono.com/image/slashpagePost/20251110/140702_rllkwnsotMgf9OSVsr?q=80&s=1280x180&t=outside&f=webp)

- 파라미터가 거의 비슷함에도 불구하고, batch size를 크게 가져감

    - variable length에 대해서는 다른 모델들 보다 좋음

    - 고정된 길이에 대해서는 조금 떨어짐

![Image](https://upload.cafenono.com/image/slashpagePost/20251110/140715_zb0RHdfD3D3vGRRtzL?q=80&s=1280x180&t=outside&f=webp)

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"에 대한 임베딩의 시작?이라고 볼 수 있는듯

For the site tree, see the [root Markdown](https://slashpage.com/paperl.md).
