아티클 목록으로
추론·배포

vLLM, H200 16장으로 GLM-5.3의 100만 토큰 문맥 처리

약 3분 소요

들어가며

에이전트 작업에서는 도구 결과, 파일 내용, 이전 응답이 대화 턴마다 누적된다. GLM-5.3을 H200에서 실행할 때는 모델 가중치가 GPU 메모리 대부분을 차지해 KV 캐시 공간이 제한되고, 긴 프롬프트를 처리하는 프리필도 전체 서비스의 병목이 될 수 있다. vLLM은 이 문제를 해결하기 위해 H200 8장 노드 두 대를 프리필 노드와 디코드 노드로 나누고, 여러 병렬화 방식과 KV 오프로딩을 결합했다.

핵심 설계

  • PCP는 토큰 단위로 쿼리를 나눈다. 8개 GPU가 프롬프트의 서로 다른 구간을 맡고, 각 GPU는 64개 어텐션 헤드를 모두 계산한다. 인과 어텐션에서는 뒤쪽 토큰의 계산량이 커지므로 프롬프트를 16개 청크로 나눈 뒤 앞부분과 뒷부분을 짝지어 부하를 균형화한다. 인덱서도 모든 GPU에서 반복하지 않고 담당 토큰에 대해서만 계산한다.
  • DCP는 KV 캐시 자체를 분할한다. PCP만 적용하면 각 GPU가 전체 KV 캐시를 보유한다. DCP는 토큰을 라운드로빈 방식으로 분배해 GPU마다 8분의 1만 저장한다. 자료의 예에서는 100만 토큰 요청에 필요한 FP8 KV 53.4 GiB가 GPU당 약 6.7 GiB로 줄어든다.
  • 메모리 절약에는 통신 비용이 따른다. 쿼리와 KV의 배치가 서로 다르기 때문에 프리필 엔진은 각 레이어에서 분할된 캐시를 임시로 모은 뒤 어텐션을 계산하고 복사본을 해제한다. 보고된 추가 비용은 짧은 캐시 문맥에서 약 6%, 248K 토큰 부근에서는 약 15%다. DCP는 통신을 감수하고 더 큰 KV 풀을 확보하는 방식이다.
  • 디코드는 Hybrid HiSparse를 사용한다. 디코드 노드는 8개의 데이터 병렬 랭크로 구성되며 KV 일부를 호스트 메모리에 둔다. 프리필 노드도 CPU KV 오프로딩을 사용해 이후 턴에서 접두부를 재사용한다.

기존 TP와 DP의 한계

데이터 병렬에서는 긴 프롬프트 하나를 단일 GPU가 처리하므로 다른 GPU를 활용해 프리필 시간을 줄일 수 없다. 해당 요청의 KV 캐시도 한 GPU에 들어가야 한다. 텐서 병렬은 어텐션 헤드를 나누지만, MLA의 잠재 KV는 모든 헤드가 공유하므로 전체 캐시가 GPU마다 복제된다. 과거 토큰을 평가하는 인덱서 역시 반복 실행된다. PCP는 쿼리 계산을 분산하고, DCP는 캐시 복제를 제거한다는 점에서 서로 다른 병목을 겨냥한다.

의미와 한계

이번 결과는 100만 토큰 서비스가 단일 병렬화 기법만으로 해결되지 않음을 보여준다. 계산 위치, 캐시 배치, 호스트 메모리, GPU 간 통신을 함께 설계해야 한다. vLLM에 따르면 AgentX에서 PCP8×DCP8 프리필과 Hybrid HiSparse 디코드를 결합한 구성은 동일 처리량의 데이터 병렬 배포보다 사용자별 속도가 1.7~3.2배 높았고, 테스트된 구성 중 유일하게 100만 토큰 문맥을 처리했다.

다만 DCP는 각 레이어마다 캐시 문맥을 전송하므로 문맥이 길어질수록 인터커넥트 부담이 커진다. 계산과 통신을 겹치면 이 비용을 더 낮출 여지가 있다. 따라서 이 방식이 모든 워크로드에 적합한 것은 아니지만, 긴 대화 이력과 반복적인 도구 호출을 사용하는 에이전트에는 프리필, 캐시, 디코드의 제약을 분리해 다루는 실용적인 배포 청사진을 제공한다.

출처: vLLM Blog

댓글

로그인 상태 확인 중…

댓글 불러오는 중…

관련 게시물

CCTest · Blog
AKV, 에이전트의 기록을 바꾸지 않고 KV 캐시를 관리하다
추론·배포
cctest.ai
추론·배포

AKV, 에이전트의 기록을 바꾸지 않고 KV 캐시를 관리하다

장시간 실행되는 LLM 에이전트에서는 모델 연산보다 KV 캐시의 저장과 이동이 더 큰 비용이 될 수 있습니다. AKV는 에이전트가 궤적을 다시 쓰거나 보존된 문맥을 재프리필하지 않고 활성 캐시를 직접 관리하도록 합니다.

더 보기
CCTest · Blog
DLite, 에이전트 AI를 위한 히스토리 없는 추측 디코딩
추론·배포
cctest.ai
추론·배포

DLite, 에이전트 AI를 위한 히스토리 없는 추측 디코딩

DLite는 길고 계속 변하는 컨텍스트에서 추측 디코딩 효율이 떨어지는 문제를 겨냥한다. 타깃 모델이 이미 계산한 은닉 상태를 재사용해 드래프트 측에서 전체 히스토리와 KV 캐시를 별도로 유지하지 않고 로컬 예측을 수행한다.

더 보기