# lvllm **Repository Path**: unclexing/lvllm ## Basic Information - **Project Name**: lvllm - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-27 - **Last Updated**: 2026-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LvLLM GPU、NUMA 双并行 [[English]](./README.md) LvLLM是vllm的特别扩展,充分利用CPU和GPU计算资源,高效的GPU并行+NUMA并行架构,适用于MOE模型混合推理。 ## 系统特性 - **GPU + NUMA 双并行**: 支持CPU-GPU混合解码、CPU-GPU混合预填充、GPU预填充三种计算方式 - **显存 + 内存负载均衡**: 模型总体占用=显存+内存,容纳模型1+1=2, 100%显存利用率 注1 - **GPU 预填充优化**: GPU预填充与CPU-GPU混合解码并行,接近100%显卡利用率 - **NUMA 线程优化**: 跨节点通信占比低至3%,三级缓存命中50%以上,解码阶段可推动GPU负载达到33%至50% 注1:除BF16、F16原版模型以外开启GPU预填充将额外占用内存[!非显存] ## 与vLLM的关系 Lvllm使用最新的vLLM源码,重新设计实现了MOE模型混合推理模块,保持了对vLLM的100%完全兼容。 ## 使用说明 [[English]](./README.md) - [版本变更](#版本变更) - [支持的模型](#支持的模型) - [性能参考](#性能参考) - [如何运行Qwen3.5-122B-A10B](#如何运行qwen35-122b-a10b) - [如何运行Qwen3.5-397B-A17B](#如何运行qwen35-397b-a17b) - [如何运行MiniMax-M2.5](#如何运行minimax-m25) - [如何运行Kimi-K2.5](#如何运行kimi-k25) - [配置参数](#配置参数) - [安装步骤](#安装步骤) - [更新](#更新) - [优化](#优化) ## 版本变更 ```bash 2026-02-25: lvllm-v1.8.7 - 修复已知问题,增加新模型支持 2026-02-02:lvllm-v1.7.0 - 支持EP并行,8卡运行minimax-m2.1模型需要设置--enable_expert_parallel 2026-01-26: lvllm-v1.6.1 - fp8 模型支持 FP8 + INT4 推理,支持GPU Prefill加速(内存占用很高!) 2026-01-25: lvllm-v1.6.0 - fp8 模型支持 GPU Prefill加速(内存占用很高!) 2026-01-24: lvllm-v1.5.8 - AWQ 4-bit 对称量化模型支持 GPU Prefill加速 2026-01-21: lvllm-v1.5.7 - 修复MiniMax-M2.1模型数值计算稳定问题 2026-01-08: lvllm-v1.5.1 - 针对长上下文场景,支持预填充与解码分离,GPU预填充与CPU-GPU混合解码并行 2026-01-04: v1.4.0 优化decode提升速度 2025-12-28:优化推理速度:bfloat16、awq4bit;优化多GPU的NUMA数据访问;为多GPU启用NUMA节点以实现最佳性能; 取消GGUF模型支持 2025-12-16 v1.2.0 同步上游vllm代码至最新,lk_moe优化降低内存占用 2025-12-14 v1.1.2 增加AWQ-4bit量化模型(对称量化 avx2版本)推理支持 -,验证通过 cpatonn/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit and cpatonn/ 2025-12-9: 增加LVLLM_MOE_USE_WEIGHT环境变量,支持MOE模块使用两种模式推理fp8模型: 2025-11-1: 支持张量并行、流水线多卡推理 https://b23.tv/xzHieMs 2025-10-30: 支持Qwen3系列模型GGUF混合推理(不包含Qwen3-Coder-30B-A3B-Instruct GGUF) [查看config.yaml里面的新参数] 2025-10-19: FP8支持GPU+NUMA 混合推理MOE模型!! [显存FP8精度,内存FP16精度] 已验证GLM-4.5-Air-FP8 2025-10-14: 开启cuda graph , decode 速度翻倍!! 输出质量提高!! 2025-09-30 已验证:Qwen3-Next-80B-A3B-Instruct、Qwen3-Coder-30B-A3B-Instruct ``` ## 支持的模型 vLLM已验证的大部分原版MOE模型 | 模型名称 | 状态 | |---------|------| | Qwen3.5-122B-A10B | ✅ 已测试通过 | | Qwen3.5-397B-A17B | ✅ 已测试通过 | | Qwen3-Coder-Next | ✅ 已测试通过 | | Qwen3-Next-80B-A3B-Instruct | ✅ 已测试通过 | | Qwen3-Coder-30B-A3B-Instruct | ✅ 已测试通过 | | Qwen3-VL-30B-A3B-Instruct | ✅ 已测试通过 | | MiniMax-M2.5 | ✅ 已测试通过 | | MiniMax-M2.1 | ✅ 已测试通过 | | GLM-4.7 | ✅ 已测试通过 | | GLM-4.7-Flash | ✅ 已测试通过 | | GLM-4.6V | ✅ 已测试通过 | | Kimi k2.5 | ✅ 已测试通过 | 未列出的Qwen3系列、GLM系列、MiniMax系列的原版MOE模型理论上支持,待实际测试。 ## 尚未支持的模型 | 模型名称 | 状态 | |---------|------| | DeepSeek-V3.2| 待定 | ## 支持的模型权重格式及运行时格式 | 模型文件 | 运行时格式 | |---------|------------| | bfloat16 | bfloat16/float16| | float16 | bfloat16/float16| | fp8模型 | fp8、fp8+bfloat16、fp8+int4 | | awq 4bit对称量化模型 注1| int4 | 注1:https://hf-mirror.com/cyankiwi 提供AWQ 4bit对称量化模型 ## 性能参考 | 模型 | 运行时格式 | 预填充速度(tokens/s) | 解码速度(tokens/s) | CPU | GPU |内存 | |------|----------|---------------------|-------------------|----------|---------|---------| | Qwen3-Next-80B-A3B-Instruct原版 | bfloat16 |15000 注1 | 90 | 双路 EPYC 9555ES | 单卡 Nvidia RTX Pro 6000 | 6400MT/s | | MiniMax-M2.1原版 | fp8+bfloat16 | 5000 注1 | 29 | 双路 EPYC 9684x | 单卡 Nvidia RTX 5090 | 4800MT/s | 注1:开启GPU预填充,输入长度32K-64K ## 如何运行Qwen3.5-122B-A10B ```bash sync && echo 3 | sudo tee /proc/sys/vm/drop_caches free -h pip uninstall transformers flashinfer-cubin -y pip install transformers==4.57.6 flashinfer-cubin==0.6.4 PYTORCH_ALLOC_CONF=expandable_segments:True \ VLLM_TEST_FORCE_FP8_MARLIN=1 \ NCCL_SOCKET_IFNAME=lo \ NCCL_IB_DISABLE=1 \ GLOO_SOCKET_IFNAME=lo \ NCCL_SOCKET_TIMEOUT=600000 \ LVLLM_MOE_NUMA_ENABLED=1 \ LK_THREAD_BINDING=CPU_CORE \ LK_THREADS=44 \ OMP_NUM_THREADS=44 \ LVLLM_MOE_USE_WEIGHT=INT4 \ LVLLM_GPU_RESIDENT_MOE_LAYERS=0 \ LVLLM_GPU_PREFETCH_WINDOW=1 \ LVLLM_GPU_PREFILL_MIN_BATCH_SIZE=2048 \ LVLLM_ENABLE_NUMA_INTERLEAVE=1 \ LVLLM_MOE_QUANT_ON_GPU=1 \ vllm serve \ --model /home/guqiong/Models/Qwen3.5-122B-A10B \ --host 0.0.0.0 \ --port 8070 \ --tensor-parallel-size 2 \ --max-model-len 40000 \ --gpu-memory-utilization 0.80 \ --trust-remote-code \ --tokenizer-mode auto \ --swap-space 0 \ --served-model-name Qwen3.5-122B-A10B \ --compilation_config.cudagraph_mode FULL_DECODE_ONLY \ --enable-prefix-caching \ --enable-chunked-prefill \ --max-num-batched-tokens 16384 \ --max-num-seqs 4 \ --compilation_config.mode VLLM_COMPILE \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder \ --reasoning-parser qwen3 \ --language-model-only ``` ## 如何运行Qwen3.5-397B-A17B ```bash sync && echo 3 | sudo tee /proc/sys/vm/drop_caches free -h pip uninstall transformers -y pip install transformers==4.57.6 PYTORCH_ALLOC_CONF=expandable_segments:True \ VLLM_TEST_FORCE_FP8_MARLIN=1 \ NCCL_SOCKET_IFNAME=lo \ NCCL_IB_DISABLE=1 \ GLOO_SOCKET_IFNAME=lo \ NCCL_SOCKET_TIMEOUT=600000 \ LVLLM_MOE_NUMA_ENABLED=1 \ LK_THREAD_BINDING=CPU_CORE \ LK_THREADS=44 \ OMP_NUM_THREADS=44 \ LVLLM_MOE_USE_WEIGHT=INT4 \ LVLLM_GPU_RESIDENT_MOE_LAYERS=0 \ LVLLM_GPU_PREFETCH_WINDOW=1 \ LVLLM_GPU_PREFILL_MIN_BATCH_SIZE=2048 \ LVLLM_ENABLE_NUMA_INTERLEAVE=1 \ LVLLM_MOE_QUANT_ON_GPU=0 \ vllm serve \ --model /home/guqiong/Models/Qwen3.5-397B-A17B-FP8 \ --host 0.0.0.0 \ --port 8070 \ --tensor-parallel-size 2 \ --max-model-len 40000 \ --gpu-memory-utilization 0.80 \ --trust-remote-code \ --tokenizer-mode auto \ --swap-space 0 \ --served-model-name Qwen3.5-397B-A17B-FP8 \ --compilation_config.cudagraph_mode FULL_DECODE_ONLY \ --enable-prefix-caching \ --enable-chunked-prefill \ --max-num-batched-tokens 16384 \ --max-num-seqs 4 \ --compilation_config.mode VLLM_COMPILE \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder \ --reasoning-parser qwen3 \ --language-model-only ``` ## 如何运行MiniMax-M2.5 ```bash pip uninstall transformers -y pip install transformers==4.57.6 PYTORCH_ALLOC_CONF=expandable_segments:True \ VLLM_TEST_FORCE_FP8_MARLIN=1 \ NCCL_SOCKET_IFNAME=lo \ NCCL_IB_DISABLE=1 \ GLOO_SOCKET_IFNAME=lo \ NCCL_SOCKET_TIMEOUT=600000 \ LVLLM_MOE_NUMA_ENABLED=1 \ LK_THREAD_BINDING=CPU_CORE \ LK_THREADS=44 \ OMP_NUM_THREADS=44 \ LVLLM_MOE_USE_WEIGHT=INT4 \ LVLLM_GPU_RESIDENT_MOE_LAYERS=0-1 \ LVLLM_GPU_PREFETCH_WINDOW=1 \ LVLLM_GPU_PREFILL_MIN_BATCH_SIZE=4096 \ LVLLM_ENABLE_NUMA_INTERLEAVE=1 \ LVLLM_MOE_QUANT_ON_GPU=1 \ vllm serve \ --model /home/guqiong/Downloads/MiniMax-M2.5 \ --host 0.0.0.0 \ --port 8070 \ --tensor-parallel-size 2 \ --max-model-len 50000 \ --gpu-memory-utilization 0.80 \ --trust-remote-code \ --tokenizer-mode auto \ --swap-space 0 \ --served-model-name MiniMax-M2.5 \ --compilation_config.cudagraph_mode FULL_DECODE_ONLY \ --enable-prefix-caching \ --enable-chunked-prefill \ --max-num-batched-tokens 32768 \ --dtype bfloat16 \ --max-num-seqs 4 \ --compilation_config.mode VLLM_COMPILE \ --enable-auto-tool-choice \ --tool-call-parser minimax_m2 \ --reasoning-parser minimax_m2_append_think ``` ```bash # 遇到性能问题时可尝试按NUMA节点绑定线程, 并减少线程数量 ``` ```bash --enable_expert_parallel # 启用EP并行, 8卡运行minimax-m2.1模型需设置 ``` ## 如何运行Kimi-K2.5 ```bash sync && echo 3 | sudo tee /proc/sys/vm/drop_caches free -h pip uninstall transformers -y pip install transformers==4.57.6 PYTORCH_ALLOC_CONF=expandable_segments:True \ VLLM_TEST_FORCE_FP8_MARLIN=1 \ NCCL_SOCKET_IFNAME=lo \ NCCL_IB_DISABLE=1 \ GLOO_SOCKET_IFNAME=lo \ NCCL_SOCKET_TIMEOUT=600000 \ LVLLM_MOE_NUMA_ENABLED=1 \ LK_THREAD_BINDING=CPU_CORE \ LK_THREADS=44 \ OMP_NUM_THREADS=44 \ LVLLM_MOE_USE_WEIGHT=INT4 \ LVLLM_ENABLE_NUMA_INTERLEAVE=1 \ LVLLM_MOE_QUANT_ON_GPU=1 \ vllm serve \ --model /home/guqiong/Models/Kimi-K2.5 \ --host 0.0.0.0 \ --port 8070 \ --tensor-parallel-size 2 \ --max-model-len 16384 \ --gpu-memory-utilization 0.80 \ --trust-remote-code \ --tokenizer-mode auto \ --swap-space 0 \ --served-model-name Kimi-K2.5 \ --compilation_config.cudagraph_mode FULL_AND_PIECEWISE \ --enable-prefix-caching \ --enable-chunked-prefill \ --max-num-batched-tokens 2048 \ --dtype bfloat16 \ --max-num-seqs 4 \ --compilation_config.mode VLLM_COMPILE \ --enable-auto-tool-choice \ --tool-call-parser kimi_k2 \ --reasoning-parser kimi_k2 ``` ## 配置参数 | 环境变量 | 类型 | 默认值 | 说明 | 备注 | |--------|------|--------|------|------| | `LVLLM_MOE_NUMA_ENABLED` | 核心参数 | `0` | 是否启用混合推理: `1`-启用,`0`-禁用 | 设置为`0`禁用混合推理,行为与vLLM相同 | | `LK_THREAD_BINDING` | 性能参数 | `CPU_CORE` | 线程绑定策略: `CPU_CORE`-按CPU核心绑定,`NUMA_NODE`-按NUMA节点绑定 | 默认按CPU核心绑定, 遇到性能问题时可尝试按NUMA节点绑定 | | `LK_THREADS` | 性能参数 | 自动计算 | 线程数量: 物理核心数-4 | 多GPU多进程时,物理核心数-4除以进程数量 | | `OMP_NUM_THREADS` | 性能参数 | 系统逻辑核心数量 | OpenMP线程数: 设置为`LK_THREADS`相同 | | | `LVLLM_MOE_USE_WEIGHT` | 性能参数 | `TO_DTYPE` | 运行时专家权重格式`TO_DTYPE`: 与config.yaml中dtype一致,bfloat16/float16, `KEEP`: 与模型一致,`INT4`: int4 | | `LVLLM_GPU_RESIDENT_MOE_LAYERS` | GPU预填充参数 | 无 | 常驻GPU的MOE专家层`0`: 第0层,`0-1`: 第0层到第1层,`0,9`: 第0层和第9层 | 留足KV Cache显存后,分配多层可增加性能,并减少对应的内存占用,包含0层才有加速效果 | | `LVLLM_GPU_PREFETCH_WINDOW` | GPU预填充参数 | 无 | 预取窗口大小`1`: 预取1层MOE专家 | 一般预取1到2层即可 | | `LVLLM_GPU_PREFILL_MIN_BATCH_SIZE` | GPU预填充参数 | 无 | 使用GPU预填充的最小输入长度`4096`:输入长度达到该值后,启动GPU预填充 | 设置值不宜过小,设置为0则关闭GPU预填充功能 | | `LK_POWER_SAVING` | cpu节能 | 0 | `1`:启用cpu节能模式,`0`:禁用cpu节能模式 | 建议值:`0` | | `LVLLM_ENABLE_NUMA_INTERLEAVE` | 性能参数 | 0 | `0`:快速加载模型,`1`:慢速加载模型可避免OOM | 建议值:加载模型文件时,内存充裕使用`0`,内存紧张使用`1` | | `LVLLM_MOE_QUANT_ON_GPU` | 性能参数 | 0 | `0`:不启用GPU专家量化,`1`:启用GPU专家量化 | 显存充足可启用(仅加载时有效,推理时不会额外占用显存),加快模型加载速度 | | 参数 | 示例值 | 说明 | |-----------|-------|-------------| | `model` | `/home/guqiong/Models/Models/MiniMax-M2.5` | 模型目录路径 | | `host` | `0.0.0.0` | 服务绑定IP地址 | | `port` | `8070` | 服务绑定端口号 | | `tensor-parallel-size` | `2` | 张量并行大小,小于等于GPU数量 | | `pipeline-parallel-size` | `2` (commented) | 流水线并行大小,小于等于GPU数量 | | `max-model-len` | `18000` | 最大上下文长度,小于等于模型最大长度 | | `gpu-memory-utilization` | `0.92` | 分配给vLLM的GPU显存分配百分比,小于等于1 | | `trust-remote-code` | `true` | 是否信任远程代码,建议值 | | `tokenizer-mode` | `auto` | 分词器模式,建议值 | | `swap-space` | `0` | 交换空间大小,单位GB,建议值 | | `served-model-name` | `Models/MiniMax-M2.5` | 服务模型名称 | | `compilation_config.cudagraph_mode` | `FULL_DECODE_ONLY` | 启用CUDA图模式,建议值 | | `enable_prefix_caching` | `true` | 启用前缀缓存,建议值 | | `enable-chunked-prefill` | `true` | 启用分块预填充,建议值 | | `max_num_batched_tokens` | `18000` | 最大批量填充令牌数,关闭GPU预填充时建议值:1024,开启GPU预填充时建议值:同max-model-len | | `dtype` | `bfloat16` | 模型中间计算数据类型,建议值bfloat16或float16 | | `max_num_seqs` | `4` | 最大并发请求序列,建议值1到4 | | `compilation_config.mode` | `VLLM_COMPILE` | 优化模型,建议值 | | 参数 | 说明 | |-----------|-------------| | `kv_cache_dtype: "fp8"` | KV Cache数据类型,40系、50系GPU可开启 (commented) | | `speculative-config` | 推测解码配置,建议值关闭 (commented) | | `mm-encoder-tp-mode: "data"` | encoder TP模式 (commented) | ## 安装步骤 ### 1. 安装CUDA 12.9 ```bash # 卸载旧版本CUDA和NVIDIA驱动 sudo /usr/local/cuda/bin/cuda-uninstaller sudo nvidia-uninstall # 下载并安装CUDA 12.9 wget https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux.run sudo sh cuda_12.9.1_575.57.08_linux.run ``` ### 2. 创建Python环境 ```bash conda create -n Lvllm python==3.12.11 conda activate Lvllm # 升级libstdcxx-ng(避免glibcxx版本问题) conda install -c conda-forge libstdcxx-ng export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH # 安装NUMA库 sudo apt-get install libnuma-dev # Ubuntu sudo dnf install numactl-devel # Rocky Linux ``` ### 3. 安装依赖 ```bash # 克隆仓库 git clone https://github.com/guqiong96/Lvllm.git cd Lvllm # 安装PyTorch 2.9.1 pip install torch==2.9.1 # 使用现有PyTorch python use_existing_torch.py # 安装构建依赖 pip install -r requirements/build.txt ``` ### 4. 安装Lvllm ```bash MAX_JOBS=32 NVCC_THREADS=1 CMAKE_BUILD_TYPE=Release CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release" pip install -e . --no-build-isolation -vvv ``` **参数说明:** - `MAX_JOBS=32 NVCC_THREADS=1`: 减少编译内存占用 - `CMAKE_BUILD_TYPE=Release`: 性能优化选项 - `CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release`: 性能优化选项 ## 更新 如果已安装Lvllm,需要更新到最新版本,请执行以下命令: ```bash git fetch && git reset --hard origin/main && git clean -fd # 此命令适合普通用户,如果保留本地修改内容的用户应知道提前做处理 # 安装PyTorch 2.9.1 pip uninstall torchaudio triton torchvision torch vllm pip install torchaudio triton torchvision torch==2.9.1 # Qwen3-VL GLM4.6V 需要安装 xformers # 编译安装 python use_existing_torch.py pip install -r requirements/build.txt MAX_JOBS=32 NVCC_THREADS=1 CMAKE_BUILD_TYPE=Release CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release" pip install -e . --no-build-isolation -vvv rm -rf ~/.cache/vllm rm -rf ~/.cache/flashinfer ``` ## 优化 ### MoE常驻显存, 线性增加decode和prefill速度 ```bash LVLLM_GPU_RESIDENT_MOE_LAYERS=0-5 # 0-5层MoE层常驻显存 #LVLLM_GPU_RESIDENT_MOE_LAYERS=0,1,8-9 # 0,1,8-9层MoE层常驻显存 #LVLLM_GPU_RESIDENT_MOE_LAYERS="" # 关闭MoE常驻显存 ``` ### 开启GPU预填充 ```bash LVLLM_GPU_RESIDENT_MOE_LAYERS=0-2 # 0-2层MoE常驻显存, 开启GPU预填充包含0层方可发挥最佳性能 #LVLLM_GPU_RESIDENT_MOE_LAYERS=3-4 # 少数模型起始层号不为0,例如Step-3.5-Flash模型起始为3 LVLLM_GPU_PREFETCH_WINDOW=1 # 预取1层, 建议值为1-2, 多了无意义 LVLLM_GPU_PREFILL_MIN_BATCH_SIZE=4096 # 输入长度达到4096启动GPU prefill,根据cpu prefill性能可减小或加大, 提前或推后启动prefill max_num_batched_tokens: 65536 # 与上下文大小相同获得最佳性能,可根据显存情况适当调小,超过上下文大小无意义 ``` ### 关闭GPU预填充 ```bash LVLLM_GPU_PREFILL_MIN_BATCH_SIZE=0 # 关闭GPU预填充 #LVLLM_GPU_PREFILL_MIN_BATCH_SIZE="" # 关闭GPU预填充 max_num_batched_tokens: 1024 # 1024至8192,太大无意义(占用显存及启动时间过长) ``` ### 线程绑定到CPU核心 ```bash LK_THREAD_BINDING=CPU_CORE # 绑定到CPU核心(包括超线程逻辑核心), 最佳性能 #LK_THREAD_BINDING=NUMA_NODE # 绑定到NUMA节点, 次优选择,解决部署在虚拟化平台的极端性能问题 ``` ### BIOS NUMA 设置 ```bash AMD EPYC:设置NPS4获得最佳性能 Intel XEON:设置SNC4获得最佳性能 通常:2,4,8个节点,最多支持32节点,节点越多越好,节点数为GPU倍数获得最佳性能 # 部分虚拟化平台或Intel平台不要设置5、10节点,设置2节点避免性能问题 ``` ### 线程数设置 ```bash 线程数 <= (核心数 - x)/ 张量并行数(TP size) # x 留给其它任务的线程,至少4线程 LK_THREADS=44 # 96核心,2个GPU, 每个GPU 44线程, 88线程, 剩余8线程留给其它任务 线程数太大可能会引发性能问题 # 虽然系统会自动条件线程数,但建议手动设置进行测试 ``` ### decode性能 ```bash compilation_config.mode: "VLLM_COMPILE" # 支持2080ti及以上GPU compilation_config.cudagraph_mode: "FULL_DECODE_ONLY" # 开启CUDAGraph ``` ### 显存设置 ```bash gpu-memory-utilization: 0.80 # 24G显存开启GPU预填充时,留出足够临时显存用于计算,否则会导致长上下文预填充性能大幅下降,启动时间过长 # gpu-memory-utilization: 0.92 # 24G显存关闭GPU预填充时,无需留出过多显存 # max_num_seqs: 1 # 最多1并发,最大节省显存 max_num_seqs: 4 # 最多4并发,常规节省显存 max_num_batched_tokens: 1024 # 关闭GPU预填充时,节省显存,性能不变,但如果开启GPU预填充会导致性能下降 max_num_batched_tokens: 65536 或更大 # 开启GPU预填充时,获得最佳性能,但如果关闭GPU预填充会导致性能下降 ``` ### CPU节能 ```bash LK_POWER_SAVING=1 # 开启后推理时降低CPU温度,性能轻微降低 ``` ### FP8模型权重运行时格式 ```bash LVLLM_MOE_USE_WEIGHT=INT4 # 模型MoE专家权重使用INT4推理,其余部分依旧为FP8,开启几乎不影响精度, 速度排序:INT4 > TO_DTYPE > KEEP ``` ### 模型加载 ```bash LVLLM_ENABLE_NUMA_INTERLEAVE=1 # 慢速加载模型可避免OOM,建议值:加载模型文件时,内存充裕使用`0`,内存紧张使用`1` ``` ### 模型加载专家量化 ```bash LVLLM_MOE_QUANT_ON_GPU=1 # 启用GPU专家量化,建议值:显存充足可启用(仅加载时有效,推理时不会额外占用显存),加快模型加载速度 ```