Share feedback
Answers are generated based on the documentation.

配置选项

Docker Model Runner 提供了多种配置选项来调整模型行为、内存使用和推理性能。本指南涵盖了关键设置及其应用方法。

上下文大小(上下文长度)

上下文大小决定了模型在单个请求中可以处理的最大令牌数,包括输入提示和生成的输出。这是影响内存使用和模型能力的最重要设置之一。

默认上下文大小

默认情况下,Docker Model Runner 使用的上下文大小在能力和资源效率之间取得了平衡:

引擎 默认行为
llama.cpp 4096 个令牌
vLLM 使用模型训练的最大上下文大小
Note

实际默认值因模型而异。大多数模型默认支持 2,048 到 8,192 个令牌。一些较新的模型支持 32K、128K 甚至更大的上下文。

配置上下文大小

您可以使用 docker model configure 命令为每个模型调整上下文大小:

$ docker model configure --context-size 8192 ai/qwen2.5-coder

或者在 Compose 文件中:

models:
  llm:
    model: ai/qwen2.5-coder
    context_size: 8192

上下文大小指南

上下文大小 典型用例 内存影响
2,048 简单查询、短代码片段
4,096 标准对话、中等代码文件 中等
8,192 长对话、较大代码文件 较高
16,384+ 扩展文档、多文件上下文
Important

更大的上下文大小需要更多内存(RAM/VRAM)。如果遇到内存不足错误,请减小上下文大小。粗略指南是,每增加 1,000 个令牌大约需要 100-500 MB 的额外内存,具体取决于模型大小。

检查模型的最大上下文

要查看模型的配置,包括上下文大小:

$ docker model inspect ai/qwen2.5-coder
Note

docker model inspect 命令显示模型支持的最大上下文长度(例如 gemma3.context_length),而不是配置的上下文大小。配置的上下文大小是您使用 docker model configure --context-size 设置的值,表示推理期间使用的实际限制,该限制应小于或等于模型支持的最大上下文长度。

运行时标志

运行时标志允许您直接将参数传递给底层推理引擎。这提供了对模型行为的细粒度控制。

使用运行时标志

运行时标志可以通过多种机制提供:

使用 Docker Compose

在 Compose 文件中:

models:
  llm:
    model: ai/qwen2.5-coder
    context_size: 4096
    runtime_flags:
      - "--temp"
      - "0.7"
      - "--top-p"
      - "0.9"

使用命令行

使用 docker model configure 命令:

$ docker model configure --runtime-flag "--temp" --runtime-flag "0.7" --runtime-flag "--top-p" --runtime-flag "0.9" ai/qwen2.5-coder

常用 llama.cpp 参数

这些是最常用的 llama.cpp 参数。对于典型用例,您无需查阅 llama.cpp 文档。

采样参数

标志 描述 默认值 范围
--temp 采样温度。越低 = 越确定,越高 = 越有创意 0.8 0.0-2.0
--top-k 限制采样到前 K 个令牌。越低 = 越集中 40 1-100
--top-p 核心采样阈值。越低 = 越集中 0.9 0.0-1.0
--min-p 最小概率阈值 0.05 0.0-1.0
--repeat-penalty 重复令牌的惩罚 1.1 1.0-2.0

示例:确定性输出(用于代码生成)

runtime_flags:
  - "--temp"
  - "0"
  - "--top-k"
  - "1"

示例:创意输出(用于故事创作)

runtime_flags:
  - "--temp"
  - "1.2"
  - "--top-p"
  - "0.95"

性能参数

标志 描述 默认值 备注
--threads 用于生成的 CPU 线程数 自动 设置为性能核心数
--threads-batch 用于批处理的 CPU 线程数 自动 通常与 --threads 相同
--batch-size 提示处理的批处理大小 512 越高 = 提示处理越快
--mlock 将模型锁定在内存中 关闭 防止交换,需要足够的 RAM
--no-mmap 禁用内存映射 关闭 可能在某些系统上提高性能

示例:针对多核 CPU 优化

runtime_flags:
  - "--threads"
  - "8"
  - "--batch-size"
  - "1024"

GPU 参数

标志 描述 默认值 备注
--n-gpu-layers 卸载到 GPU 的层数 全部(如果 GPU 可用) 如果 VRAM 不足则减少
--main-gpu 用于计算的 GPU 0 用于多 GPU 系统
--split-mode 如何跨 GPU 分割 layer 选项:none, layer, row

示例:部分 GPU 卸载(VRAM 有限)

runtime_flags:
  - "--n-gpu-layers"
  - "20"

高级参数

标志 描述 默认值
--rope-scaling RoPE 缩放方法 自动
--rope-freq-base RoPE 基础频率 模型默认值
--rope-freq-scale RoPE 频率缩放 模型默认值
--no-prefill-assistant 禁用助手预填充 关闭
--reasoning-budget 推理模型的令牌预算 0(禁用)

vLLM 参数

使用 vLLM 后端时,可使用不同的参数。

使用 --hf_overrides 以 JSON 格式传递 HuggingFace 模型配置覆盖:

$ docker model configure --hf_overrides '{"rope_scaling": {"type": "dynamic", "factor": 2.0}}' ai/model-vllm

配置预设

以下是常见用例的完整配置示例。

代码补全(快速、确定性)

models:
  coder:
    model: ai/qwen2.5-coder
    context_size: 4096
    runtime_flags:
      - "--temp"
      - "0.1"
      - "--top-k"
      - "1"
      - "--batch-size"
      - "1024"

聊天助手(平衡)

models:
  assistant:
    model: ai/llama3.2
    context_size: 8192
    runtime_flags:
      - "--temp"
      - "0.7"
      - "--top-p"
      - "0.9"
      - "--repeat-penalty"
      - "1.1"

创意写作(高温度)

models:
  writer:
    model: ai/llama3.2
    context_size: 8192
    runtime_flags:
      - "--temp"
      - "1.2"
      - "--top-p"
      - "0.95"
      - "--repeat-penalty"
      - "1.0"

长文档分析(大上下文)

models:
  analyzer:
    model: ai/qwen2.5-coder:14B
    context_size: 32768
    runtime_flags:
      - "--mlock"
      - "--batch-size"
      - "2048"

低内存系统

models:
  efficient:
    model: ai/smollm2:360M-Q4_K_M
    context_size: 2048
    runtime_flags:
      - "--threads"
      - "4"

基于环境的配置

您还可以通过容器中的环境变量配置模型:

变量 描述
LLM_URL 自动注入的模型端点 URL
LLM_MODEL 自动注入的模型标识符

有关如何填充这些值的详细信息,请参阅 Models and Compose

重置配置

通过 docker model configure 设置的配置会一直保留,直到模型被移除。要重置配置:

$ docker model configure --context-size -1 ai/qwen2.5-coder

使用 -1 可重置为默认值。

下一步