cloudyu's picture
Update README.md
abc20c6 verified
|
Raw
History Blame Contribute Delete
11.6 kB
---
license: mit
library_name: transformers
tags:
- deepseek
- moe
- mixture-of-experts
- topk-4
- efficient-inference
---
## What is DeepSeek-V4-Flash-4Expert?
[DeepSeek-V4-Flash](https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash) is a 284B-parameter Mixture-of-Experts (MoE) language model with 13B activated parameters, supporting a context length of **one million tokens**. The original model uses `tok=6` by default.
**cloudyu/DeepSeek-V4-Flash-4Expert** is the same model with the number of activated experts per token reduced from **6 → 4**, while keeping all other weights identical. This change:
- **Reduces inference compute** by ~33% (fewer active experts per forward pass)
- **Improves generation throughput** by ~8–11%
- **Maintains or improves accuracy** on both code generation and knowledge benchmarks
- Uses the same **FP4 + FP8 mixed precision** format as the original
## Key Changes from Original
| Configuration | Original (top_k=6) | This Model (top_k=4) |
|:---|:---:|:---:|
| `num_experts_per_tok` | 6 | **4** |
| Activated params | ~13B | **~11B** |
| Total params | 284B | 284B |
| Routing method | `noaux_tc` | `noaux_tc` |
| All other weights | identical | identical |
The tid2eid (expert routing) weight tensors have been reshaped from `[vocab_size, 6]` to `[vocab_size, 4]` — only the first 4 columns are retained, matching the original training distribution order. No additional training or fine-tuning was performed; this is purely an inference-time configuration change.
## Independent Evaluation Results
We evaluated the model against the original top_k=6 configuration on two benchmarks: **HumanEval** (code generation) and **MMLU-Pro** (multi-domain knowledge).
### HumanEval (Pass@1)
##[eval details](https://huggingface.co/cloudyu/DeepSeek-V4-Flash-4Expert/blob/main/eval/report_humaneval_topk_compare.md)
| Configuration | Pass@1 | Generation Time |
|:---|---:|---:|
| **Top_k=4 (this model)** | **95.73%** (157/164) | **56.83s** |
| Top_k=6 (original) | 95.73% (157/164) | 64.06s |
- Identical accuracy on code generation
- **12.7% faster** generation
[eval details](https://huggingface.co/cloudyu/DeepSeek-V4-Flash-4Expert/blob/main/eval/report_humaneval_topk_compare.md)
### MMLU-Pro (Accuracy)
##[eval details](https://huggingface.co/cloudyu/DeepSeek-V4-Flash-4Expert/blob/main/eval/report_mmlupro_topk_compare.md)
| Configuration | Accuracy | Generation Time |
|:---|---:|---:|
| **Top_k=4 (this model)** | **41.46%** (4988/12032) | **78.24s** |
| Top_k=6 (original) | 37.77% (4545/12032) | 85.16s |
- **+3.69 percentage points** higher accuracy
- **8.1% faster** generation
[eval details](https://huggingface.co/cloudyu/DeepSeek-V4-Flash-4Expert/blob/main/eval/report_mmlupro_topk_compare.md)
### Category Breakdown (MMLU-Pro)
| Category | top_k=4 | top_k=6 | Delta |
|:---|---:|---:|---:|
| biology | 68.62% | 72.66% | −4.04pp |
| **business** | **39.04%** | 21.67% | **+17.36pp** |
| **chemistry** | **14.58%** | 7.16% | **+7.42pp** |
| **computer science** | **47.80%** | 44.63% | **+3.17pp** |
| economics | 66.35% | 65.05% | +1.30pp |
| **engineering** | **25.39%** | 13.21% | **+12.18pp** |
| health | 59.54% | 63.08% | −3.55pp |
| history | 50.13% | 59.58% | −9.45pp |
| law | 33.51% | 35.88% | −2.36pp |
| **math** | **28.13%** | 15.47% | **+12.66pp** |
| other | 55.09% | 56.71% | −1.62pp |
| philosophy | 53.91% | 55.71% | −1.80pp |
| **physics** | **20.32%** | 14.55% | **+5.77pp** |
| psychology | 69.17% | 71.93% | −2.76pp |
STEM and business categories (math, engineering, business, chemistry, physics, computer science) show **significant improvements** with top_k=4, while humanities and life sciences show modest regression.
### Summary
- **Top_k=4 wins in all practical metrics:** higher or equal accuracy, faster inference, lower memory bandwidth usage
- The improvement is particularly pronounced on **math, engineering, and business** reasoning tasks
- The original top_k=6 configuration provides marginal benefits only in humanities/life sciences categories
- For production deployment, **top_k=4 is the recommended configuration**
> Full evaluation reports, scripts, and raw results are available in the [`eval/`](eval/) directory of this repository.
## Model Downloads
| Model | #Total Params | #Activated Params | Context Length | Precision | Download |
|:---:|:---:|:---:|:---:|:---:|:---:|
| DeepSeek-V4-Flash (original) | 284B | 13B (top_k=6) | 1M | FP4 + FP8 Mixed | [HuggingFace](https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash) |
| **DeepSeek-V4-Flash-4Expert (this)** | **284B** | **~11B (top_k=4)** | **1M** | **FP4 + FP8 Mixed** | **[HuggingFace](https://huggingface.co/cloudyu/DeepSeek-V4-Flash-4E)** |
## Chat Template
This release does not include a Jinja-format chat template. Instead, we provide a dedicated `encoding` folder with Python scripts and test cases demonstrating how to encode messages in OpenAI-compatible format into input strings for the model, and how to parse the model's text output. Please refer to the [`encoding`](encoding/README.md) folder for full documentation.
A brief example:
```python
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "user", "content": "hello"},
{"role": "assistant", "content": "Hello! I am DeepSeek.", "reasoning_content": "thinking..."},
{"role": "user", "content": "1+1=?"}
]
# messages -> string
prompt = encode_messages(messages, thinking_mode="thinking")
# string -> tokens
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("cloudyu/DeepSeek-V4-Flash-4E")
tokens = tokenizer.encode(prompt)
```
## How to Run Locally
Please refer to the [inference](inference/README.md) folder for detailed instructions on running DeepSeek-V4 locally, including model weight conversion and interactive chat demos.
For local deployment, we recommend setting the sampling parameters to `temperature = 1.0, top_p = 1.0`. For the Think Max reasoning mode, we recommend setting the context window to at least **384K** tokens.
## License
This repository and the model weights are licensed under the [MIT License](LICENSE).
## Contact
If you have any questions, please raise an issue or contact [cloudyu](https://huggingface.co/cloudyu) on HuggingFace.
---
---
# DeepSeek-V4-Flash-4E 中文说明
> 基于 DeepSeek-V4-Flash 的改进变体,将 **top k 从 6 改为 4**,实现最优推理效率。
**HuggingFace:** [cloudyu/DeepSeek-V4-Flash-4E](https://huggingface.co/cloudyu/DeepSeek-V4-Flash-4E)
## 概述
[DeepSeek-V4-Flash](https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash) 是一个 284B 参数的混合专家(MoE)语言模型,激活 13B 参数,支持**百万 token** 上下文长度。原始模型默认使用 `num_experts_per_tok=6`
**DeepSeek-V4-Flash-4E** 将每 token 激活专家数从 **6 减少为 4**,保持所有权重不变。这一改动带来:
- **推理计算量减少约 33%**(更少的激活专家)
- **生成吞吐量提升约 8–11%**
- **准确率保持不变甚至更高**
- 保持原有的 **FP4 + FP8 混合精度** 格式
## 与原始模型的关键区别
| 配置项 | 原始 (top_k=6) | 本模型 (top_k=4) |
|:---|:---:|:---:|
| `num_experts_per_tok` | 6 | **4** |
| 激活参数量 | ~13B | **~11B** |
| 总参数量 | 284B | 284B |
| 路由方式 | `noaux_tc` | `noaux_tc` |
| 其他权重 | 完全相同 | 完全相同 |
tid2eid(专家路由)权重张量已从 `[vocab_size, 6]` 重塑为 `[vocab_size, 4]`——仅保留前 4 列,与原始训练分布顺序一致。**未进行任何额外训练或微调**,纯属推理时配置调整。
## 独立评测结果
我们在 HumanEval(代码生成)和 MMLU-Pro(多领域知识问答)两个基准上进行了对比评测。
### HumanEval (Pass@1)
| 配置 | Pass@1 | 生成耗时 |
|:---|---:|---:|
| **Top_k=4(本模型)** | **95.73%** (157/164) | **56.83s** |
| Top_k=6(原始) | 95.73% (157/164) | 64.06s |
- 代码生成准确率完全相同
- **速度快 12.7%**
### MMLU-Pro (Accuracy)
| 配置 | 准确率 | 生成耗时 |
|:---|---:|---:|
| **Top_k=4(本模型)** | **41.46%** (4988/12032) | **78.24s** |
| Top_k=6(原始) | 37.77% (4545/12032) | 85.16s |
- **准确率高出 3.69 个百分点**
- **速度快 8.1%**
### MMLU-Pro 分类别对比
| 类别 | top_k=4 | top_k=6 | 差值 |
|:---|---:|---:|---:|
| biology | 68.62% | 72.66% | −4.04pp |
| **business** | **39.04%** | 21.67% | **+17.36pp** |
| **chemistry** | **14.58%** | 7.16% | **+7.42pp** |
| **computer science** | **47.80%** | 44.63% | **+3.17pp** |
| economics | 66.35% | 65.05% | +1.30pp |
| **engineering** | **25.39%** | 13.21% | **+12.18pp** |
| health | 59.54% | 63.08% | −3.55pp |
| history | 50.13% | 59.58% | −9.45pp |
| law | 33.51% | 35.88% | −2.36pp |
| **math** | **28.13%** | 15.47% | **+12.66pp** |
| other | 55.09% | 56.71% | −1.62pp |
| philosophy | 53.91% | 55.71% | −1.80pp |
| **physics** | **20.32%** | 14.55% | **+5.77pp** |
| psychology | 69.17% | 71.93% | −2.76pp |
STEM 和商科类别(math、engineering、business、chemistry、physics、computer science)在使用 top_k=4 时提升显著,而人文和生命科学类别略有下降。
### 总结
- **Top_k=4 在所有实用指标上胜出:** 更高或相等的准确率、更快推理速度、更低显存带宽消耗
- **在数学、工程和商业推理任务上优势尤为突出**
- 原始 top_k=6 仅在人文/生命科学类别上略有优势
- **对于生产部署,top_k=4 是推荐配置**
> 完整的评测报告、脚本和原始数据位于本仓库的 [`eval/`](eval/) 目录下。
## 模型下载
| 模型 | 总参数量 | 激活参数量 | 上下文长度 | 精度 | 下载 |
|:---:|:---:|:---:|:---:|:---:|:---:|
| DeepSeek-V4-Flash (原始) | 284B | 13B (top_k=6) | 1M | FP4 + FP8 混合 | [HuggingFace](https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash) |
| **DeepSeek-V4-Flash-4E (本模型)** | **284B** | **~11B (top_k=4)** | **1M** | **FP4 + FP8 混合** | **[HuggingFace](https://huggingface.co/cloudyu/DeepSeek-V4-Flash-4E)** |
## 聊天模板
本仓库不包含 Jinja 格式的聊天模板。我们提供了专用的 `encoding` 文件夹,内含 Python 脚本和测试用例,演示如何将 OpenAI 兼容格式的消息编码为模型输入,以及如何解析模型输出。请参考 [`encoding`](encoding/README.md) 文件夹获取完整文档。
简单示例:
```python
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!我是 DeepSeek。", "reasoning_content": "思考中..."},
{"role": "user", "content": "1+1=?"}
]
# messages -> 字符串
prompt = encode_messages(messages, thinking_mode="thinking")
# 字符串 -> tokens
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("cloudyu/DeepSeek-V4-Flash-4E")
tokens = tokenizer.encode(prompt)
```
## 本地运行
请参考 [inference](inference/README.md) 文件夹获取本地运行 DeepSeek-V4 的详细说明,包括模型权重转换和交互式聊天演示。
本地部署时建议设置采样参数为 `temperature = 1.0, top_p = 1.0`。对于 Think Max 推理模式,建议将上下文窗口设置为至少 **384K** tokens。
## 许可协议
本仓库和模型权重采用 [MIT 许可协议](LICENSE)。
## 联系方式
如有任何问题,请在 HuggingFace 上提 issue 或联系 [cloudyu](https://huggingface.co/cloudyu)。