返回

文章详情

我重启了一台10年的Xeon 174次,以删除12个标志并获得4 tps

Hacker News2026年6月19日 15:19

发表于2026年6月15日,阅读时间22分钟 这是关于在2016年Xeon上运行Gemma 4的后续文章。我逐个拆分那个25个标志的配置,找出哪些实际有效,哪些有害,以及哪些只是陷阱。我的调优配置大多数情况下对典型用户没有任何帮助。几周前,我在一台没有GPU的2016年Xeon服务器上成功运行了Gemma 4——这是一个260亿参数的模型,拥有128GB DDR3内存。那篇文章在Hacker News的首页停留了大约八个小时,这意味着许多人现在在某个终端中有一个25个标志的命令,复制自某个博客,却对这些标志中哪些实际有效一无所知。我有一些坏消息要告诉你:你很可能持有的命令是错误的。我在那篇文章中提到,半数的标志仅仅存在并不会有效。有些需要正确的硬件,有些需要合适的主机设置,有些只对特定的工作负载有帮助。引擎接受所有标志,却几乎不告诉你哪些实际上被触发。因此,这篇文章是我回去找出对你有效的内容。找到这些的方式就是消融实验。你拿到有效配置,关闭一个标志,测量变化,返回设置,再对每个标志依次进行同样的操作。这个词源于神经科学,通过机器学习借用过来,通常指的是拆除模型本身的一部分,比如注意力头或者一层,以查看它的作用。在这里,我有点不恰当地使用这个词,因为我谈论的是推理标志而不是模型内部,但这个想法是相通的:关闭一个东西,测量,重复,差异告诉你每一部分的价值。这是一项大工程。非常大的工程。一百七十四次运行,每次都是全新的服务器在可以回答单个令牌之前从旋转磁盘上加载25GB的权重。每次启动三个提示,每个都进行多次重复,还有一整夜的运行因为死锁被我扔进了垃圾桶。我告诉你这个次数是因为这就是重点。没人知道这些标志中哪些重要的原因是,找出答案的过程缓慢而乏味,所以几乎没有人去做。我做了,所以这是答案。设置配置与Xeon文章中的相同。一个Xeon E5-2620 v4,八个物理核心,十六个线程,128GB的DDR3,没有GPU,没有交换空间。引擎是ik_llama.cpp,位于feat/gemma-4-mtp分支。验证器是gemma-4-26B-A4B-it,配对它的MTP草拟器为Q8_0。我将使用三个测试提示:一个短聊天轮次,一个大约5000个令牌的文档,用于总结代码生成请求。贪婪解码,固定种子,256个新令牌,三次重复,报道中位数。在数字之前需要清楚两件事。我在llama-server下运行基准,而不是最初命令中的llama-cli。服务器是请求级别的推测解码遥测所在的地方,这是检查草拟器在特定请求上是否真正触发的唯一干净方法,也是上游拉取请求驱动自身基准的方式。配置没有任何变化,只有其周围的结构。而且下面的每个数字都是完整配置变化一个标志得到的结果,因此每个差值是该标志的贡献,考虑到其他所有标志保持开启,而不是在真空中的影响。标志之间会相互影响。推测会改变线程计数的重要性。重新打包会改变闪存注意力需要读取的内容。差值不会叠加到这个配置与一个简单配置之间的差距,我不会假装他们会。整体概况这里是所有能推动结果的因素,集中在一个地方,在我逐一讲解之前。解码速度,每秒令牌数,重复的中位数,每一行是完整配置,只有一件事被改变。百分比是与发布的配置相比的,所以移除一个有益标志会显示为损失。 | 变更项 | 聊天 | 长文档 | 代码 | 发布配置 (自动调整草拟器) | |---------|------|-------|------|-----------------------| | drafter, fixed draft 1 | 15.6 (+27%) | 9.8 (+44%) | 15.9 (+2%) | | drafter, fixed draft 2 | 16.1 (+31%) | 7.4 (+8%) | 17.8 (+14%) | | drafter, fixed draft 3, autotune off | 13.9 (+13%) | 7.1 (+4%) | 18.3 (+17%) | | drafter off entirely | 12.2 (持平) | 10.5 (+54%) | 12.2 (−22%) | | flash attention off | 6.7 (−46%) | 4.3 (−37%) | 7.5 (−52%) | | threads -t 4 | 7.9 (−35%) | 5.0 (−28%) | 9.5 (−39%) | | threads -t 16 | 10.8 (−12%) | 7.1 (+3%) | 16.2 (+4%) | | run-time-repack off | 11.8 (−4%) | 9.2 (+35%) | 13.7 (−12%) | 我尝试的其他所有内容,--mla-use,--cpu-moe,--merge-up-gate-experts,--no-kv-offload,-sm图形集群,聊天和代码部分几乎与发布的配置相同,也就是说在噪声范围之内。长文档列比其他两个更为混乱,我会在重新打包部分回到原因。将负值视为有趣的部分。这些杠杆大多数没有任何效果或者会导致成本,工作的重心集中在闪存注意力上、物理核心线程数量上,以及一旦配置正确的草拟器上。草拟器是工作负载相关的,一旦配置正确后,它的表现才会有所不同。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡