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