> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siflow.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 创建大模型推理服务

> 在人工智能平台中创建大模型推理服务，配置模型来源、推理引擎、资源池、服务端口、服务网关和高级参数。

创建大模型推理服务后，平台会根据模型、推理引擎、资源池和服务配置拉起服务实例，并提供访问端点用于在线调用。您可以使用表单创建，也可以通过 JSON 复用已有配置。

## 使用表单创建服务

### 1. 进入创建页

1. 进入 **推理服务 > 大模型推理**。
2. 单击 **新建**，选择 **表单创建**。

### 2. 填写配置信息

#### 基础配置

基础配置决定服务所在范围、服务名称和项目组可见性。

| 配置            | 说明                                       |
| ------------- | ---------------------------------------- |
| **区域**、**集群** | 决定服务创建到哪个资源范围。后续可选资源池、模型、存储和镜像会受区域和集群影响。 |
| **服务名称**      | 服务的唯一名称，建议包含模型名、用途或环境，便于后续查找和运维。         |
| **服务描述**      | 记录服务用途、模型版本、调用方或上线说明。                    |
| **项目组**       | 决定服务归属和协作范围。                             |
| **在项目组内公开**   | 开启后，项目组内其他用户可以查看或复用该服务，具体权限以项目组配置为准。     |

#### 推荐模板和资源池

| 配置         | 说明                                                                                                                |
| ---------- | ----------------------------------------------------------------------------------------------------------------- |
| **使用推荐模板** | 如果需要复用已有模板，开启后选择目标模板。模板会自动填充模型、引擎、探针、监控和部分高级配置；提交前仍需要核对是否符合本次服务目标。                                                |
| **资源池**    | 选择服务使用的资源来源。页面可能以资源类型和资源池类型组合展示，例如 **预留实例 / 共享资源池**；资源池会影响可用配额、调度位置和资源保障方式。创建后可在服务列表的 **资源池** 和 **占用资源** 中确认实际占用。 |

如需提前创建或维护模板，请参考[管理大模型推理模板](./manage-llm-inference-templates)。

#### 推理引擎

| 配置                    | 说明                                                                               |
| --------------------- | -------------------------------------------------------------------------------- |
| **引擎**                | 选择推理引擎。支持的引擎包括 **SGLang**、**vLLM**、**Dynamo** 和 **Custom**，以当前集群展示为准。            |
| **引擎参数**              | 单击 **添加更多输入** 添加引擎参数。**vLLM** 和 **SGLang** 在分布式、PD 分离场景下所需的系统分布式参数由平台生成，不需要重复填写。 |
| **Served Model Name** | 设置客户端请求时使用的模型标识。使用 OpenAI 兼容接口时，请求中的模型名应与该配置一致。                                  |

选择 **引擎** 后，如页面展示 **引擎版本**、**执行方式** 或角色资源配置，请按页面要求继续填写。更换 **引擎**、**引擎版本** 或 **执行方式** 后，原有角色配置可能不再适用，提交前需要重新核对每个角色的副本、组规模、实例规格和 GPU 总量。

常见执行方式和角色关系如下，实际可选项以当前引擎和页面展示为准。

| 执行方式               | 常见角色                        | 配置重点                                                                  |
| ------------------ | --------------------------- | --------------------------------------------------------------------- |
| `single-node`      | `worker`                    | 配置单角色副本和实例规格，适合单机单卡或单机多卡。                                             |
| `distributed`      | `leader`、`worker`           | 配置多机角色资源，并确认并行参数、网络和资源池配额。                                            |
| `pd-disaggregated` | `router`、`prefill`、`decode` | 分别规划 Prefill、Decode 和路由角色资源。Prefill 侧重点是输入上下文处理，Decode 侧重点是生成阶段吞吐和延迟。 |

**vLLM** 和 **SGLang** 使用平台内置启动方式时，引擎参数会追加到平台生成的启动命令中，例如 `vllm serve --port <PORT> --host <HOST> {{引擎参数}}` 或 `python3 -m sglang.launch_server --port <PORT> --host <HOST> {{引擎参数}}`。**Custom** 模式需要自行填写完整启动命令，并确保命令、端口和服务协议与后续端口、探针和网关配置一致；如需读取平台传入的模型路径或引擎参数，可在命令中引用 `MODEL_PATH`、`ENGINE_PARAMS` 等环境变量。

#### 模型配置

| 配置          | 说明                                                                                                                                                                                                                                                                            |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **模型**      | 选择模型来源。<ul><li><strong>Hugging Face</strong>：填写模型名称和 Hugging Face Token。</li><li><strong>Volume</strong>：选择已授权 Volume，并填写容器内挂载路径和挂载目录下的模型路径。</li><li><strong>模型仓库</strong>：选择模型仓库中的模型和版本。</li><li><strong>OSS</strong>：填写对象存储 Bucket、路径和访问密钥等信息，密钥不要出现在截图、日志或共享材料中。</li></ul> |
| **Lora 模型** | 如需加载 LoRA Adapter，开启后选择对应模型。                                                                                                                                                                                                                                                  |

选择 **Volume** 作为模型来源时，需要区分容器内 **挂载路径** 和挂载目录下的 **模型路径**。最终传给推理引擎的模型路径为 `MountPath/ModelPath`。如填写 `SubPath`，它只用于把 PVC 限定到某个子目录并做目录级鉴权，不要把 **模型路径** 当作 Kubernetes 的 `SubPath` 使用。**Lora 模型** 使用 **Volume** 来源时也遵循同样规则。

#### 缓存配置

| 配置          | 说明                                                |
| ----------- | ------------------------------------------------- |
| **开启分布式缓存** | 为支持的引擎启用分布式缓存能力。是否可用以及需要配置的角色、端口或参数，以当前引擎和页面展示为准。 |

#### 服务配置

服务配置用于控制服务实例的健康检查。

| 配置          | 说明                                                                  |
| ----------- | ------------------------------------------------------------------- |
| **存活探针检查**  | 判断服务进程是否存活。持续检查失败时，平台可能会重启服务实例。模型加载时间较长时，不要把检查配置得过于激进，避免启动阶段被误判为异常。 |
| **可用性探针检查** | 判断服务是否已经准备好接收流量。检查失败时，平台不会向该实例分配新请求。建议优先配置可用性探针，等模型真正加载完成后再接入流量。    |

探针支持 **HTTP**、**TCP** 和 **Exec**。**HTTP** 适合已有 `/health` 或 `/ready` 等健康检查接口的服务；**TCP** 适合只确认端口连通的服务；**Exec** 适合在容器内执行自定义命令检查文件、进程或多端口状态。
vLLM 和 SGLang 常见健康检查路径为 `/health`，具体路径和端口仍应以所选引擎配置和服务实际暴露能力为准。

#### 监控配置

| 配置          | 说明                                                                                                                                                                                            |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Metrics** | 填写指标路径和指标端口，用于服务监控、弹性扩缩容或告警。**SGLang**、**vLLM** 和 **Custom** 的常见默认路径为 `/metrics`；常见默认端口：**vLLM** 为 `8000`，**SGLang** 为 `30000`，**Custom** 为 `8080`。PD 分离等部署方式下，监控端口可能与服务端口不同，以当前页面生成或展示的配置为准。 |

#### 高级配置

| 配置                  | 说明                                                                                                                                                                               |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **环境变量**            | 单击 **添加更多输入**，为服务注入运行时配置。                                                                                                                                                        |
| **存储**、**Pod中挂载路径** | 挂载额外 Volume，用于读取模型、配置文件或依赖数据。目录模式卷支持通过 `SubPath` 挂载指定子目录；同一个容器内的挂载路径应保持唯一。                                                                                                       |
| **服务端口**            | 配置服务监听或暴露端口，应与引擎或自定义命令实际监听端口一致。                                                                                                                                                  |
| **弹性扩缩容配置**         | 按时间或指标调整副本数。首次上线建议先手动验证服务容量，再启用自动策略；更完整的扩缩容策略可参考[推理服务高级运维](./advanced-inference-service-operations)。                                                                             |
| **网关配置**            | 单击 **添加网关** 配置服务访问入口、路由和鉴权。可按页面展示选择 **网关类型**、**开启路由 hash** 和 **Auth Token**。**网关类型** 可选择 **共享网关** 等页面支持的类型；开启 **Auth Token** 后，调用服务时需要携带鉴权信息。只有引擎或路由明确提供兼容接口时，才使用对应 OpenAI 兼容路径。 |
| **是否推送告警**          | 开启后，服务异常可进入告警链路。通知方式需要在告警中心配置。                                                                                                                                                   |
| **是否开启gang调度**      | 开启后，同一副本内多个角色需要整体满足资源后再调度，适合多角色强依赖的服务。                                                                                                                                           |
| **快速失败**            | 用于在镜像拉取等创建期异常时更快暴露失败原因，便于排查。                                                                                                                                                     |

容器本地盘（如 `/root`、`/tmp` 等本地目录）容量有限，写入大量数据可能导致负载系统驱逐；重启或迁移后本地数据会被清空。请将数据集、模型、输出结果等重要文件写入挂载的 Volume 共享存储，挂载路径建议使用 `/volume`、`/mnt` 等开头的目录，避免覆盖根目录、`/opt`、`/workspace`、`/usr` 等镜像中默认目录。

### 3. 提交并验证

1. 提交前核对模型来源、引擎版本、执行方式、各角色资源总量、端口、网关和公开范围。
2. 单击 **提交**。
3. 提交后查看各角色目标实例和就绪实例，结合事件和日志确认模型加载进度。
4. 服务进入 **运行中** 后，在服务列表单击 **Endpoints**，或在详情页打开 **服务网关**，获取实际访问地址和鉴权信息。
5. 按协议、路径、端口和鉴权方式发送最小请求，确认模型标识、响应内容以及流式或非流式调用方式符合预期。

如果 **Endpoints** 同时提供测试入口和生产入口，测试入口仅用于验证，不建议作为正式调用地址。Auth Token 不应出现在截图、日志或共享材料中。

## 使用 JSON 创建服务

如果需要复用已有配置、批量迁移服务，或由自动化流程生成服务参数，可以使用 JSON 创建。

1. 进入 **推理服务 > 大模型推理**。
2. 单击 **新建**，选择 **JSON 创建**。
3. 选择 **区域** 和 **集群**。
4. 在编辑器中填写服务配置 JSON。
5. 单击 **新建**。

### 示例配置

以下示例使用模型仓库中的模型，通过 **vLLM** 以 **单节点** 方式创建大模型推理服务。提交前，请根据实际区域、集群、资源池、实例规格、模型路径和访问策略修改占位值。

```json theme={null}
{
  "name": "qwen-vllm-service",
  "description": "Qwen vLLM inference service",
  "modelConfig": {
    "modelSource": {
      "storageType": "model-repo",
      "storage": {
        "modelRepo": {
          "name": "Qwen/Qwen2.5-0.5B-Instruct",
          "version": "v1.0"
        }
      }
    }
  },
  "servingEngineConfig": {
    "engineType": "vllm",
    "engineVersion": "v0.8.5",
    "executeType": "single-node",
    "engineParams": {}
  },
  "resourcePool": "<RESOURCE_POOL_NAME>",
  "resourcePoolType": "dedicated",
  "resourcePoolQosType": "reserved",
  "roleConfig": {
    "server": {
      "replicas": 1,
      "ports": [
        {
          "name": "router",
          "containerPort": 8000
        }
      ],
      "resourceConfig": {
        "instanceName": "sci.g20-3",
        "instanceQuantity": 1
      },
      "routerConfig": {
        "routerPolicy": "round_robin",
        "resourcePool": "<ROUTER_RESOURCE_POOL_NAME>",
        "resourcePoolType": "shared",
        "resourcePoolQosType": "ondemand"
      }
    },
    "worker": {
      "replicas": 1,
      "resourceConfig": {
        "instanceName": "sci.g20-3",
        "instanceQuantity": 1
      }
    }
  },
  "serviceConfig": {
    "replicas": 0,
    "servicePort": {
      "name": "server",
      "port": 8000
    },
    "registerConfig": {
      "servedModelName": "qwen2.5"
    },
    "readinessProbe": {
      "probeType": "",
      "initialDelaySeconds": 0,
      "periodSeconds": 0,
      "timeoutSeconds": 0,
      "probeConfig": {}
    },
    "livenessProbe": {
      "probeType": "",
      "initialDelaySeconds": 0,
      "periodSeconds": 0,
      "timeoutSeconds": 0,
      "probeConfig": {}
    },
    "autoScaleConfig": {
      "autoScaleType": "timeseries",
      "timeseriesConfig": {
        "timePoints": []
      }
    }
  },
  "gatewayConfigs": [
    {
      "type": "Shared",
      "authToken": "",
      "enableHashRoute": false
    }
  ],
  "metricsConfig": {
    "metricsType": "prometheus",
    "metricsPath": "/metrics",
    "metricsPort": 8000
  },
  "monitoringConfig": {
    "enableAlarmPush": true
  },
  "env": {
    "MODEL_PATH": "/mnt/model/Qwen/Qwen2.5-0.5B-Instruct",
    "NCCL_IB_ADDR_FAMILY": "AF_INET6",
    "NCCL_IB_ADDR_RANGE": "<NCCL_IB_ADDR_RANGE>",
    "TZ": "Asia/Shanghai"
  },
  "storageConfig": {
    "fileSystemVolumes": []
  }
}
```

### 配置说明

| 配置块                                                         | 说明                                                                                              |
| ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `name`                                                      | 服务名称。                                                                                           |
| `modelConfig`                                               | 模型来源、模型名称、版本和存储配置。                                                                              |
| `servingEngineConfig`                                       | 推理引擎类型、版本、执行方式和引擎参数。`executeType` 会影响 `roleConfig` 中需要配置的角色。                                    |
| `resourcePool` / `resourcePoolType` / `resourcePoolQosType` | 服务默认使用的资源池、资源池类型和资源类型。                                                                          |
| `roleConfig`                                                | 不同角色的副本数、端口、命令、镜像和资源配置。示例中的 `server` 角色包含 `routerConfig`，用于配置路由策略和路由角色资源；`worker` 角色用于承载模型推理负载。 |
| `serviceConfig`                                             | 自动扩缩容、探针、注册信息和服务端口等配置。`registerConfig.servedModelName` 是客户端请求时使用的模型标识，应与调用请求中的模型名一致。            |
| `gatewayConfigs`                                            | 网关、路由、鉴权和访问入口配置。`authToken` 为空时，请根据实际鉴权策略确认是否由平台生成或另行配置。                                        |
| `metricsConfig`                                             | 指标采集路径和端口配置。                                                                                    |
| `monitoringConfig`                                          | 告警推送等监控相关配置。                                                                                    |
| `env`                                                       | 服务运行时环境变量。                                                                                      |
| `storageConfig`                                             | Volume 等额外存储配置。没有额外挂载时，`fileSystemVolumes` 可以为空数组。                                              |

使用 JSON 创建时，请确保资源池、模型、镜像、端口、环境变量和网关信息与目标区域、集群一致。提交前可从已有服务或模板复制配置，再按本次服务目标修改必要字段。

## 后续操作

[管理大模型推理服务](./manage-llm-inference-services)
