跳到内容

上下文扩展

注意

vLLM 旧版本中使用的 --rope-scaling 参数已不再支持。请改用带有 rope_parameters--hf-overrides 方法。

此目录包含使用 vLLM 扩展模型上下文长度的示例。

离线推理示例

context_extension.py 脚本演示了如何使用 YARN 方法(rope_parameters)扩展 Qwen 模型的上下文长度,并运行一个简单的聊天示例。

用法

python examples/features/context_extension/context_extension_offline.py

OpenAI 在线方法

您也可以使用 vLLM 的 OpenAI 兼容 API 来服务具有扩展上下文长度的模型。

用法

使用以下命令运行 vLLM 服务器,通过 YARN 扩展上下文长度:

vllm serve Qwen/Qwen3-0.6B \
  --hf-overrides '{"rope_parameters": {"factor": 4.0, "original_max_position_embeddings": 32768, "rope_theta": 1000000, "rope_type": "yarn"}}' \
  --max-model-len 131072

客户端示例

启动服务器后,您可以使用 OpenAI Python 客户端与之交互:

from openai import OpenAI

client = OpenAI(
    base_url="https://:8000/v1",
    api_key="token-abc123"  # Dummy API key, required by the client
)

response = client.chat.completions.create(
    model="Qwen/Qwen3-0.6B",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"}
    ],
    max_tokens=128,
    temperature=0.8,
    top_p=0.95
)

print(response.choices[0].message.content)

关键参数

可用参数取决于您选择的 rope_type。有关所有支持的 RoPE 类型及其具体参数的详细信息,请参阅 Hugging Face Transformers RoPE 文档

常用参数包括:

  • rope_type:RoPE 实现类型(例如 "yarn"、"linear"、"dynamic")
  • factor:扩展上下文长度的倍数
  • original_max_position_embeddings:模型原始的最大位置嵌入数

以下参数是 vLLM 特有的:

  • max_model_len:扩展后的新最大序列长度(原始长度 * factor)。用于 KV 缓存的预分配以及服务时的请求限制。