这是有史以来最快、最糟糕的东西。天哪,大家好,欢迎来到本期节目。今天我们要看看 Spark 如何让 DeepSeek V4 Flash 的速度提升两倍以上。实际上,它确实能快上两倍多,但你知道的,也就持续半秒钟左右,然后速度就会降回去。不过我会展示所有细节,总体来说性能确实更快了。

你可以获得不错的质量效果,稍后你会看到。如果你查看我发布的 DSpark Flash 版本,这里有一个叫做“推测解码器”的部分。我们确实有从 V4 预览版中挖掘出来的现有 MTP 推测解码器,同时我们还有新的 DSpark 版本。目前它多了三层 MTP 结构,并使用了一项名为 DS Spark 的技术。

使用 DSpark 时,它不再只是预测未来几个 token,而是尝试一次性预测五个。这虽然不像 Dlash 那么疯狂,但也相当惊人。我们将运行测试来展示它的性能、如何从中获得最佳效果等等。我这里已经准备好了,要启用 Spark 或 MTP,你只需下载它即可。

进入模型页面后,输入 seek v4,你可以看到有 V4 Flash MTP 版本。那是基于预览版的模型,目前仍然可用。我们将展示 MTP 和 DSpark 之间的对比测试。你也可以下载 DSpark 版本。只要确保这些模型已下载,当你从下拉列表中选择 DeepSeek V4 Flash 时,进入推理控制和引擎设置。

那里有一个叫“推测解码器”的选项,你可以选择使用哪种 MTP 或解码器。也就是说,你可以选用 MTP 版本或 DSpark 版本。我运行了几种不同类型的测试来展示各自的优缺点,稍后我们还会进行一些实时测试让你感受一下。首先我们要演示的是 Hello World C++ 程序,这是一个通用的代码编写提示词。

默认情况下,使用 DeepSeek V4 我们每秒生成约 32 个 token。当我们启用 MTP 后,使用相同的提示词得到相同的答案。MTP 和 DSpark 的一个特点是其数学准确性是有保证的,因为 MTP 或 DSpark 预测出的每一个 token 都会经过主模型的验证。因此结果可能会有所不同,因为内部推理代码使用大量随机数进行数学运算。

由于我们执行了更多的数学操作,会生成不同的随机数,导致我们在决策树中的路径略有差异。所以结果会有细微差别,但它们在数学上都是正确的,即它们会选择符合模型准确度的最高概率 token 或温度采样下的 token。好的,我们切换到 MTP 版本,可以看到速度从每秒 32 个 token 跃升至每秒 36 个。

这意味着预览版提供的 MTP 层在新 V4 版本中依然有效,这很好。现在我们要切换测试对象,进入 DSpark 版本。DSpark 之所以表现优异,主要因为它能预测未来五个 token。它在处理语法类代码时效果特别好,也就是编程任务方面表现最佳。在这里我们得到了每秒 35.9 个 token,比 MTP 稍慢一点。

不过我做了一些小优化,现在正在实时运行展示给大家看。我们正在推理这个任务,注意观察速度如何飙升。你可以看到每秒 token 数急剧上升,达到 50、70,甚至一度冲到 80。最终我们得到了每秒 38.6 个 token。是的,我们正式比 MTP 快了额外两个 token。但这还不是最佳表现,因为这是文本和代码混合版本,无法获得最高的推理速率。

不过每秒 38.6 个 token 已经很不错了。我想再运行一次,因为想让你看看每秒 token 数的变化。你可以看到达到了 74,我还曾短暂见到过 80。我们的基准是每秒 32 个 token,所以速度提升了大约两倍半,这太疯狂了。接下来我们要做一个纯代码任务,生成 500 个 token 来制作 HTML 版俄罗斯方块。

对于这 500 个 token,基础生成速率约为每秒 31.1 个。启用 MTP 后,我们提升到了每秒 38 个 token。当处理语法密集型的 token 时,预测的置信度相当高。例如,它百分之百确定“background”后面是“linear”,或者“gradient”后面是“linear”,因为语法结构非常固定,不太可能出错。

因此它对预测下一个 token 非常有信心。正因为这种高置信度,它更有可能猜中接下来的正确 token。我们可以看到速度从每秒 31 个跃升至每秒 38 个。现在启用 DSpark,我们切换开启它后得到了每秒 42 个 token。可以看到速度甚至超过了 MTP(注:原文此处口误为 NTP,实指 MTP)。

同样地,我也在这里做了一些优化。让我快速为你运行一次展示效果:每秒 75 个 token、50 个、40 个,又回到 75 个,然后降到 20 个。速度波动非常剧烈,看着 token 凭空出现真的让人兴奋不已。最终我们得到了每秒 46.5 个 token,再次打破了之前每秒 42 的记录,因为我们加入了一些优化措施。

然而,它在创意写作方面会表现不佳。例如“告诉我关于巴黎的事”这个提示词。默认情况下,500 个 token 的生成速率约为每秒 30.5 个。启用 MTP 后,我们得到每秒 32.5 个 token。所以在创意写作方面它依然更快,这很好。因为它只额外预测未来两个 token,而不是试图预测五个。

当你尝试一次预测五个时,主模型需要推理这五个 token,一旦出错就得回退并重新处理。而启用 DSpark 后,我们实际上只得到了每秒 23 个 token。我想之前测试时可能后台在运行其他操作,当时是每秒 28 个 token。不过我优化了这个部分,让我们再运行一次看看。

我们可以看到速度并没有像之前那样飙升到 70,因为这是创意写作类任务。在这种情况下,你可能更倾向于使用 MTP 层。不过偶尔它也会冲到每秒 50 个 token,这还算不错。随着生成接近尾声,我们看到当前设置下的表现……

每秒28.99个令牌。所以即使启用了DSpark,它还是更慢一些。在30.5个令牌/秒时,处理这个提示词的速度较慢。所以如果你知道自己在做什么的话……但一般来说,在最坏的情况下你每秒只损失一个令牌的速度。所以也许启用它是一个不错的选择。

接下来我们要做的是,因为我们之前只是用500个令牌给了你一个概念,现在我们将尝试进行完整的生成。除此之外,我还准备了几个不同的场景。首先看基线情况:当我们制作一个俄罗斯方块HTML游戏时,它产生了大约4900个令牌。这就是它的样子——一个非常基础的俄罗斯方块游戏,看起来相当不错而且能正常运行。这很棒。感谢DeepSeek让它工作起来,但它是以每秒30个令牌的速度生成的。

启用MTP后(记得我们使用的是旧版V4配合MTP,它仍然有效),我们依然达到了每秒36.6个令牌。这很好。现在启用DSpark,看看那个速度——我们飙升到了每秒42个令牌。所以它甚至更快了。从30个令牌/秒的速度,我们提升了6个点;再提升另外6个点就达到了DSpark的水平。让我们看看DSpark的质量:我们可以看到这里的生成结果几乎完全相同,基本上是一样的输出。

现在我要再运行一次,因为我做了一项优化。我接下来会告诉你这个优化的具体工作原理。我们将点击播放看看效果如何。我们可以看到速度飙升到了每秒75个令牌,因为它正在处理纯语法内容。所以它的速度基本上在每秒50到75个令牌之间波动,正在飞速输出代码。

在进行Spark预测时有一个叫做“置信度”的概念。基本上当你生成5个令牌时,你知道那些被预测令牌的置信水平。这个优化纯粹是查看这些置信度并设定一个阈值,决定你要接受哪些预测结果。因为如果你设置很低的阈值(比如0),它会尝试将所有5个预测令牌都通过主模型验证,这意味着更容易出错。而错误越多……发生的错误越多意味着需要回滚缓存(cash),必须重新处理所有内容。相反,如果你设置更高的置信度水平,你会犯更少的错误。虽然你可能会错过一些本可以正确的特定令牌,但潜在地可以获得更快的速度。

我们可以看到现在达到了每秒45.8个令牌。这是一次长达5000令牌的生成,不是那种很小的窗口,而是非常、非常长的一次。接下来我又做了一个编程任务:愤怒的小鸟(Angry Birds)。默认情况下是每秒31个令牌,产生了5000个令牌。我们可以看到正在制作一个漂亮的愤怒的小鸟游戏——看那个效果,它能正常工作!

启用MTP后,速度飙升到每秒35个令牌。所以我们从31提升到了35个令牌/秒,这是一个改进。我们可以看到愤怒的小鸟游戏仍然可以正常生成和运行。现在启用DSpark后,我们一路飙升到了每秒39个令牌。所以再次变得更快了。而使用置信度技巧后,我们现在达到了每秒43个令牌的速度。

这就是我要发布的版本——带有置信度设置的那个,它能获得最大速度。你可以看到代码质量基本上与之前相同,因为数学上保证所有结果都会由主模型验证。现在唯一需要注意的是DSpark不是3层结构,它比MTP更重。所以MTP版本只有一额外层,只需要几个GB的空间。而这个因为有3个额外层需要额外的10GB存储空间。当放入内存时,我们从147吉字节(jibs)一路增加到这里的160吉字节。所以多用了10GB内存。

这不是免费的,但潜在地当你进行数学运算或编程时,就是在那里你会获得50%的性能提升。你可以看到在某些时刻我们飙升到了每秒80个令牌——那是当你连续预测两次5个令牌的时候,就是在那里你会获得不错的性能表现。

你们觉得DSpark怎么样?我做这个视频是因为我在寻找关于DSpark性能的更多信息。当我在YouTube上看的时候,每个人都说“这是有史以来最快的东西”、“效果最差”之类的。然后当我查看评论时,我发现有人说他们并没有取得太多成功。所以我想给大家一个真实世界的测试案例,展示它实际是如何工作的。希望你们觉得这个视频有用并享受本期节目!