Background
BERT(Transformer)의 구조를 수식으로 아래와 같이 표현
Multi-Head Self-Attention


Feed-Forward Network & 잔차연결 + 정규화

Threshold Token Pruning
어떻게 프루닝을 할 것인지?
방법
수식



문장에서 토큰이 프루닝(제거)되는 과정

Learnable Threshold for Token Pruning
임계값을 기반으로 프루닝을 한다면, 레이어마다 어떻게 임계값을 학습(설정)할 것인지?

임계값을 학습하기 위해서는 현재 여러 문제점이 존재함
해결법
수식
토큰 중요도와 임계값의 차를 T(온도)로 스케일링 및 시그모이드 함수 통과
T가 작을수록 계단함수와 같아져 하드 마스크에 가까워짐


임계값 학습 방법

규제
임계값 학습시 모든 토큰을 유지하려는 경향이 생김 (모든 토큰을 남기는 것이 훈련 loss에 유리하기 때문)
L1 loss를 통해 pruning 비율을 높이는 항을 추가함
수식
가 클수록 더 많이 프루닝됨


성능 평가 (모델: RoBERTa-base)
정확도가 1% 내외로 감소하지만, 1.8배 이상의 속도 향상

동일한 FLOPs 조건에서의 정확도 평가
대부분의 GLUE task에서 SpAtten, LAT 등의 기존 방법보다 높은 정확도 보임
QQP 데이터셋에 대해서는 상대적으로 낮은 정확도를 보임
SST-2, STS-B 데이터셋과 같이 훈련, 평가 시퀀스 길이 분포 차이가 큰 경우는 LAT보다 월등한 성능



SQuAD 2.0 데이터셋(정답이 있거나 없는 질문)에서 프루닝 비율에 따른 성능 변화
프루닝 비율을 높임(FLOPs를 줄임)
- Has Ans 성능은 하락 (중요한 토큰이 잘려 정답의 위치를 못 찾음)
- No Ans 성능은 상승 (불필요한 토큰이 잘려 “답 없음”을 더 잘 예측)
- ⇒ 의 조절이 중요함

시퀀스 길이 변동 강건성
LAT는 과대 프루닝으로 인해 긴 문장에서 크게 정확도가 떨어지지만, LTP는 정확도가 유지됨

처리량 실험
배치 크기가 커질수록 LTP의 속도 향상이 더 커짐, 2배 정도 처리량 증가

양자화 적용 실험
