AGAnchorGPU
← 모든 엔지니어링 가이드

GPU 워크로드 가이드

실제로 얼마나 많은 GPU VRAM가 필요합니까?

추론, 파인튜닝, 이미지 생성, 비디오 워크로드를 위한 실용적인 메모리 예산—24 GB부터 192 GB까지.

작성자 AnchorGPU · 업데이트 · 6분 읽기

VRAM은 모델 라벨이 아니라 예산입니다

GPU 메모리는 모델 가중치, 추론 KV 캐시, 임시 활성화, 프레임워크 작업 공간, 할당자 캐시, 그리고 학습 중에는 그래디언트와 옵티마이저 상태 등 여러 독립적인 범주에서 소비됩니다. 한 구성에서 모델이 맞는다고 해서 더 긴 컨텍스트, 더 큰 배치, 다른 정밀도 또는 더 많은 동시 요청에서도 맞는다는 것이 증명되지는 않습니다.

정확한 모델 개정판과 런타임 구성부터 계획하세요. 7B, 13B 또는 70B와 같은 라벨은 총 운영 메모리가 아닌 매개변수 규모를 설명하므로 GPU에 보편적으로 매핑해서는 안 됩니다.

먼저 원시 가중치를 추정하십시오

명시적으로 가상의 예로, 모델에 정확히 13억 개의 매개변수가 있고 모든 매개변수를 16비트 형식으로 저장한다고 가정합니다. 원시 가중치 저장 공간은 13,000,000,000 × 2바이트 = 26,000,000,000바이트, 즉 약 24.2 GiB입니다. 이 수치는 다른 모든 할당을 제외하므로 GPU 권장 사항이 아닌 하한입니다.

양자화는 가중치 저장 공간을 줄일 수 있지만 실제 메모리 사용량에는 스케일, 메타데이터, 역양자화 버퍼, 중복 텐서 및 런타임 작업 공간도 포함됩니다. 매개변수 수를 명목 비트 폭으로 나누고 그 결과를 최종 값으로 취급하는 대신 실제 로더가 생성한 형식을 사용하십시오.

추론은 KV 캐시와 작업 메모리를 추가합니다

자기회귀 서빙은 활성 시퀀스의 키 및 값 텐서를 유지합니다. KV 캐시 수요는 모델 아키텍처, 캐시 정밀도, 동시 시퀀스, 해당 시퀀스 전반의 라이브 토큰 수에 따라 달라집니다. 최대 컨텍스트 또는 동시성을 높이면 가중치가 성공적으로 로드되더라도 메모리가 소진될 수 있습니다.

임시 활성화, 어텐션 작업 공간, 컴파일된 커널, 통신 버퍼 및 프레임워크 할당자가 추가 메모리를 소비합니다. vLLM은(는) 사용 가능한 GPU KV 캐시 용량과 구성된 시퀀스 길이에 대한 추정 동시성을 보고합니다. 이러한 시작 수치는 계획 근거로 취급하고 프로덕션 워크로드를 커밋하기 전에 대표 프롬프트를 재생하십시오.

학습은 메모리 형태가 다릅니다

파인튜닝에는 그래디언트, 옵티마이저 상태, 저장된 활성화, 때로는 추가 전체 정밀도 복사본이 더해집니다. 정확한 크기는 옵티마이저, 정밀도 정책, 학습 가능한 파라미터 집합, 샤딩 전략에 따라 달라지므로 단일 추론 배수는 오해를 불러일으킬 수 있습니다.

DistributedDataParallel은 각 작업자에게 필요한 학습 상태를 복제하며, 여러 GPU를 하나의 연속된 메모리 풀로 만들지는 않습니다. Fully Sharded Data Parallel은 매개변수, 기울기, 옵티마이저 상태를 작업자 간에 분할할 수 있으며, 활성화 체크포인팅은 역전파 중 선택된 작업을 다시 계산하여 저장된 활성화 메모리를 줄입니다. 두 기법 모두 단순성 또는 연산량을 메모리와 맞바꿉니다.

실행할 구성을 측정하세요

정확한 프레임워크, 정밀도, 컨텍스트, 배치 및 병렬화 설정으로 모델 로딩과 대표적인 전체 추론 요청 또는 옵티마이저 업데이트를 포함한 학습 단계를 테스트하십시오. 최대 할당 및 예약 메모리를 기록한 다음 현실적인 동시성 또는 기울기 누적으로 반복하십시오. 마지막 가용 바이트를 목표로 하지 말고 운영 여유 공간을 남겨 두십시오.

측정된 최대치를 안전하게 줄일 수 없을 때 더 큰 메모리 GPU를 선택하세요. 소프트웨어가 모델 또는 워크로드를 명시적으로 분할하고 제공된 상호 연결이 알려진 경우에만 GPU를 추가하세요. 모델, 런타임, 양자화, 컨텍스트 또는 배치 변경 후 측정을 다시 실행하세요.

출처 및 편집 방법

공식 문서가 기술 설명을 뒷받침합니다. 하드웨어 권장 사항은 워크로드에 따른 당사의 해석이며 측정된 성능 보장이 아닙니다.

vLLM — 병렬 처리 및 확장PyTorch — FullyShardedDataParallelPyTorch — 활성화 체크포인팅