ZStack Logo

ZStack AIOS

环境变量配置

按 AI 模型平台功能组织的 UI 操作说明和配置入口。

定义

环境变量是操作系统中的全局变量,可以影响程序的运行行为。在深度学习推理框架中,环境变量提供了一种灵活配置模型加载、推理性能和资源分配的方式,开发者无需修改代码即可调整推理框架行为。实现内存使用优化、计算精度控制、设备指定分配、缓存策略调整等目的,使推理服务在不同的硬件环境下均能达到最佳性能和稳定性。

配置方法

  • 对推理模板添加环境变量,可以调整推理框架参数,例如指定计算设备 (CPU、GPU)、配置显存分配策略、设置优化等级等,充分发挥推理框架性能、提升推理速度和效率。
  • 不同推理框架支持的环境变量不同,以下介绍vLLM、SGLang、MindIE常用的环境变量。了解更多变量和用法,可参考对应推理框架的官方文档。
    说明: Sentence Transformers框架不支持配置推理模板环境变量,仅支持配置推理服务环境变量。

vLLM

环境变量参数 描述 默认值
MODEL 模型目录 根据用户选择的模型对应的目录自动设置
MAX_MODEL_LEN 模型上下文长度 根据可用显存动态计算
TENSOR_PARALLEL_SIZE 张量并行度 根据可用的CUDA设备设置
TOKENIZER 分词器对应的目录 使用模型目录
GPU_MEMORY_UTILIZATION GPU显存使用率 0.96,表示96%
MAX_NUM_SEQS 任何时刻系统可以并行处理的最大序列(请求)数量 20
VLLM_TARGET_DEVICE vLLM的目标设备 "cuda"
MAX_JOBS 并行运行的最大编译作业数 CPU数量
NVCC_THREADS nvcc使用的线程数 1
VLLM_USE_PRECOMPILED 是否使用预编译的二进制文件(*.so) False
VLLM_TEST_USE_PRECOMPILED_NIGHTLY_WHEEL 是否强制在Python构建中使用每夜版wheel 0
CMAKE_BUILD_TYPE CMake构建类型 "Debug"或"RelWithDebInfo"
VERBOSE 安装过程中是否打印详细日志 0
VLLM_CONFIG_ROOT vLLM配置文件的根目录 ~/.config/vllm
VLLM_CACHE_ROOT vLLM缓存文件的根目录 ~/.cache/vllm
VLLM_HOST_IP 分布式环境中当前节点的IP地址 ""
VLLM_PORT 分布式环境中手动设置的通信端口 None
VLLM_RPC_BASE_PATH 多进程模式下前端API服务器与后端引擎进程通信的IPC路径 tempfile.gettempdir()
VLLM_USE_MODELSCOPE 是否从ModelScope而非Hugging Face Hub加载模型 False
VLLM_RINGBUFFER_WARNING_INTERVAL 环形缓冲区满时记录警告消息的时间间隔(秒) 60
CUDA_HOME CUDA工具包主目录 None
VLLM_NCCL_SO_PATH NCCL库文件路径 None
LD_LIBRARY_PATH 查找NCCL库文件的位置 None
VLLM_USE_TRITON_FLASH_ATTN 是否使用triton flash attention True
VLLM_FLASH_ATTN_VERSION 强制使用特定版本的flash-attention(2或3) None
VLLM_TEST_DYNAMO_FULLGRAPH_CAPTURE 启用Dynamo全图捕获的内部标志 True
LOCAL_RANK 分布式设置中进程的本地排名 0
CUDA_VISIBLE_DEVICES 分布式设置中可见设备的控制 None
VLLM_ENGINE_ITERATION_TIMEOUT_S 引擎中每次迭代的超时时间(秒) 60
VLLM_API_KEY vLLM API服务器的API密钥 None
S3_ACCESS_KEY_ID S3访问信息,用于tensorizer从S3加载模型 None
S3_SECRET_ACCESS_KEY S3访问密钥 None
S3_ENDPOINT_URL S3端点URL None
VLLM_USAGE_STATS_SERVER 使用统计收集服务器 https://stats.vllm.ai
VLLM_NO_USAGE_STATS 是否不收集使用统计 0
VLLM_DO_NOT_TRACK 是否不跟踪 0
VLLM_USAGE_SOURCE 使用来源 "production"
VLLM_CONFIGURE_LOGGING 是否配置日志 1
VLLM_LOGGING_CONFIG_PATH 日志配置文件路径 None
VLLM_LOGGING_LEVEL 默认日志级别 "INFO"
VLLM_LOGGING_PREFIX 所有日志消息的前缀 ""
VLLM_LOGITS_PROCESSOR_THREADS 逻辑处理器线程池中的线程数 None
VLLM_TRACE_FUNCTION 是否跟踪函数调用 0
VLLM_ATTENTION_BACKEND 注意力计算的后端 None
VLLM_USE_FLASHINFER_SAMPLER 是否使用Flashinfer采样器 None
VLLM_FLASHINFER_FORCE_TENSOR_CORES 是否强制Flashinfer使用Tensor核心 0
VLLM_PP_LAYER_PARTITION 流水线阶段分区策略 None
VLLM_CPU_KVCACHE_SPACE CPU键值缓存空间 0
VLLM_CPU_OMP_THREADS_BIND OpenMP线程绑定的CPU核心ID "all"
VLLM_CPU_MOE_PREPACK 是否为MoE层使用预打包 1
VLLM_USE_RAY_SPMD_WORKER 是否将所有工作者作为与引擎分离的单独进程执行 0
VLLM_USE_RAY_COMPILED_DAG 是否使用Ray的编译图API优化控制平面开销 0
VLLM_USE_RAY_COMPILED_DAG_NCCL_CHANNEL 是否在Ray编译图中使用NCCL进行通信 1
VLLM_USE_RAY_COMPILED_DAG_OVERLAP_COMM 是否在Ray编译图中启用GPU通信重叠 0
VLLM_WORKER_MULTIPROC_METHOD 工作者专用多进程上下文 "fork"
VLLM_ASSETS_CACHE 存储下载资产的缓存路径 ~/.cache/vllm/assets
VLLM_IMAGE_FETCH_TIMEOUT 多模态模型获取图像的超时时间(秒) 5
VLLM_VIDEO_FETCH_TIMEOUT 多模态模型获取视频的超时时间(秒) 30
VLLM_AUDIO_FETCH_TIMEOUT 多模态模型获取音频的超时时间(秒) 10
VLLM_MM_INPUT_CACHE_GIB 多模态输入缓存大小(GiB) 4
VLLM_XLA_CACHE_PATH XLA持久缓存目录 ~/.cache/vllm/xla_cache
VLLM_XLA_CHECK_RECOMPILATION 是否在每个执行步骤后断言XLA重编译 0
VLLM_FUSED_MOE_CHUNK_SIZE 融合MoE块大小 32768
VLLM_NO_DEPRECATION_WARNING 是否跳过弃用警告 0
VLLM_KEEP_ALIVE_ON_ENGINE_DEATH OpenAI API服务器在底层AsyncLLMEngine出错后是否保持活动 0
VLLM_ALLOW_LONG_MAX_MODEL_LEN 是否允许用户指定大于模型config.json派生的最大长度 0
VLLM_TEST_FORCE_FP8_MARLIN 是否强制使用FP8 Marlin进行FP8量化 0
VLLM_TEST_FORCE_LOAD_FORMAT 强制加载格式 "dummy"
VLLM_RPC_TIMEOUT zmq客户端等待后端服务器响应简单数据操作的时间(毫秒) 10000
VLLM_PLUGINS 要加载的插件名称列表 None
VLLM_TORCH_PROFILER_DIR Torch性能分析器跟踪保存目录 None
VLLM_USE_TRITON_AWQ 是否使用Triton实现的AWQ 0
VLLM_ALLOW_RUNTIME_LORA_UPDATING 是否允许在运行时加载或卸载LoRA适配器 0
VLLM_SKIP_P2P_CHECK 是否跳过点对点检查并信任驱动程序的点对点能力报告 0
VLLM_DISABLED_KERNELS 应禁用的量化内核列表 []
VLLM_USE_V1 是否使用V1代码路径 1
VLLM_ROCM_USE_AITER 是否启用aiter操作 False
VLLM_ROCM_USE_AITER_RMSNORM 是否在启用aiter操作时使用aiter rms规范操作 True
VLLM_ROCM_FP8_PADDING 是否为ROCm的fp8权重填充到256字节 1
VLLM_ROCM_MOE_PADDING 是否为moe内核填充权重 1
Q_SCALE_CONSTANT FP8 KV缓存的动态查询比例因子计算的除数 200
K_SCALE_CONSTANT FP8 KV缓存的动态键比例因子计算的除数 200
V_SCALE_CONSTANT FP8 KV缓存的动态值比例因子计算的除数 100
VLLM_ENABLE_V1_MULTIPROCESSING 是否在V1代码路径中启用LLM的多进程 1
VLLM_LOG_BATCHSIZE_INTERVAL 记录批处理大小的时间间隔 -1
VLLM_DISABLE_COMPILE_CACHE 是否禁用编译缓存 0
VLLM_SERVER_DEV_MODE 是否在开发模式下运行vllm 0
VLLM_V1_OUTPUT_PROC_CHUNK_SIZE V1 AsyncLLM接口中处理每令牌输出的单个异步任务中处理的最大请求数 128
VLLM_MLA_DISABLE 是否禁用MLA注意力优化 0
VLLM_ENABLE_MOE_ALIGN_BLOCK_SIZE_TRITON 是否使用Triton实现的moe_align_block_size 0
VLLM_RAY_PER_WORKER_GPUS Ray中每个工作者的GPU数量 1.0
VLLM_RAY_BUNDLE_INDICES Ray束的索引 ""
VLLM_CUDART_SO_PATH CUDART库路径 None
VLLM_USE_HPU_CONTIGUOUS_CACHE_FETCH 是否使用连续缓存获取避免在Gaudi3上使用昂贵的收集操作 True
VLLM_DP_RANK 数据并行设置中进程的排名 0
VLLM_DP_SIZE 数据并行设置的世界大小 1
VLLM_DP_MASTER_IP 数据并行设置中主节点的IP地址 127.0.0.1
VLLM_DP_MASTER_PORT 数据并行设置中主节点的端口 0
VLLM_CI_USE_S3 是否通过RunAI Streamer在CI中使用S3路径加载模型 0
VLLM_MARLIN_USE_ATOMIC_ADD 是否在gptq/awq marlin内核中使用atomicAdd归约 0
VLLM_V0_USE_OUTLINES_CACHE 是否为V0打开轮廓缓存 0
VLLM_TPU_DISABLE_TOPK_TOPP_OPTIMIZATION 是否禁用TPU特定的top-k和top-p采样优化 None
VLLM_TPU_BUCKET_PADDING_GAP 前向传递填充桶之间的间隙 64

SGLang

环境变量参数 命令行格式 描述 默认值
GLOO_SOCKET_IFNAME 分布式推理通讯用的接口名称 enp1s0(AI云主机默认镜像默认网卡名)
MODEL_PATH --model-path 模型路径 无 (必须指定)
TOKENIZER_PATH --tokenizer-path 分词器路径 与模型路径相同
HOST --host 服务器主机地址 "0.0.0.0"
PORT --port 服务器端口 30000
TOKENIZER_MODE --tokenizer-mode 分词器模式 (auto/slow) "auto"
LOAD_FORMAT --load-format 模型加载格式 "auto"
DTYPE --dtype 模型数据类型 "auto"
KV_CACHE_DTYPE --kv-cache-dtype KV缓存数据类型 "auto"
QUANTIZATION --quantization 量化方式
CONTEXT_LENGTH --context-length 上下文长度 与模型默认值相同
DEVICE --device 运行设备 (cuda/xpu/hpu/cpu) "cuda"
SERVED_MODEL_NAME --served-model-name 服务模型名称 根据MODEL_PATH推断
CHAT_TEMPLATE --chat-template 聊天模板
MEM_FRACTION_STATIC --mem-fraction-static 静态内存分配比例 0.9
MAX_RUNNING_REQUESTS --max-running-requests 最大并行请求数 无限制
MAX_TOTAL_TOKENS --max-total-tokens 最大总token数 无限制
CHUNKED_PREFILL_SIZE --chunked-prefill-size 分块预填充大小
MAX_PREFILL_TOKENS --max-prefill-tokens 最大预填充token数 无限制
STREAM_INTERVAL --stream-interval 流式输出间隔 0
STREAM_OUTPUT --stream-output 启用流式输出 未启用
RANDOM_SEED --random-seed 随机种子
WATCHDOG_TIMEOUT --watchdog-timeout 看门狗超时时间
LOG_LEVEL --log-level 日志级别 "info"
LOG_LEVEL_HTTP --log-level-http HTTP日志级别 "info"
API_KEY --api-key API密钥
FILE_STORAGE_PATH --file-storage-path 文件存储路径
TENSOR_PARALLEL_SIZE --tensor-parallel-size 张量并行大小 1
DATA_PARALLEL_SIZE --data-parallel-size 数据并行大小 1
EXPERT_PARALLEL_SIZE --expert-parallel-size 专家并行大小 1
ATTENTION_BACKEND --attention-backend 注意力机制后端 "flashinfer"
SAMPLING_BACKEND --sampling-backend 采样后端 "flashinfer"
GRAMMAR_BACKEND --grammar-backend 语法后端 "xgrammar"
LORA_BACKEND --lora-backend LoRA后端 "punica"
SCHEDULE_POLICY --schedule-policy 调度策略 "lpm"
SCHEDULE_CONSERVATIVENESS --schedule-conservativeness 调度保守度 0.1
CPU_OFFLOAD_GB --cpu-offload-gb CPU卸载内存大小(GB) 0
PAGE_SIZE --page-size 页面大小 16
DIST_TIMEOUT --dist-timeout 分布式超时时间 600
DOWNLOAD_DIR --download-dir 下载目录
BASE_GPU_ID --base-gpu-id 基础GPU ID 0
GPU_ID_STEP --gpu-id-step GPU ID步长 1

MindIE

环境变量参数 描述 默认值 备注 (更多使用详情请参考MindIE官方文档)
MAX_SEQ_LEN 最大序列长度 10240 对应MindIE配置参数:- maxSeqLen
MAX_INPUT_TOKEN_LEN 输入token id的最大长度 8192 对应MindIE配置参数:- maxInputTokenLen
MAX_PREFILL_TOKENS 每次Prefill时,当前batch中所有input token总数不能超过maxPrefillTokens 8192 对应MindIE配置参数:- maxPrefillTokens
MAX_ITER_TIMES 模型全局最大输出长度 4096 对应MindIE配置参数: - maxIterTimes
CPU_MEM_SIZE 单个CPU中可以用来申请KV Cache的Size上限 5 对应MindIE配置参数:- cpuMemSize
NPU_MEM_SIZE 单个NPU中可以用来申请KV Cache的Size上限 2 对应MindIE配置参数: - npuMemSize
GPU_MEMORY_UTILIZATION GPU显存的使用比例 0.96