长上下文配置¶
长上下文功能支持的 token 上下文窗口超过 128K token。以下模型支持此功能:
- meta-llama/Llama-2-7b
- meta-llama/Llama-2-70b
- meta-llama/Meta-Llama-3-8B-Instruct
- meta-llama/Meta-Llama-3.1-8B-Instruct
- meta-llama/Meta-Llama-3-70B-Instruct
- meta-llama/Meta-Llama-3.1-70B-Instruct
环境变量设置¶
设置以下环境变量以避免 OOM/功能问题。其他环境变量设置取决于上下文长度
VLLM_ENGINE_ITERATION_TIMEOUT_S=3600VLLM_RPC_TIMEOUT=100000VLLM_ALLOW_LONG_MAX_MODEL_LEN=1
预热桶准备¶
指数桶机制自动为长上下文准备桶。线性桶机制需要手动设置标志。下表展示了线性预热的 32K 上下文长度标志示例
| 标志 | 建议值 | 注意事项 |
|---|---|---|
VLLM_GRAPH_RESERVED_MEM |
0.02 或 0.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) / 128 和 32 *((32 + 1)* 1024) / 128。 |
批量大小设置¶
默认的 batch_size=256 设置对于长上下文(8K+)不是最优的。如果某些序列组的 KV 缓存空间不足,可能会发生重新编译。如果在推理过程中出现重新编译或下一个重计算警告,请减小 batch_size 以提高稳定性。
重新编译消息示例
警告消息示例