昨天是DeepSeek-R1发布一周年(居然都一年了...),当天有人在GitHub上发现了一个秘密。
一个叫Model1的神秘代号,在DeepSeek的代码仓库里出现了17次。
更有意思的是,它和现在的V3.2是并列的——代码里专门为这两个模型写了不同的处理逻辑。
Model1会不会就是传说中的V4?
我花了点时间调查这件事。结论是:很可能是。但要理解为什么,得先搞清楚这个代码仓库是干什么的。
这个代码仓库是干什么的?
这次发现Model1的地方叫FlashMLA。要理解为什么这个发现靠谱,得先知道它是干什么的。
大模型怎么读文字?
大模型读文字的时候,需要不断判断"哪些词和哪些词有关系"。
比如这句话:
"小明去了北京,他觉得天安门很壮观。"
模型读到"他"的时候,得知道"他"指的是前面的"小明",而不是别人。
这个"回头看、找关系"的过程,术语叫注意力(Attention)——模型在"注意"哪些词和当前词相关。
FlashMLA是什么?
DeepSeek发明了一种特别省内存的注意力算法,叫MLA。FlashMLA就是这个算法的加速版——让它跑得更快。
关键是:这不是实验代码,是正在线上跑的生产代码。
你现在打开DeepSeek网页版问问题,背后就是这套代码在干活。2025年2月DeepSeek搞"开源周"的时候,FlashMLA是第一天发布的,官方说得很清楚:这是"经过生产环境实战检验的基础模块"。
为什么新模型会在这里"露馅"?
因为不同模型的"注意力"算法可能不一样。
如果Model1用了新的算法,FlashMLA就得更新代码来支持它。程序员在写"怎么给Model1算注意力"的时候,就把Model1的存在暴露了。
而且代码里Model1和V3.2是并列的——说明两个模型的算法有区别,需要分开处理。
如果Model1只是V3.2的小更新,根本不需要在底层代码里单独写一套逻辑。
既然写了,说明改动不小。
代码透露了什么信息?
我仔细看了FlashMLA仓库里Model1相关的代码。发现了几个很有意思的细节。
1. Model1是正式的模型类型,不是临时命名
代码里有一个枚举定义:
enum class ModelType {
V32,
MODEL1
};
V32就是现在的V3.2。Model1和它并列,说明这不是什么实验性的临时代号,而是一个正式的模型类型。
2. Model1用了"稀疏注意力"——只看最重要的词
代码里有一段注释:
// The following fields are only valid for MODEL1
int topk_length, extra_topk_length, num_orig_kv_blocks;
topk_length是什么意思?就是只关注最重要的前k个词。
普通的注意力机制会把所有词都算一遍。但Model1不一样,它会先快速扫一遍,挑出最相关的词,然后只对这些词做精确计算。
这就像你读一本书找答案:普通方法是逐字逐句读完;稀疏注意力是先扫目录和标题,定位到相关章节,再仔细读。
效率高很多,尤其是处理长文章的时候。
3. 存储格式完全不同
代码里定义了两种不同的存储格式:
class FP8KVCacheLayout(enum.Enum):
V32_FP8Sparse = 1
MODEL1_FP8Sparse = 2
而且量化参数也不一样:V32用128,Model1用64。这说明底层存储架构变了。
我之前写过DeepSeek的Engram论文,讲的是他们要给模型"发一本字典"——把固定知识存起来直接查,不用每次都重新计算。
存储格式的变化,很可能就是为了支持这种"字典"功能。
4. Model1有4种配置
测试代码里出现了:
# MODEL1 CONFIG1
# MODEL1 CONFIG2
# MODEL1 CONFIG3
# MODEL1 CONFIG4
4种配置,可能对应不同的部署规格——类似V3有Base版和Chat版,Model1可能也有多个版本。
时间线:三篇论文铺路
把代码发现和DeepSeek最近发的论文放一起看,时间线就很清晰了:
| |
|---|
| |
| |
| 发论文:提出"字典"方案,让模型不用重复计算固定知识 |
| |
| |
我之前写那两篇论文解读的时候就有个感觉:这些论文不是孤立的研究,而是在为新模型铺路。
第一篇解决"怎么稳定地训更大的模型"。第二篇解决"怎么让模型不浪费算力"。现在代码更新了,把这些方案落地。
下一步,就是发布新模型了。
也要保持怀疑
说了这么多"可能是V4"的理由,也得泼点冷水。
消息来源有点奇怪
V4的发布传闻主要来自美国媒体The Information。有人质疑:DeepSeek是中国公司,国内一点风声没有,怎么会先泄露给美国媒体?
这个质疑有道理。不过The Information在AI领域的爆料准确率挺高的,之前OpenAI的几次发布他们都提前报过。
Model1可能只是临时代号
"Model1"这名字太普通了。可能只是开发阶段的临时命名,发布时会改成V4或别的名字。也可能根本不是V4,而是某个专门用途的小模型。
发布时间可能变
去年R1确实是春节前发布的,但不代表今年也会。DeepSeek向来低调,不会为了制造话题赶时间节点。
我的判断:Model1大概率是V4的开发代号。但具体什么时候发、发布时叫什么名字,还得等官宣。
最后
这篇文章做的事情是"代码考古"——从程序员写的代码里推测公司的下一步动作。
代码有个好处:它不会说谎。
不像发布会上的营销话术,也不像媒体报道可能有信息差。代码是工程师写的,写什么、改什么,都有具体的技术原因。
Model1出现在生产级代码里,说明三件事:
至于它到底是什么、性能多强——这些问题的答案,可能很快就会揭晓。
毕竟,春节快到了。