跳到内容

长上下文配置

长上下文功能支持的 token 上下文窗口超过 128K token。以下模型支持此功能:

环境变量设置

设置以下环境变量以避免 OOM/功能问题。其他环境变量设置取决于上下文长度

  • VLLM_ENGINE_ITERATION_TIMEOUT_S=3600
  • VLLM_RPC_TIMEOUT=100000
  • VLLM_ALLOW_LONG_MAX_MODEL_LEN=1

预热桶准备

指数桶机制自动为长上下文准备桶。线性桶机制需要手动设置标志。下表展示了线性预热的 32K 上下文长度标志示例

标志 建议值 注意事项
VLLM_GRAPH_RESERVED_MEM 0.020.1 这取决于模型和上下文长度设置。Llama3.1-8B 设置为 0.02,Llama3.1-70B 设置为 0.1
VLLM_PROMPT_SEQ_BUCKET_MIN 24576 值取决于预热结果。
VLLM_PROMPT_SEQ_BUCKET_STEP 2048 值取决于预热结果。我们建议将其增加到更高的值以加快预热速度。对于 Intel Gaudi 3,我们建议将其设置为 16384
VLLM_PROMPT_SEQ_BUCKET_MAX 32768 上下文长度的值为 32K;16K 使用 16384。
VLLM_DECODE_BLOCK_BUCKET_MIN 1024 值取决于预热结果。
VLLM_DECODE_BLOCK_BUCKET_STEP 1024 值取决于预热结果。
VLLM_DECODE_BLOCK_BUCKET_MAX 33792 计算 max_num_seqs * max_decode_seq // self.block_size 的值,其中 max_decode_seq 表示输入序列和输出序列的总和。例如:128 *((32 + 1)* 1024) / 12832 *((32 + 1)* 1024) / 128

批量大小设置

默认的 batch_size=256 设置对于长上下文(8K+)不是最优的。如果某些序列组的 KV 缓存空间不足,可能会发生重新编译。如果在推理过程中出现重新编译或下一个重计算警告,请减小 batch_size 以提高稳定性。

重新编译消息示例

Configuration: (prompt, 1, 36864) was not warmed-up!

警告消息示例

Sequence group cmpl-3cbf19b0c6d74b3f90b5d5db2ed2385e-0 is preempted by PreemptionMode.RECOMPUTE mode because there is not enough KV cache space. This can affect the end-to-end performance. Increase gpu_memory_utilization or tensor_parallel_size to provide more KV cache memory.