Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Masalah penyebaran Prefill and Decode (DPD) terpilah
Ikhtisar: Masalah umum yang dapat terjadi saat menerapkan titik akhir inferensi dengan Disaggregated Prefill and Decode (DPD). Masalah-masalah ini biasanya melibatkan startup pod, transfer cache KV, perilaku routing, atau alokasi sumber daya.
Masalah startup pod
Masalah: Pod DPD gagal memulai atau tetap dalam keadaan tidak siap.
Gejala dan resolusi:
-
Pod terjebak
ContainerCreatingselama lebih dari 10 menit. Jalankankubectl describe pod <pod-name>dan cariFailed to pull imageatauMountVolume.SetUp failed. Pastikan image pekerja ada dan bucket Amazon S3 dapat diakses dari cluster. -
Pod macet di 2/3 Ready. Pekerja VllM masih memuat model. Llama 3.3 70B membutuhkan waktu 5-10 menit dari pengambilan Amazon S3 yang dingin. Periksa kemajuan:
kubectl logs <pod-name> -c <prefill|decode>-<endpoint-name> | grep -i "engine\|loading"Tunggu pesan log yang menunjukkan mesin sudah siap.
-
Pod dimulai ulang dengan
EngineDeadErroratauTimeoutError. Ini menunjukkan versi operator yang lebih tua dari v3.2. Tingkatkan operator inferensi sebelum melanjutkan. -
Semua permintaan HTTP mengembalikan 503 segera setelah penerapan. Pod masih memuat model. Tunggu
InferenceEndpointConfigstatusnya mencapaiDeploymentComplete:kubectl get inferenceendpointconfig <endpoint-name> -n <namespace> -w
Masalah transfer cache KV
Masalah: Transfer cache KV antara pod prefill dan decode gagal atau berkinerja buruk.
Gejala dan resolusi:
-
Log dekoder ditampilkan.
Retrieved 0 out of N required tokensTransfer KV tidak terjadi dan decoder kembali ke perhitungan ulang lokal. Verifikasipd_roleapakah sudah benar (prefiller harussender, decoder harusreceiver), kedua pod menggunakan image pekerja yang sama, danPYTHONHASHSEEDdisetel ke"0"kedua pod. -
Log dekoder menunjukkan
Failed to allocate memory object, retrying...Buffer PD dekoder penuh di bawah konkurensi tinggi. Baik kenaikanPD_BUFFER_SIZE(coba"17179869184"untuk 16 GiB atau"34359738368"32 GiB) atau skala.decodingSpec.replicas -
Throughput transfer KV di bawah 1. GB/s EFA tidak digunakan dan transfer jatuh kembali ke CPU. Verifikasi bahwa kedua pod dijadwalkan pada EFA-capable node di Availability Zone yang sama, bahwa node memiliki sumber daya EFA available (
kubectl describe node <node-name> | grep efa), dan image pekerja menyertakan penyedia libfabric EFA.
Masalah perutean
Masalah: Permintaan tidak dirutekan dengan benar antara pod prefill dan decode.
Gejala dan resolusi:
-
Semua permintaan melewati prefiller (bahkan prompt panjang). Periksa log router untuk keputusan perutean:
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"Verifikasi
estimated_tokensnilainya melebihi nilai AndaroutingThreshold. Jika estimasi token lebih rendah dari yang diharapkan, tokenizer router mungkin menghitung secara berbeda — coba turunkan.routingThreshold -
Distribusi beban yang tidak merata di seluruh prefiller. Jika Anda memiliki beberapa replika prefiller dan mengamati bahwa satu kelebihan beban sementara yang lain menganggur, alihkan strategi perutean ke distribusi merata.
roundrobinAtau, gunakankvawareuntuk distribusi sadar cache yang memperhitungkan status aktual dari setiap prefiller.