【保姆级教程】RTX 4090 部署 DeepSeek-V4-Flash 全攻略(INT4 量化 + 128K 上下文)

📅 2026/7/27 23:30:44 👁️ 阅读次数 📝 编程学习
【保姆级教程】RTX 4090 部署 DeepSeek-V4-Flash 全攻略(INT4 量化 + 128K 上下文)

前言

  1. 模型说明:DeepSeek-V4-Flash 官方原生支持 1M(104 万 token)上下文,本文通过参数限制为 128K 降低显存压力。

  2. 硬件限制:RTX 4090 24G 仅支持INT4 量化,FP8/FP16 显存不足,且 4090 无原生 FP8 硬件加速,INT4 是唯一可行方案,显卡不足建议部署采用Q4_K_M 量化模型

  3. 部署引擎:全量GPU部署显存压力过大,要求5090以上显卡配置。且vLLM不支持内存卸载,推荐使用ktransformers推理引擎部署。内存卸载方案建议内存256G,至少128G。

  4. 性能预期:INT4至少2张 4090 起步,显卡不足可考虑Q2、Q3模型,4 卡部署兼顾性能和成本,部署更稳定。

一、环境准备

基础环境及版本要求如下:

组件

版本

说明

ktransformers

≥ 0.6.2

v0.6.2 首次原生支持 DeepSeek-V4-Flash(PR #1970:kt-kernel MXFP4 MoE + sglang hybrid inference)

Python

3.10 / 3.11

CUDA

≥ 12.8

官方文档要求 12.8+(含 4090)

NVIDIA 驱动

≥550(CUDA 12.8 兼容)

transformers

== 4.57.1(必须钉版)

5.x 会让 DeepSeekV4Config 报 TypeError,必须手动钉 4.57.1

flashinfer

≥ 0.6.9(flashinfer-python + flashinfer-cubin 同版本)

V4-Flash 的 MXFP4 MoE 模块需要 0.6.9 才有的 mxfp8_quantize 等 API

tilelang

== 0.1.8

4090 必装——NSA sparse-MLA indexer 在非 Hopper GPU 上走 tilelang 路径

sglang

kvcache-ai fork(ktransformers 内置 submodule)

不是上游 sglang,是 KT 专用 fork

1. 基础环境配置

推荐使用 Ubuntu 22.04 系统,搭配 CUDA 12.4+,NVIDIA 驱动 ≥ 550,python ≥ 3.10, ktransformers ≥ 0.6.2:

# 创建并激活虚拟环境 conda create -n deepseek python=3.11 -y conda activate deepseek

2. 安装 ktransformers 与依赖

# 1. 克隆 ktransformers(含全部 submodule) git clone https://github.com/kvcache-ai/ktransformers.git cd ktransformers git submodule update --init --recursive # 2. 编译 KT-Kernel(C++/CUDA 扩展,10-20 分钟) cd kt-kernel && ./install.sh && cd .. # 3. 安装 SGLang(kvcache-ai 专用 fork,不是上游 sglang) ./install.sh # 4. 关键依赖(三个必须钉版/版本) pip install --upgrade flashinfer-python flashinfer-cubin # ≥0.6.9,两个包同版本 pip install "transformers==4.57.1" # 必须!5.x 会报 TypeError pip install tilelang==0.1.8 # 4090 必装!NSA sparse-MLA 路径 # 5. 验证 python -c "import ktransformers; print(ktransformers.__version__)" # 期望 ≥0.6.2

二、下载 DeepSeek-V4-Flash 模型

1.下载路径

国内用户优先使用魔搭社区(ModelScope)下载,速度更快:

优先级地址
首选DeepSeek-V4-Flash-GGUF
备选DeepSeek-V4-Flash-GGUF
官方原版(取 config)DeepSeek-V4-Flash

2.模型选择

首选Unsloth 这个仓库,推荐下载UD-Q4_K_XL

量化方案位宽文件大小你这套机器的评价
UD-Q4_K_XL4-bit155 GB首选——Unsloth 自家推荐,跟标准 Q4_K_M 效果对齐,200GB 内存宽宽松松
UD-IQ4_NL / UD-IQ4_XS4-bit iMatrix138 GB备选——重要性加权 4-bit,部分基准反而略好;想留更多内存余量时选这个
UD-Q3_K_M / UD-Q3_K_XL3-bit129 GB⚠️ 仅在你实际只有 192GB、想跑更长上下文时考虑,质量会降
UD-IQ3_S3-bit iMatrix117 GB同上,但要 3-bit 时比 Q3_K_M 更值
UD-Q8_K_XL8-bit162 GB❌ 你这套机器跑没意义——只有 4 卡 24G,仍需卸载,不如直接用 Q4
UD-Q2_K_XL / UD-IQ2_*2-bit91–97 GB❌ V4-Flash 量化损失过大,长链推理会瞎
UD-IQ1_S / UD-IQ1_M1-bit83–87 GB❌ 极端压损,不适合生产

三、RTX 4090 部署核心配置

1. 启动服务

cd /path/to/ktransformers # ========== 4090 专属环境变量 ========== export CUDA_VISIBLE_DEVICES=0,1,2,3 export FLASHINFER_CUDA_ARCH_LIST=8.9a # SM_89 = RTX 4090 export TORCH_CUDA_ARCH_LIST="8.9+PTX" export SGLANG_DSV4_MODE=2604 # V4-Flash 必须 export SGLANG_DSV4_2604_SUBMODE=2604B # V4-Flash 必须,缺失会报 swiglu_limit 断言 # ========== 启动 SGLang + KT-Kernel 服务 ========== numactl --interleave=all python -m sglang.launch_server \ --host 0.0.0.0 \ --port 8000 \ --model /data/models/DeepSeek-V4-Flash \ --kt-weight-path /data/models/DeepSeek-V4-Flash \ --kt-method MXFP4 \ --kt-num-gpu-experts 20 \ --kt-cpuinfer 56 \ --kt-threadpool-count 2 \ --kt-gpu-prefill-token-threshold 4096 \ --kt-enable-dynamic-expert-update \ --tensor-parallel-size 4 \ --context-length 32768 \ --attention-backend flashinfer \ --mem-fraction-static 0.85 \ --chunked-prefill-size 2048 \ --max-prefill-tokens 2048 \ --max-running-requests 2 \ --watchdog-timeout 1200 \ --disable-shared-experts-fusion \ --trust-remote-code \ --cuda-graph-bs 1 \ --cuda-graph-max-bs 1 \ --disable-radix-cache \ --skip-server-warmup

关键参数说明

参数

说明

4×4090 调优

--kt-method MXFP4

CPU 专家用 MXFP4 精度计算(官方 FP4 原版权重直接用)

默认

--kt-num-gpu-experts 20

放在 GPU 上的路由专家数量

4 卡 96GB 可放 20–30 个(每个约 0.5GB),单卡 5090 官方示例是 10

--kt-cpuinfer 56

CPU 推理线程数

≈ 物理核心数(留几个给系统)

--kt-threadpool-count 2

CPU 线程池数

双路 CPU 可设 2–4

--tensor-parallel-size 4

4 卡张量并行

= 4090 数量

--context-length 32768

上下文长度

200GB 内存建议 16K–32K 起步,有余量再加

--mem-fraction-static 0.85

静态显存占用比例

0.85–0.90

--max-running-requests 2

最大并发请求数

4090 offload 方案建议 1–2

SGLANG_DSV4_MODE=2604

V4-Flash 必须设置

缺失会报 swiglu_limit assertion error

FLASHINFER_CUDA_ARCH_LIST=8.9a

4090 专属,告诉 flashinfer JIT 编译 SM_89 kernel

5090 是 12.0a

首次启动耗时 4–10 分钟(权重加载 + MXFP4 swizzling + CUDA Graph 捕获)。

2.服务化与验证

健康检查:

# 模型列表 curl http://192.168.x.x:8000/v1/models # 对话测试(官方推荐 temperature=1.0, top_p=1.0) curl http://192.168.x.x:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-ai/DeepSeek-V4-Flash", "messages": [{"role": "user", "content": "你好,介绍一下你自己"}], "temperature": 1.0, "top_p": 1.0, "max_tokens": 256 }'

客户端接入:

Dify / Chatbox / Cherry Studio / OpenAI SDK 填:

  • base_url:http://192.168.x.x:8000/v1
  • api_key: 任意值(SGLang 默认不校验,可加 nginx 前置鉴权)
  • model:deepseek-ai/DeepSeek-V4-Flash

四、部署成功后测试

1. OpenAI 兼容 API 调用

部署成功后,服务默认运行在http://localhost:8000/v1,兼容 OpenAI 接口格式,可直接用 OpenAI SDK 调用:

from openai import OpenAI ​ # 初始化客户端 client = OpenAI( base_url="http://localhost:8000/v1", api_key="dummy" # 本地部署无需真实 API Key,填任意值即可 ) ​ # 对话测试 response = client.chat.completions.create( model="deepseek-v4-flash", messages=[ {"role": "system", "content": "你是一个 helpful 的助手。"}, {"role": "user", "content": "请用 100 字介绍一下 DeepSeek-V4-Flash。"} ], temperature=0.7, max_tokens=1024 ) ​ print("模型回复:", response.choices[0].message.content)

2. 浏览器 Web 界面测试

可使用open\-webui等工具快速搭建 Web 界面,对接本地部署的 API,实现可视化对话。


五、常见问题与解决方案

1. 部署时爆显存(OOM)

  • 降低\-\-gpu\-memory\-utilization数值(如从 0.85 改为 0.8)

  • 减少并发请求数量,确认使用Q4_K_M 而非普通 INT4

  • 增加显卡数量,使用多卡并行

2. 模型加载失败

  • 检查 vLLM 版本是否 ≥ 0.6.6

  • 确认模型文件完整下载,无损坏

  • 确保\-\-trust\-remote\-code参数已添加

3. 生成速度很慢

  • 4090 无原生 FP8 加速,INT4 量化速度会比专业显卡慢,但Q4_K_M 精度优于普通 INT4

  • 多卡并行可显著提升速度

  • 开启\-\-enable\-prefix\-caching优化对话场景速度

4. 精度下降明显

  • INT4 量化会轻微损失精度,对话、写作场景无明显影响,复杂推理任务建议使用更高精度显卡(如 A100)


六、总结

  1. RTX 4090 24G 可以部署 DeepSeek-V4-Flash,核心是Q4_K_M 量化 + 限制 128K 上下文

  2. 双卡可跑,4卡性能更稳,速度与并发能力显著提升。

  3. 部署后的服务兼容 OpenAI API,可直接对接各类应用与工具。