위키득계정 ↗
기술

활성값 체크포인팅

활성값 체크포인팅기술
영문
Activation Checkpointing
다른 표현
재계산 기반 메모리 절약
저장 대상
선택한 중간 활성값
대가
추가 계산
활성값 체크포인팅은 역전파에 필요한 중간값 일부만 저장하고 나머지는 필요할 때 다시 계산하는 학습 메모리 절약 방법이다. 추가 순전파 계산과 활성값 저장량을 교환한다.

다시 계산할 기준점

역전파는 순전파에서 만든 중간값을 필요로 할 수 있다. 모든 값을 보관하는 대신 일부 기준점을 남기고 그 사이의 계산을 반복하면 저장 공간을 줄일 수 있다. 학습을 재개하기 위해 파일에 전체 상태를 저장하는 체크포인트와는 목적이 다르다.

구간 나누기의 독립 예제

연속된 열두 층에서 0, 4, 8, 12 위치를 기준점으로 두는 가상 구성을 생각하자. 뒤쪽 구간의 역전파를 준비할 때 8번 위치부터 내부 값을 다시 계산할 수 있다. 정확한 최대 저장량은 실행 일정과 각 층의 크기에 따라 달라진다.

재계산의 일관성

다시 실행할 때 난수나 변경 가능한 상태가 달라지면 처음과 다른 중간값이 생길 수 있다. 드롭아웃과 상태를 바꾸는 연산을 어떻게 다루는지 확인해야 한다. 일부 값을 저장하지 않는다는 사실만으로 원래 기울기 계산이 자동으로 유지되지는 않는다.

전체 메모리와 시간

절약하는 주 대상은 중간 활성값이며 가중치와 옵티마이저 상태가 모두 사라지는 것은 아니다. 기준점 배치와 구간 크기에 따라 추가 계산량이 달라진다. 메모리가 부족할 때의 유용성과 목표 품질에 도달하는 실제 학습 시간을 함께 비교한다.

관련 문서

가역 잔차 신경망 / ZeRO 학습 메모리 최적화 / GPipe / 역전파 / 언어 모형 / 트랜스포머