大家好,欢迎来到本期节目。今天我们要探索的是从存储设备流式加载模型参数时会发生什么。在上一期视频中,我们成功将 DeepSeek V41 的全部参数从存储中流式加载。该模型原本需要超过 500GB 的内存,但通过这种方式我们将其降低至仅使用 280GB。运行过程非常完美且速度未受影响,生成的内容质量极高。今天我们将对 Qwen 3.8 Flash(基于 Qwen 4 EXP 架构)执行相同的操作。
如果你关注行业动态,会发现 Kimi K3.1 和 Qwen 4 即将发布。我们正试图在本地复现类似的高质量生成效果。通过从存储流式加载参数,我们可以运行更高精度的量化版本,从而获得更出色的结果。我们将对比 Q4、Q6 和 Q9 量化版本,并结合 MTP(多 Token 预测)技术进行流式加载测试。接下来将展示性能、内存占用等关键指标,让大家了解预期表现。
我其实关注这个方案很久了,因为我有一台 MacBook Pro 作为备用设备,常在大机器忙碌时用它进行推理。之前我在上面运行 Q4 量化版本,效果时有时无:有时错误百出,有时表现良好。因此我一直想尝试更高精度的版本以稳定质量。这次测试让我非常兴奋,因为它确实有效。首先展示 Q4 版本的基准速度测试:每秒生成约 51 个 Token,内存占用为 98.9GB(未启用 MTP)。
当启用 MTP 后,速度提升至每秒 73.6 个 Token,内存占用微增至 99.8GB。接下来看 Q6 版本:我们改用 9-bit 参数流式加载,并保留部分 BF16 层以极致提升质量。虽然量化精度提高导致速度降至每秒 32.5 个 Token,但内存占用反而降低至 97.1GB。这是因为 Q6S 版本将参数表从存储流式加载,且兼容 MTP:启用后速度回升至每秒 47.5 个 Token。
这一速度与 Q4 版本相近,略慢于纯 MTP 加速的 Q4,但质量显著提升且内存占用更低。此外,我在工作站上也进行了测试:标准 Q4 版本需加载全部参数至内存,占用高达 195GB;而流式 Q6S 版本大幅降低了需求。我已将相关模型上传至 Hugging Face,包括 Q9S、Q6S 和 Q4S 流式版本。以 Q9S 为例,内存从超过 190GB 降至 142GB——虽仍超出 128GB 系统容量,但压缩效果明显。
让我们开始实际生成测试。首先展示一次火山喷发场景:我在低思考模式下运行 Q9 版本,观察气压计变化。生成结果显示火山成功喷发,熔岩流下摧毁城镇建筑,建筑物在冲击中摇晃。对于低思考模式而言,这一表现相当出色!接下来切换到 Q6 版本(内存占用约 100GB),点击“喷发”按钮后,爆炸效果与 Q9 相似。
熔岩呈现为类似激光束的射线从火山口射出,建筑物明显晃动倾倒,视觉效果依然很棒。再看 Q4 版本:生成约 9000 Token,无运行时错误,但内存占用升至 101.2GB(因未流式加载),速度为每秒 51 Token,略低于 Q6S 的 67 Token。点击喷发后初始无反应,需切换摄像头视角才能看到激光效果——Q4 版本存在些许小 Bug。
最后测试 Q4S(流式版):内存从 100GB 降至 70GB,且采用 Q9 参数表实现更高精度。虽然缺少火山测试文件,但我准备了摩托车竞速和 3D 直升机场景。Q4 标准版生成赛车游戏时占用超 100GB,速度每秒 75 Token;赛道部分缺失且角色头部异常。而 Q4S 流式版速度降至每秒 63 Token(因使用 9-bit 参数),但内存效率更高,整体体验更稳定。
我们目前使用的是最高质量模式,虽然有几层未进行量化处理,但内存预算设定为70吉字节。这意味着我们节省了30吉字节的内存空间。现在,我们已经生成了赛车游戏场景并点击了开始按钮。可以看到赛道上确实有车辆存在,但整体表现略显平淡无奇。所有角色都只是在进行悠闲的巡航驾驶,缺乏紧张感。我不确定是否有加速按钮之类的功能,但将嵌入层设置为9比特后,画面质量相比之前的4比特版本有了显著提升。
接下来我们要尝试6比特的量化方案,以观察其具体表现能有多好。目前生成的令牌数量仍维持在8000左右,所有测试案例都稳定在这个区间。然而,由于6比特需要更多的内存交换操作,推理速度已降至每秒51个令牌。点击播放后,我们得到了一个三维赛车场景。玩家位于高速公路上,需要躲避道路上的障碍物和车辆。这个生成效果相当不错。幸运的是我发生了碰撞并触发了燃烧特效,这表明模型生成了完全不同的物理反馈逻辑。
如果你好奇这些技术是如何运作的,这里展示了其工作原理。每个生成的令牌都有一个备选方案可供选择。例如,模型对选择“complete”这个单词有着极高的置信度。即使经过量化处理,结果可能也会有所不同。但如果你查看这个特定的案例就会发现,原本应该是“racing”的地方,模型有很高的概率会错误地输出为“playable”。量化程度越高,这些令牌被混淆的可能性就越大,模型可能会挑选错误的词汇。
当然,如果你启用了温度参数,它会随机选择令牌,因此最终效果可能大同小异。但如果你想获得最具确定性的输出,即真正反映模型思考结果而非随机数生成的内容,那么你就需要使用最高质量的量化方案。这样能确保回答问题的准确性。我们刚才展示了6比特版本的生成效果,现在让我们看看提升到9比特会发生什么变化。在X Studio中,它生成了大约9500个令牌,比之前多了1500个。
尽管仍处于低思考模式,但9比特版本的生成效果与6比特非常相似。也许这个版本看起来稍微有些“烘焙”过头的感觉,因为我看到车辆穿过了碰撞区域并伴随了一声闷响。这增加了场景的真实感。遗憾的是,我目前无法在MacBook Pro上运行9比特版本。也许当我们开始流式传输专家模块时,情况会有所改善。虽然我之前尝试过专家流式处理,发现它们通常会被全部使用,但也许我们能从中找到优化空间。让我们看看最终结果如何。
9比特版本无疑是表现最好的,但我们要继续挑战更高的标准。接下来我们将以三维直升机作为收尾测试项目。在低思考模式下,它生成了15000个令牌并呈现了直升机模型。这里存在一个小错误,直升机的尾部连接似乎缺失了,就像有人忘记插线一样。不过你可以使用爆炸视图功能查看内部结构,螺旋桨的旋转方向也是正确的。我们可以组装模型、播放装配动画、显示X光幽灵线框,甚至执行起飞和降落动作。
这确实是一个出色的生成结果。作为参考基准,我们需要与Kimi K3.1以及即将发布的Qwen 4进行竞争。如果Qwen 4保留其ESP架构,我们应该能期待它同样支持流式处理特性。这将是非常棒的发展前景,整体质量正在稳步提升。现在让我们切换到直升机的6比特版本进行对比测试。令牌数量增加到了17000个,我们依然得到了直升机模型,螺旋桨旋转方向正确。我们可以执行起飞动作,效果良好;也可以完美降落并再次展开爆炸视图进行组装。
虽然无法直接点击部件,但我们有粒子效果和重置相机功能。这仍然是一个不错的直升机生成案例。接下来是4比特版本的三维直升机测试,目前也在同步运行中。我尝试让它起飞并观察其表现。它成功升空、悬停并最终着陆,还具备各种酷炫的飞行功能。整体外观依然保持正常水准,这是一个相当不错的生成结果。最后我们测试了4比特S版本,在70吉字节内存限制下生成了16000个令牌。我们得到了一个非常相似的直升机模型,同样支持起飞、悬停、飞行和降落功能以及爆炸视图。
这一结果非常美丽,表明所有版本都能通过该生成测试。现在我们要进入超高思考模式进行测试。如果你使用过超高思考功能,就知道它会生成大量令牌。更多的令牌意味着更多的问题风险,因为量化误差在此时会显著放大影响。因此我们回到火山场景进行超高思考测试。模型生成了22000个令牌,但这并非全部故事,因为过程中经历了多轮修正。期间出现了一些错误,我不断指示其尽可能多地输出代码以测试内存极限。
最终我们消耗了76000个令牌,这还不是最高纪录,但我很快会有超过20万令牌的案例。目前我们得到了一个火山场景,第一眼看起来非常壮观美丽。必须承认这确实很出色,虽然耗时较长但最终成功了。不过熔岩似乎被限制在管道中流动,这里有些异常。让我们尝试触发火山爆发。遗憾的是,我无法看到实际的爆炸效果发生,但有一个流动摄像机视角显示城镇即将被摧毁。你可以切换到风力视图从各个角度观察情况,但在4比特版本中缺少了触发爆炸的功能。
这感觉更像是一种过山车般的体验而非真正的灾难模拟。让我们看看接下来会发生什么。这次测试生成了20000个令牌,当上下文窗口扩大时速度降至每秒19个令牌。我不确定这是推理速度的自然下降,还是因为启用了MTP导致令牌丢失所致,但这就是当前的性能表现。或者这可能仅仅是我的MacBook Pro硬件限制造成的瓶颈。如果你曾尝试用笔记本电脑运行AI任务,就会发现你真的应该使用桌面级设备。例如在我的Mac Studio上,我可以尽情施加负载而系统依然保持舒适平稳的运行状态。
我还没有尝试过M5 Ultra芯片,让我们看看它能带来什么变化。听说它的功耗更高,这将是一个有趣的观察点。
看看它能持续多久。应该没问题,因为它是一个内置单元。但用我的 MacBook Pro 时,我发现推理过程中风扇总是狂转。所以我通常会降低处理强度,把它调到90或75。实际上我发现,有时降低处理强度反而让系统运行得更稳定,因为不会压垮系统。长期来看它跑得更快,不过这也取决于你在做什么。拥有那种极快的能量爆发固然好,但如果你要进行一些超长的标准推理,也许最好降低处理强度以获得更稳定的系统运行。
目前 Q4 和 Q6 版本大约每秒20个令牌。我们进去看看能得到什么结果。这里有3万个令牌,但这并不能说明全部情况,因为完整的故事是9.7万令牌的上下文窗口。同样地,它产生的错误数量与 Q4 相同,只是每次提示生成的令牌更多了。这个版本其实很有趣,我们可以看到最后这次生成达到了每秒35个令牌的速度。
我想我现在可能在澳大利亚,夏天快到了。我确实开着空调,但有时光靠空调还不够。也许是因为在那种情况下它无法冷却而进行了降频。所以如果你在做一些冗长的工作,检查一下处理强度吧。我们可以看到,即使上下文窗口更大,速度也更快了,达到每秒35个令牌。
不过我们也在关注质量方面以及内存使用情况。在内存方面,看这里,使用了103.6吉字节内存。我们仍然在我的128GB系统上运行,并没有耗尽内存。这太棒了,我很喜欢这一点,令人兴奋。而那个版本是103.3吉字节,上下文窗口较小一些。所以 Q6 版本、9位记忆体以及一些 BF16 层,表现非常出色。
好了,让我们看看会发生什么。现在我们得到了一个开场场景。看那个!之前的 Q4 版本直接跳进了火山口。这里的火山看起来非常棒。这次有一些气泡冒出来,但同样没有发生喷发。这里我们得到了一个开场场景。手臂模拟器,所以画面有点暗,但让我们看看当我触发爆炸时会发生什么。
轰!那是个不错的粒子效果。我们可以看到城镇正在下雨,并且有某种熔岩流下来。我们可以查看不同的摄像机视角。点击这里的火山口。是的,那看起来非常棒。让我们再做一些爆炸吧。看那个!太棒了哦,这很不错。城镇已经被摧毁了,我动作太慢了。
你有流动摄像机视角,可以看到熔岩在这里倾泻而下。还有一些有趣的地方,你会得到这些额外设置。所以我要进入火山口,将喷发强度设置为尽可能低,然后触发一些小型喷发。这里是一次美丽的生成过程。让我们看看我能否稍微缩小一点,做一些漂亮的爆炸。
让我们把它调到最大吧。开始!是的,我们着火了。我确实喜欢这个地震活动窗口。所以这是一次非常棒的生成过程,而且它正在正常工作。与我们在 Q4 版本中看到的相比,这更加完整成熟,并且使用了更少的内存,推理速度甚至更快。我不知道它是如何做到的。
记住这是从存储中流式传输记忆体。幸运的是,记忆体表非常小。不需要经过层层层的 GPU 周期处理。所以你不必担心那个内存流式传输的问题。我们可以直接从 SSD 进行流式传输。有趣的是,我正在使用 M5 Max,它的 SSD 速度是我 M3 Ultra 的两倍快,但我实际上并没有注意到它在我的 M3 Ultra 上运行得更慢。
所以 SSD 速度已经足够快了,足以获得良好的性能。也许实际上是因为我的 M3 Ultra 拥有那么多内存,操作系统可能将其缓存在内存中。这就是为什么它实际上并没有从磁盘进行流式传输的原因。但这一台,我的128GB系统没有那种奢侈条件。它没有足够的内存来缓存它。所以肯定是在从存储进行一些流式传输。
我们将跳进去看看 M5 以及 M3 对 Q9 版本的处理情况。我们要一直进行到火山喷发的额外高度思考阶段。我们获得了2.7万个令牌,而这里的上下文窗口是15万令牌。所以 Q9 实际上制造了更多错误吗?还是我只是与它进行了更多的聊天?我想这里有两个周期的错误,而我只是告诉它输出文件两次。
所以最后一次是2.7万个令牌,每秒22个令牌。那是我们在达到15万令牌时的情况。所以你可以看到这一的质量。我们得到了一个开场场景,它叫做卡尔德拉山。触发喷发。所以这看起来非常华丽。哇,那熔岩看起来很漂亮。也许房子……哦,怎么回事?来吧,开始吧!代理是什么作用?
噢,看那个。哇,那是给纵火狂准备的。那是一次非常棒的喷发。看那个!太美了。我们得到了火山口的不同视角。这里绝对是 Q9 的质量水平。城镇即将被摧毁,熔岩流动变得很好了。我高亮了屏幕,所以我无法退出卡住了,但你看到了这里精彩的生成过程。
有一点需要注意:Qwen for EXP 模型或该模型在挑选令牌时非常聪明,它总是试图将上下文窗口中的不同令牌分箱到不同的桶中。并且根据它对桶的排名,它只给实际引擎本身最少数量的桶来进行推理。现在有一个叫做上下文注意力的功能,其想法是与其像混合专家那样做,不如更密集地使用它。
也就是说,当你推理每个令牌时,考虑整个上下文窗口。这是一个关键因素,因为看这个版本:这里禁用上下文注意力的标准版本,也就是每个人运行的那个版本。它需要15万令牌才能配合 Q9 正常工作。然而,当我启用上下文注意力并在那里运行时,我只用这一次生成就完成了。它生成了1次,并且只用了5.5万个令牌,上下文窗口也是5.5万令牌。
所以当我启用上下文注意力时,实际上没有运行时错误发生。也许是因为它是 EXP 版本,可能在正式版本中会修复那些问题,因为不需要为每个令牌生成提供整个上下文窗口这一改进是很好的。但如果你想要最大质量和最少的幻觉,你肯定需要研究一下禁用它自带的稀疏注意力机制。
现在,它的运行速度会变慢等等,但这是必然的。所以就是这样了。完全相同的火山场景,但这只是一个提示词和一个结果。5.5万个token,我们这里出现了一次喷发。它会爆炸吗?哦,轰的一声。我们看到了一些某种形式的爆炸。说实话它已经失控了。我想我按那个按钮太多次了。火山口,一切都变白了。我觉得整个城镇都被彻底摧毁了。城镇视图被毁了。箭头视角也被毁了。这……呃,某种狂热降临到了这里。让我们再制造一些爆炸吧。也许是100次?那只是需要知道的一点事情,但我们需要意识到这一点。
但现在我们想看看能否重现这架直升机,我在这整个生成过程中一直盯着它看。Kimi 3.1和Qwen for Calmia。Calmia?它能完成任务吗?所以,我们这里有直升机版本,12.7万个token的上下文窗口。我禁用了上下文注意力机制,因为我想纯粹按照其他人的方式运行它。第一次运行时,它只是……这只是两个提示词。我第一次运行它时,说直升机是不可见的。所以我说“直升机不可见”,然后它就修复了。5.5万个token之后,这就是它被修复后的样子。
我们确实有一架外观很棒的直升机在这里。这看起来很未来主义。你可以点击它的不同部分,并且你会得到关于你正在点击什么的线索。所以我要回去说“启动,起飞”。我们要飞上天空。现在它正在上升了。这还不错。我确实喜欢那样。嗯,降落。所以它将着陆。我们还可以进入不同的区域哦,我们有声音了。那相当酷。而且你实际上可以控制它。所以显然有油门控制。所以我可能按了起飞,然后我可以控制它让它向左和向右移动。也许这不是最好的,也许它仍在开发中哦,看我在让它上下移动那相当酷所以我可以看看我能否把它撞毁
但让我们现在降落它。然后我们来看看我能不能让它爆炸,因为那是我最喜欢的按钮。所以我不知道在哪里哦,在那里就在顶部那里看到“分解视图”。哦,我不知道爆炸在那边。也许那只是一个bug或者我不知道是什么你有一个X光视图还有一个装配视图所以让我们把它变成装配视图分解。所以这里正在发生一些事情嗯,是的,就是这样了你也得到了一个爆炸视图你甚至还有一个小飞行员看看那个一个小乐高人在这里处于某种境地看看所有这些标签所以你可能使用这种推理东西来了解世界
那太棒了这里的生成效果很棒。它和接下来这些家伙一样好吗?这些人。也许这与提示词有关有一个白色背景那可能是一个因素这看起来与那个大的长菜单系统非常相似爆炸似乎也很相似所以如果它不是的话,可能可以通过提示词调整到那样。我只是使用了基本的提示词3D爆炸直升机基本提示类型的人所以让我们看看当我们做Q6时会发生什么或者我们会得到多少质量损失
现在在Q6我们得到了21.1万个token因为让我们看看有多少错误所以一二呃两个错误。所以在连续两次中有两个错误,我告诉它输出文件,这就是我们最终得到的结果。我们有这架直升机在这里现在脚有点摇晃所以我不知道它在那里做什么但让我们看看我们能否让它并且这里有一个小动画所以我不确定你是否可以像你可以点击它一样选择你想去的模式
我想在这里点击“拆卸”,因为那是让我兴奋的地方。所以你可以看到它确实爆炸了,并且有不同的部分。你可以点击这些部分,你确实会得到一个小标签在这里不知道Q6的爆炸是否比Q9好让我们看看。重新组装。让我们看看我们会得到什么这太棒了学习如何建造引擎也许在未来我意思我曾经有一艘船,然后我想,我不知道如何维护它。一旦我开始到处拆卸东西所以我觉得这对我来说可能有点太多了
但是的,你可以用这种类型的指南你很可能可以基于真实手册制作一个参考指南这将可能让我在视觉上理解如何做事情那太棒了你可以做到这一点。所以Q6仍然是一个好的生成这里Q4我们现在得到了17.7万的上下文窗口类似让我们看看错误数量。所以在Q6中有两个错误所以一二也是两个错误那很好
所以我们来看看Q4的结果现在不幸的是我无法让它不透明。可能有一个选项来启用它这绝对看起来像一个不错的UI尽管如此分解装配那也很好看我们能起飞吗我们可以起飞虽然我不知道发生了什么当它们开始把特斯拉自动驾驶的东西放进直升机时我有点困惑该旋转什么它正在着陆哦看看那个
你知道什么吗?这可能比SpaceX的筷子着陆更好。那家伙在那里做了一些空翻那是一个好的工作这里但Q4设法做到了我们得到了一个很好的生成。所以只是为了好玩,我们将做最后一个这里是古墓丽影。这也是额外的深度思考我们要尝试从图像中制作它所以劳拉克劳馥在那里两把枪让这个游戏现代化图形3JS
不幸的是我们陷入了一个循环。所以它开始循环了所以我所有的生成都以温度零运行因为我想要模型选择token我不想要随机数生成器。这是这个频道上的一个热门话题有几个人他们总是说“不,你必须做温度一是一还是温度0.25或者温度3.1那是该用的非常热门的话题如果你在评论中经常看到很多人喜欢那样做我喜欢使用温度因为你在每个token上总是选择顶级token例如而不是说“this”它可以说“it”、“we”和所有这类东西所以温度会改变那会调节它
现在当你制作可搜索单词时这并不那么重要那是一个听起来像一的词但当你编写代码语法很重要你不想要重复变量名不想要进入编译错误得到正确的token而不是创造性的token非常重要。但如果你在进行创意写作那么肯定要提高温度因为我在做代码所以我喜欢使用温度零
总之,我们陷入了一个循环。
其他几代模型都没有出现循环,只有这一种情况。也许是因为我们结合了图像功能,或者是在同时处理图像和多令牌预测等所有环节时产生的问题。最终我们确实遇到了一个循环。而在 Q6 版本中,我们没有遇到这种情况。它生成了 12,000 个令牌,内存占用为 103 GB。相比之下,之前那个版本生成了 28,000 个令牌并陷入循环,内存占用也是 102 GB。这里的生成速度是每秒 31 个令牌,让我们来看看它的实际表现如何。
我们确实获得了一个《古墓丽影》角色。她可以四处走动,也可以奔跑。幸运的是,她无法射击。关卡名称是“Baron”。虽然它在创建关卡方面缺乏创意,但据说完整版 Qwen 4 即将发布。也许那会是一个不错的版本。不过我必须说,她的外观和动作都很不错,毕竟我见过更糟糕的情况。所以这已经很棒了。也许两年后技术更加成熟时,我们才能讨论其他更复杂的内容,但就目前而言我认为这已经很好了。我们还有一个生命值条,这点不错。
接下来让我们看看 Q9 的最佳表现会如何。它会做什么呢?我们输入“劳拉·克劳馥”。这里仍然有 10,000 个令牌,这非常惊人。没有运行时错误,这点很好。我们点击播放后可以看到,她现在显得很有 Q9 的那种自信劲儿。她知道自己在选择正确的令牌,看看她做了多少深蹲动作,她的腿部线条变得粗壮有力。这很好。不过有一点可能不符合该模型的安全规范,你需要认真考虑这一点:她把枪口对准了自己的颈部区域。
因此当你实际射击时,你是在自杀。也许应该瞄准脚部?这可能只是他们在开的一个玩笑吧。但确实,这是需要意识到的问题。有时候最高质量并不等于安全。所以请务必留意这一点,特别是在看到诸如“PHP 的 bug 修复”这类消息时,我们可能都完蛋了。那么你们觉得如何?Q4 流式传输、Q6S 流式传输以及 Q9 流式传输,我们将它们进行了对比。运行所有这些模型时,我们节省了 30 GB 的内存。
现在我们已经有了一个可以在 120 GB 系统上运行的 Q6 版本。我确实还需要在这个基础上尝试 INF 技术。也许凭借我所拥有的 Q6 内存带宽,我能获得质量更好的版本。但事实是它开箱即用就能正常工作,这太棒了。请告诉我你们的看法。你的系统配置有多大?你们都在做什么?我运行的其中一个系统是 Mac 电脑,所以它采用的是统一内存架构。这意味着我无法像某些其他情况那样进行优化,例如将数据从主存流式传输到显存。
这里只是直接从存储设备进行流式读取。所以请深入研究一下,尝试让它变得更好。如果你还没有看过 Deep Seek V41 的流式传输视频,一定要去看看。我在那上面使用了完全相同的技术,并且同样成功了。希望你们觉得这个视频有用并享受了节目内容。