기술 가이드

활성화 재계산 장단점

활성화 재계산(그라데이션 또는 활성화 체크포인트)은 순방향 패스에서 중간 활성화를 삭제하고 역방향 패스 중에 다시 계산하여 훈련 중에 GPU 메모리를 절약합니다.

2분 읽기마지막 업데이트

개요

It trades extra compute for the ability to train larger models or longer sequences on the same hardware.

심층 분석

역전파는 기울기를 계산하기 위해 순방향 통과 활성화가 필요하므로 기본적으로 모든 레이어의 출력이 저장됩니다. 이는 모델 크기, 배치 크기 및 시퀀스 길이에 따라 증가하는 막대한 메모리 비용입니다. 활성화 재계산은 몇 개의 '체크포인트' 텐서(종종 레이어 경계)만 유지하고 나머지는 버립니다. 역방향 전달 중에 요청 시 삭제된 활성화를 다시 생성하기 위해 체크포인트 간의 순방향 계산을 다시 실행합니다. 전형적인 결과는 sqrt(N) 레이어마다 체크포인트를 배치하면 메모리가 대략 O(sqrt(N))로 떨어지면서 약 1개의 추가 정방향 패스(약 33% 더 많은 컴퓨팅)를 추가한다는 것입니다. 선택적 변형은 비용이 많이 드는 작업을 캐싱하면서 저렴하지만 메모리 사용량이 많은 작업(예: 주의 또는 드롭아웃)만 다시 계산하여 훨씬 적은 재계산 오버헤드로 대부분의 메모리 절약 효과를 얻습니다.

기술적 통찰력

근본적인 절충점은 메모리와 FLOP입니다. 전체 재계산은 대략 단계당 하나의 추가 정방향 패스(~30-40% 느림)를 추가하지만 활성화 메모리를 몇 배나 줄일 수 있습니다. 현명한 움직임은 선택적 체크포인트입니다. 메모리는 크지만 컴퓨팅 비용은 저렴한 작업(softmax, layernorm, GELU, attention 점수)을 식별하고 해당 작업만 다시 계산하는 동시에 값비싼 GEMM의 결과를 캐시하여 유지함으로써 낭비되는 컴퓨팅을 최소화합니다.

전략적 영향

비용 및 예산

아키텍처 결정은 수년 동안 성능과 운영 비용을 결정합니다.

더 명확한 결정들

기술 교육은 팀이 최신 스택뿐만 아니라 올바른 스택을 선택하는 데 도움이 됩니다.

품질 관리

더 나은 엔지니어링 선택은 생산 시 신뢰성 사고를 줄입니다.

활성화 재계산 트레이드오프의 미래

재계산은 점점 더 자동화되고 선택적으로 이루어지고 있습니다. 이제 프레임워크는 각 작업의 메모리와 FLOP 비용을 프로파일링하여 최적의 체크포인트를 선택하고 CPU/NVMe에 대한 활성화 오프로딩 및 병렬 처리 전략과 재계산을 결합합니다. 컨텍스트 길이와 모델 크기가 계속 증가함에 따라 작업별 재계산 결정을 자동으로 선택하는 컴파일러 기반 정책(PyTorch, JAX/XLA)과 통신과 재계산의 중첩이 더욱 긴밀해지기 때문에 추가 FLOP가 부분적으로 숨겨집니다.

실제 구현

각 레이어 블록을 체크포인트하여 다른 방법으로는 적합하지 않은 대형 변환기를 훈련합니다.

PyTorch의 torch.utils.checkpoint를 사용하여 변환기 블록 래핑 및 활성화 메모리 자르기

Megatron-LM에서 Attention/softmax를 선택적으로 재계산하여 속도 저하를 최소화하면서 메모리를 절약합니다.

활성화를 저장하는 대신 다시 계산하여 고정된 GPU 예산에서 더 긴 시퀀스 길이를 활성화합니다.

위험 및 가드레일

하나의 벤치마크를 최적화하면 더 광범위한 시스템 약점을 숨길 수 있습니다.

인프라 및 유지 관리 비용은 종종 과소평가됩니다.

시스템이 더욱 복잡해짐에 따라 보안 및 관찰 가능성의 격차가 커질 수 있습니다.

구현 로드맵

1

구현하기 전에 지연 시간, 품질, 비용 목표를 정의하세요.

2

현실적인 로드 및 데이터 조건에서 벤치마킹합니다.

3

오류, 드리프트 및 사용자 영향에 대한 계측기 모니터링.

4

확장하기 전에 롤백 및 사고 대응 경로를 준비하세요.

계속 탐색하세요

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Activation Recomputation Tradeoffs quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

퀴즈 시작

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

다음 가이드

SmoothQuant 및 활성화 양자화

자주 묻는 질문

What is Activation Recomputation Tradeoffs?

활성화 재계산(그라데이션 또는 활성화 체크포인트)은 순방향 패스에서 중간 활성화를 삭제하고 역방향 패스 중에 다시 계산하여 훈련 중에 GPU 메모리를 절약합니다. 동일한 하드웨어에서 더 큰 모델이나 더 긴 시퀀스를 훈련하는 기능을 위해 추가 컴퓨팅을 교환합니다.

메모리를 절약하기 위해 활성화 재계산은 무엇을 교환합니까?

재계산은 저장된 활성화를 삭제하고 역방향 패스에서 다시 생성하므로 추가 계산을 사용하여 메모리 사용량을 줄입니다.

정방향 통과 활성화가 일반적으로 저장되는 이유는 무엇입니까?

역방향 패스는 순방향 활성화를 사용하여 그래디언트를 계산하므로 기본적으로 역방향 패스가 실행될 때까지 메모리에 유지됩니다.

전체 활성화 재계산으로 인해 일반적으로 추가되는 추가 컴퓨팅 양은 대략 얼마나 됩니까?

전체 재계산은 역방향 패스 중에 순방향 계산을 다시 실행하여 약 30~40% 더 많은 계산량으로 약 1개의 추가 순방향 패스를 추가합니다.

선택적(전체가 아님) 재계산의 기본 개념은 무엇입니까?

선택적 재계산은 메모리는 많이 사용하지만 컴퓨팅은 거의 사용하지 않는 작업(예: 소프트맥스 또는 레이어놈)을 대상으로 하며, 비용이 많이 드는 GEMM 결과를 캐싱하여 낭비되는 FLOP를 최소화합니다.

더 많은 메모리를 절약하기 위해 종종 재계산과 결합되는 보완 기술은 무엇입니까?

활성화 오프로딩은 일부 활성화를 CPU/NVMe 스토리지로 이동하며 추가 메모리 절약을 위해 재계산 및 병렬 처리와 자주 결합됩니다.