Forward Pass에서 학습 메모리까지

이 경로는 딥러닝 학습의 한 step을 텐서 흐름으로 이해하는 경로입니다.

먼저 모델을 여러 층의 행렬 연산으로 보고, 추론은 forward만 수행하지만 학습은 forward, backward, optimizer update까지 수행한다는 차이를 잡습니다.

그다음 forward가 activation을 만들고, backward가 저장된 activation을 다시 사용해 gradient를 계산하며, optimizer가 parameter를 업데이트하는 과정을 따라갑니다. 마지막으로 학습 메모리를 구성하는 네 가지 큰 덩어리와, 메모리를 줄이기 위한 activation checkpointing과 gradient accumulation을 다룹니다.

  1. 모델은 행렬 연산의 반복이다 — 딥러닝 모델을 여러 층의 행렬 곱셈과 비선형 연산이 이어진 계산 그래프로 본다.
  2. Forward Pass — 입력이 layer를 지나며 activation을 만들고 다음 layer의 입력으로 전달되는 과정.
  3. Activations — Forward 중간값이 backward 계산과 학습 메모리에서 왜 중요한지 이해한다.
  4. Backward Pass — Loss에서 시작해 거꾸로 gradient를 전파하고 parameter gradient를 계산한다.
  5. Gradients and Optimizer Update — Gradient가 parameter를 바꾸는 신호가 되고, optimizer가 실제 업데이트를 수행한다.
  6. Training Memory Overview — 학습 메모리를 parameters, activations, gradients, optimizer states로 나눠 본다.
  7. Activation Checkpointing — 일부 activation만 저장하고 나머지는 backward 때 재계산해서 메모리를 줄인다.
  8. Gradient Accumulation — 작은 micro-batch 여러 번의 gradient를 누적해 큰 batch처럼 업데이트한다.