[논문 리뷰] Efficient softmax approximation for GPUs
Adaptive softmax는 매우 큰 어휘에서 학습을 가속화하기 위해 GPU 최적화된 두-클러스터 계층형 소프트맥스를 제공하며, perplexity가 전체 소프트맥스에 근접한 상태에서 상당한 속도 향상을 달성합니다.
We propose an approximate strategy to efficiently train neural network based language models over very large vocabularies. Our approach, called adaptive softmax, circumvents the linear dependency on the vocabulary size by exploiting the unbalanced word distribution to form clusters that explicitly minimize the expectation of computation time. Our approach further reduces the computational time by exploiting the specificities of modern architectures and matrix-matrix vector operations, making it particularly suited for graphical processing units. Our experiments carried out on standard benchmarks, such as EuroParl and One Billion Word, show that our approach brings a large gain in efficiency over standard approximations while achieving an accuracy close to that of the full softmax. The code of our method is available at https://github.com/facebookresearch/adaptive-softmax.
연구 동기 및 목표
- Adaptive softmax를 도입하여 GPUs에서 매우 큰 어휘의 효율적인 언어 모델링에 대한 필요성을 촉진합니다.
- 자주 등장하는 단어의 분포를 기반으로 계산 시간을 최소화하도록 계산을 최적화하는 Adaptive softmax를 소개합니다.
- 표준 벤치마크에서 경험적 속도 향상과 정확도 유지를 입증합니다.
제안 방법
- GPU에서 행렬 곱셈의 계산 시간 모델을 정의합니다.
- 비대칭 크기를 가진 머리(head, 자주 등장하는 단어)와 꼬리(tail, 드물게 등장하는 단어)로 어휘를 분할합니다.
- 빠른 접근을 위해 머리 클러스터를 루트에 두고 꼬리 분류기의 용량을 줄이기 위한 프로젝션을 사용합니다.
- 다중 클러스터로 일반화하고 동적 프로그래밍 접근법으로 클러스터 크기를 최적화합니다.
- Baseline과 비교하여 Text8, Europarl, and One Billion Word에서 실험적으로 평가합니다.
실험 결과
연구 질문
- RQ1적응적이고 GPU를 인지한 계층적 소프트맥스가 계산 시간을 줄이면서 전체 소프트맥스를 근사할 수 있습니까?
- RQ2정확도를 유지하면서 기대 계산 시간을 최소화하도록 단어 클러스터의 크기는 어떻게 해야 합니까?
- RQ3적응적 소프트맥스가 perplexity와 학습 속도 측면에서 다른 대규모 어휘 전략과 어떻게 비교됩니까?
- RQ4루트에서 자주 등장하는 단어를 짧은 목록으로 사용하는 것과 이를 리프(leaf)로 배치하는 것의 영향은 무엇입니까?
- RQ5One Billion Word와 같은 매우 큰 말뭉치에 이 방법이 확장 가능합니까?
주요 결과
| 모델 | 테스트 퍼플렉시티 | 걸린 시간 (분) |
|---|---|---|
| Full softmax | 144 | 83 |
| Sampling | 166 | 41 |
| HSM (freq) | 166 | 34 |
| HSM (sim) | 155 | 41 |
| D-softmax | 195 | 53 |
| D-softmax [*] | 147 | 54 |
| Ours | 147 | 30 |
- Adaptive softmax는 대형 말뭉치에서 전체 softmax 대비 2배에서 10배의 속도 향상을 달성하면서도 전체 모델과 가까운 perplexity를 유지합니다.
- 두-클러스터 머리-꼬리 구성은 정확도 손실을 최소화하면서 상당한 속도 향상을 제공합니다(예: 예시의 5배 이상).
- 적은 수의 클러스터(2–5)가 속도-퍼플렉시티의 우호적인 트레이드오프를 제공하며, 더 많은 클러스터는 수익이 감소합니다.
- 꼬리 용량은 프로젝션으로 축소되어 희귀 단어 학습의 효율성을 유지하면서도 전체 은닉 차원의 사용을 피합니다.
- Text8에서 이 방법은 전체 소프트맥스의 perplexity에 약간의 차이로 근접한 채 가장 빠르며, Europarl과 One Billion Word에서도 유사한 perplexity에서 여러 베이스라인보다 속도가 더 우수합니다.
- 이 방법은 Five 에폭 후 One Billion Word에서 43.9 perplexity를 달성하고 단일 GPU로 3일 미만 소요되어 더 큰 다-GPU 구성과 경쟁력이 있습니다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.