기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
분해된 사전 채우기 및 디코딩(DPD) 배포 문제
개요: DPD(Disaggregated Prefill and Decode)를 사용하여 추론 엔드포인트를 배포할 때 발생할 수 있는 일반적인 문제입니다. 이러한 문제에는 일반적으로 포드 시작, KV 캐시 전송, 라우팅 동작 또는 리소스 할당이 포함됩니다.
포드 시작 문제
문제: DPD 포드가 시작되지 않거나 준비되지 않은 상태로 유지됩니다.
증상 및 해결 방법:
-
포드
ContainerCreating가 10분 이상 멈췄습니다. 를 실행kubectl describe pod <pod-name>하고Failed to pull image또는를 찾습니다MountVolume.SetUp failed. 작업자 이미지가 존재하고 클러스터에서 Amazon S3 버킷에 액세스할 수 있는지 확인합니다. -
포드가 2/3 준비 상태로 멈췄습니다. vLLM 작업자가 아직 모델을 로드하고 있습니다. Llama 3.3 70B는 콜드 Amazon S3 가져오기에서 5~10분이 걸립니다. 진행 상황 확인:
kubectl logs <pod-name> -c <prefill|decode>-<endpoint-name> | grep -i "engine\|loading"엔진이 준비되었음을 나타내는 로그 메시지를 기다립니다.
-
EngineDeadError또는를 사용하여 포드를 다시 시작합니다TimeoutError. 이는 v3.2 이전의 연산자 버전을 나타냅니다. 계속하기 전에 추론 연산자를 업그레이드합니다. -
모든 HTTP 요청은 배포 직후 503을 반환합니다. 포드가 아직 모델을 로드하고 있습니다.
InferenceEndpointConfig상태가에 도달할 때까지 기다립니다DeploymentComplete.kubectl get inferenceendpointconfig <endpoint-name> -n <namespace> -w
KV 캐시 전송 문제
문제: 프리필 포드와 디코딩 포드 간의 KV 캐시 전송이 실패하거나 제대로 수행되지 않습니다.
증상 및 해결 방법:
-
디코더 로그에는가 표시됩니다
Retrieved 0 out of N required tokens. KV 전송이 발생하지 않았고 디코더가 로컬 다시 계산으로 떨어졌습니다.pd_role가 올바른지 확인하고(프리필러는 ,sender디코더는receiver), 두 포드 모두 동일한 작업자 이미지를 사용하며, 두 포드"0"모두에서PYTHONHASHSEED가 로 설정되어 있는지 확인합니다. -
디코더 로그에 디코더 PD 버퍼가 높은 동시성으로 가득 차 있음이 표시됩니다
Failed to allocate memory object, retrying...."17179869184"를 늘리거나PD_BUFFER_SIZE(16GiB 또는 32GiB"34359738368"의 경우 시도)를 조정합니다decodingSpec.replicas. -
1GB/s 미만의 KV 전송 처리량. EFA가 사용되지 않고 전송이 CPU로 다시 폴백됩니다. 두 포드가 동일한 가용 영역의 EFA 지원 노드에 예약되어 있고, 노드에 사용 가능한 EFA 리소스(
kubectl describe node <node-name> | grep efa)가 있으며, 작업자 이미지에 EFA libfabric 공급자가 포함되어 있는지 확인합니다.
라우팅 문제
문제: 사전 채우기 포드와 디코딩 포드 간에 요청이 올바르게 라우팅되지 않습니다.
증상 및 해결 방법:
-
모든 요청은 프리필러를 우회합니다(긴 프롬프트 포함). 라우터 로그에서 라우팅 결정을 확인합니다.
ROUTER_POD=$(kubectl get pods -n hyperpod-inference-system -o name | grep router | head -1) kubectl logs $ROUTER_POD -n hyperpod-inference-system -c router-container --tail=50 \ | grep "Conditional routing"estimated_tokens값이를 초과하는지 확인합니다routingThreshold. 토큰 추정치가 예상보다 낮으면 라우터의 토큰화기가 다르게 계산될 수 있습니다.를 낮추십시오routingThreshold. -
프리필러 간에 로드 분산이 고르지 않습니다. 프리필러 복제본이 여러 개 있고 다른 복제본이 유휴 상태인 동안 오버로드된 것을 관찰하는 경우 균등한 배포를
roundrobin위해 라우팅 전략을 로 전환합니다. 또는 각 프리필러의 실제 상태를 설명하는 캐시 인식 배포에kvaware를 사용합니다.