
Stockfish 19 发布:Elo 最高涨 44 分,神经网络砍掉冗余威胁特征
开源国际象棋引擎 Stockfish 发布第 19 个主版本:新 NNUE 网络 SFNNv16、通用二进制、RISC-V 与 LoongArch 原生支持,对上一代最高涨 44 分 Elo,代码和权重依旧免费。
原文来源:Stockfish 官方博客 — Stockfish 19 发布,新 NNUE 网络在删掉冗余特征的同时涨了棋力,对上一代最高提升 44 分 Elo。
如果你只把 Stockfish 当成一个"下棋很强的程序",那这次更新里至少有两点值得注意:一个神经网络怎么在变小的同时变强;以及一个纯开源项目怎么把支持铺到 RISC-V 和龙芯这些新架构上。
国际象棋引擎圈子里,Stockfish 基本是默认答案。它没有商业授权、没有云端订阅,一个可执行文件下载下来,接上任意 GUI 就能用。这次 19 版是继 16 之后又一个主版本号跳变,GitHub 上的星数已经到了 16.4k。
涨了 44 分 Elo,赢的对局是输的三倍多
先看最直接的指标。对 Stockfish 18 的测试里,19 版最高拿到 44 分 Elo 的提升,并且赢下的对局对数是输掉的三倍以上。
44 分是什么概念?在国际象棋引擎的语境里,10 分左右就足够在长期对局中被判定为"确实更强"而不是噪声,44 分属于相当大的一跳。引擎排行榜上第一名和第二名往往只差个位数,所以这基本延续了它长期占据榜首的位置。
—— 广告 ——
SFNNv16:删掉冗余特征,反而更强
真正的技术点在新网络架构 SFNNv16。这一代做了两件方向相反的事:
减:去掉了网络里冗余的威胁特征(threat features)。这些特征本来是让网络理解"某个子是不是被攻击、被保护"的,冗余之后收益已经不划算,删掉直接缩小了二进制体积。
加:引入了新的兵对特征(pawn-pair features)。兵的结构在象棋评估里非常关键——通路兵、叠兵、孤兵、兵链,这些长期是手工评估函数的重点,现在用特征形式交给网络学。
同时被退役的还有 Stockfish 16.1 引入的那个次级神经网络。官方的说法很实在:那个小网络在某些局面上表现本来就不如主网络,直接去掉反而提升了这些局面下的棋力。少一个网络,推理路径也更简单。
训练侧也做了升级,引入了量化感知训练(QAT)等新技术,加上一批参数调优。训练数据是数以千亿计的局面,全部用强力的 Leela 网络重新打过分。这里能看出这类引擎的工程模式:训练数据不是问题,标注质量才是——用更强的网络当裁判,等于给海量局面换了一套更准的评分。
NNUE 是什么,为什么引擎都换成了它
不熟悉引擎圈的人可能会好奇:为什么大家都在说"神经网络"。
早期的国际象棋引擎靠手工编写的评估函数——把"兵的价值、中心控制、王的安全、子力机动性"这些经验规则一条条写成代码,再配一个极深的 alpha-beta 搜索。这套方法在 2010 年代已经打磨得接近极限。
NNUE(Efficiently Updatable Neural Network)是一次路线切换。它把评估交给一个小而精的神经网络,同时利用一个关键性质:局面变化时(比如移动一个子),网络输入只变了很少一部分,于是增量更新即可,不必重算整张网络。这让"神经网络评估 + 深度搜索"变得可行——如果每评估一个叶子节点都要跑一次完整前向,引擎根本搜不深。
Stockfish 在 2020 年正式接入 NNUE 后棋力直接跳了一个台阶,随后又做了几次网络升级(SFNNv 系列一代代迭代)。这次的 SFNNv16 就是这个脉络上的新一版。理解这一点,才能明白为什么"删掉冗余威胁特征"和"新增兵对特征"这种改动值得单独拿出来讲:在 NNUE 体系里,特征工程的定义方式直接决定了网络能学到什么,而这正是棋力提升的主要来源。
值得一提的是训练数据这条链。官方说数以千亿计的局面全部用 Leela 网络重新打分——也就是用另一个强力引擎当"教师"。这种自举式的标注在棋力迭代里很关键:如果评估标准本身不够强,再多的训练量也只是把噪声学得更牢。
通用二进制:不用再纠结 AVX2 还是 AVX-512
以前下载 Stockfish 要选版本:AVX2、AVX-512、还是不带向量指令的老架构。选错了要么跑得更慢,要么直接崩。
19 版改成了通用二进制,运行时自动探测 CPU 支持的指令集,挑最优代码路径跑。对绝大多数用户来说,下载页现在只剩一个选择,这一步省掉的是大量"我该下哪个"的困惑和由此产生的性能损失。
平台支持铺到了 RISC-V 和 LoongArch
这一条对国产芯片和嵌入式圈子比较有意思。19 版新增了 RISC-V(RVV)和 LoongArch(LSX/LASX)的原生支持,还加上了 Linux 1GB 大页、WebAssembly 目标,并重写了 Linux、macOS、BSD 上的共享内存实现。
WebAssembly 目标意味着引擎可以跑在浏览器里,纯前端做棋力分析不再需要后端。RISC-V 和 LoongArch 的支持则意味着在国产 CPU 上跑引擎不用再靠 QEMU 转译或降级方案。
更严格的局面校验
19 版还收紧了校验:局面、FEN 字符串和 UCI 命令都会做更严格检查。一旦发现问题,引擎会先输出一行 info string CRITICAL ERROR,跟上具体命令和失败原因,然后立即终止进程。官方的注释是"好的 GUI 会让你永远遇不到这些错误"——对开发者来说,这种明确的失败比默默算出一个错误结果要好得多。
怎么用起来
想在本地跑,下载页拿通用二进制就行,然后接你习惯的 GUI:桌面端有 CuteChess、Arena,命令行直接用 UCI 协议,想在浏览器里分析可以走 lichess 的分析板。做自动化对局或训练数据生成的话,命令行接一下自己的调度脚本,引擎本身无状态,进程开起来就能喂局面。
硬件上,NNUE 评估吃 CPU 向量指令,核心数越多搜索越深;这也是通用二进制在这次更新里价值这么大的原因——它能让同一份文件在不同机器上都跑到接近该机器的上限。
参与方式也很开放式:直接给 Stockfish 主仓库提交 C++ 代码,或者参与 Fishtest 分布式测试网、nnue-pytorch 训练器、以及官网。Fishtest 这套模式本身就是个值得程序员看看的东西:把海量对局拆给全球志愿者跑,用统计显著性判定一个改动该不该合入,从而把"我觉得这个改动更强"变成可验证的数据。一个纯志愿者项目能长期压住有厂商背景的对手,靠的就是这套机制。
© 2026 四月
原文链接:https://www.aprilzz.com/tools/stockfish-19
相关文章
Proliferate:让 Claude Code、Codex、OpenCode 并行干活的生产级开源 AI IDE
Proliferate 是一个开源 AI IDE:在同一个工作区里并行运行 Claude Code、Codex、OpenCode、Cursor、Grok 等任意编码 Agent,每个任务有独立的 git worktree、终端和审查状态,还支持完整的自托管部署。
OpenShot 4.0 发布:开源视频编辑器迎来史上最大升级之一,本地 AI 抠像、专业调色、录屏一网打尽
开源视频编辑器 OpenShot 4.0 正式发布:新增专业调色视图、屏幕/摄像头/麦克风录制、本地运行的 AI 物体遮罩,模糊特效提速 61.8%,全面转向 Qt 6 原生时间线。
Bookshelf:零数据库的自托管电子书库,一个文件夹 + 对象存储就能跑
把 EPUB 和 PDF 丢进一个文件夹,Bookshelf 帮你发布成网页书库:Cloudflare Worker + R2 或本地 Node 服务器两条路线,无数据库,自带 OPDS 目录,Kobo 也能直接连。