FP8 线性核用于 DeepSeek-V3/R1
概述
DeepSeek-AI团队为DeepSeek-R1/V3模型提供FP8安全张量。我们通过以下工作实现性能优化:
- FP8 GPU 内核集成: 集成在 KTransformers 中的 FP8 线性层加速内核
- Hybrid Quantization Architecture:
- 注意和共享专家模块使用FP8精度(提高计算精度)
- 专家模块保留GGML量化(GGUF格式,驻留在CPU中以节省GPU内存)
因此,追求最佳性能的用户可以对DeepSeek-V3/R1使用FP8线性内核。
主要特性
✅ 混合精度架构 (FP8 + GGML)
✅ 内存优化 (~19GB VRAM 使用)
快速开始
使用预合并权重
预合并权重可在 Hugging Face 上获取:
KVCache-ai/DeepSeek-V3-GGML-FP8-Hybrid
KVCache-ai/DeepSeek-R1-GGML-FP8-Hybrid
请确认所有权重已完全上传,然后再进行下载。大文件大小可能会延长 Hugging Face 的上传时间。
下载预合并权重
pip install -U huggingface_hub
# Optional: Use HF Mirror for faster downloads in special area.
# export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --resume-download KVCache-ai/DeepSeek-V3-GGML-FP8-Hybrid --local-dir <local_dir>
使用合并脚本
如果您获得了本地的 DeepSeek-R1/V3 fp8 safetensors 和 gguf 权重(例如 q4km),您可以使用以下脚本合并它们。
python merge_tensors/merge_safetensor_gguf.py \
--safetensor_path <fp8_safetensor_path> \
--gguf_path <gguf_folder_path> \
--output_path <merged_output_path>
--safetensor_path: safetensor 文件的输入路径(下载).--gguf_path: gguf 文件夹的输入路径 (下载).--output_path: 合并文件的输出路径。
执行说明
使用自定义量化专家启动 local_chat.py
python ktransformers/local_chat.py \
--model_path deepseek-ai/DeepSeek-V3 \
--gguf_path <merged_weights_folder> \
--optimize_config_path ktransformers/optimize/optimize_rules/DeepSeek-V3-Chat-fp8-linear-ggml-experts.yaml \
--cpu_infer <cpu_cores + 1>
注意事项
⚠️ 硬件要求
- 推荐最低 19GB 可用 VRAM 用于 FP8 内核。
- 需要支持FP8的GPU(例如,4090)
⏳ 首次运行优化 JIT 编译会导致初始执行时间较长(后续运行保留优化速度)。
🔄 暂时接口
当前的权重加载实现是临时的 - 将在未来的版本中进行完善
📁 路径规范
尽管进行了混合量化,合并的权重作为 .safetensors 存储 - 将包含文件夹的路径传递给 --gguf_path