Language Models from Scratch

Problem: researchers are becoming disconnected from the underlying technology.

Building small language models might not be representative of large language models

“작은 모델에서 관찰한 특성이 큰 모델에서도 동일하다고 가정할 수 없다.”

작은 모델(760M) FLOPs 비율

  • MHA 35%, FFN 44% 큰 모델(175B) FLOPs 비율
  • MHA 17%, FFN 80%

모델의 Scale 변화에 따른 모델의 계산 특성 변화가 일어날 수 있다. 즉 FLOPS 구성 변화에 따른 계산/메모리/하드에어 특성 변화가 있을 수 있고, 이는 병목 및 최적화 포인트의 변화 가능성이다.

Scale 증가에 따른 모델의 task 성능/행동 변화

It’s all about efficiency

How do you train the best model given a fixed set of resources?

Resources

  • Data
  • Compute
  • Memory
  • Communication bandwidth
    현재는 compute-constrained이므로, 제한된 Hardware에서 최대한의 성능을 얻는 방향으로 설계한다.

Efficiency drives design decisions

  • Data processing → 나쁜/불필요한 데이터에 Compute 낭비하지 않기
  • Tokenization → sequence length를 줄여 Compute 효율 향상
  • Model architecture → Memory/FLOPs 감소
  • Training → 제한된 Compute를 효율적으로 사용
  • Scaling laws → 작은 모델로 Hyperparameter 탐색
  • Alignment → 원하는 목적에 맞게 모델을 조정하여 필요한 Base Model 규모 감소

Course Overview

systems() scaling_laws() data() alignment()