英伟达开源 Dory1.0-4B:同一份权重,想更准就让它「多想几遍」
3 分钟看懂:一句话先说结论
英伟达(NVIDIA)在 10 月 16 日开源了一个只有 40 亿参数(4B) 的小模型 Dory1.0-4B,它最大的特点是「会多想几遍」:同一组 20 层网络,在推理时可以重复跑 1 遍、2 遍或 4 遍,等于在不换更大模型、不重新训练的前提下,用「多花点算力」换「更准的答案」。官方说,循环次数从 1 加到 4,编程基准 SWE-bench Verified 从 50.3 分升到 61.8 分。
说明:本文基于英伟达官方模型卡(Hugging Face)与多家技术媒体转述整理,性能数字均为官方口径,第三方独立复测尚未出现。
这是什么:一个「能自己多想几遍」的小模型
普通大模型的推理过程是固定的——有多少层就跑多少层。Dory 换了个思路:把网络拆成三段——
- 输入段 8 层,先把问题读进来;
- 循环段 20 层,这一段可以被反复应用多次,而且每一圈都把原始输入再喂回去;
- 输出段 8 层,最后给出答案。
于是同一个模型文件,你可以让它循环 1 次、2 次还是 4 次,相当于同一个模型对应好几档算力。这种设计叫「隐式递归 / 循环模型(looped / latent-recurrent)」,官方也叫它「弹性推理算力(Elastic Inference Compute)」。
为什么重要:省显存、省模型,还能按需加算力
对小模型来说,这解决了两个现实问题:
- 不用为了更准而换更大的模型。 想要更强,就让它多循环几圈,而不是下载一个几百 GB 的新权重。
- 「多思考」不等于「多吐字」。 官方强调,加的那部分算力用在潜空间里反复推敲,而不是让模型输出更长、更啰嗦的答案。所以循环次数增加时,同一道题它反而用更少的 token 就解完了(token 效率更高)。
另外两个工程细节也很实用:
- KV 缓存不随循环次数膨胀。 普通循环模型每多跑一圈就要多存一份缓存、显存猛涨;Dory 支持「只保留最后一圈的缓存(last-loop KV cache)」,开启后不管循环几次,缓存占用都按一圈来算,省下显存留给更长的上下文或更多并发。
- 原生 4-bit 预训练。 它在一套叫 NVFP4 的 4 位浮点格式下完成大部分预训练(6 万亿 token 中的前约 4.5 万亿),再用 BF16 收尾,属于「省着练、省着跑」的路子。
官方给出的关键数字
- 模型规模:4B 参数(总参数),仅支持英文;
- 上下文长度:最高 256K token;
- 架构:8 层输入 + 20 层循环段(可循环 1/2/4 次)+ 8 层输出,交错使用滑窗注意力与全注意力;
- 训练:预训练 6T token(前 ~4.5T 用 NVFP4),再用 300B token 把上下文扩展到 256K,最后用 GRPO 做多环境强化学习(数学、代码、科学、指令跟随、多步工具调用等);
- 许可证:OpenMDW-1.1(可商用、可非商用);
- 格式:官方一次放出 BF16、GGUF、NVFP4、MXFP8 四种版本,本地、量化、服务器都照顾到了。
循环越多越准吗:官方 benchmark 怎么看
官方给了一张「1 圈 / 2 圈 / 4 圈」的对比表,挑几个读者最关心的看:
| 测试项 | 1 圈 | 2 圈 | 4 圈 | 这项测什么 |
|---|---|---|---|---|
| SWE-bench Verified | 50.3 | 59.5 | 61.8 | 真实软件工程修 bug |
| SciCode | 27.3 | 34.94 | 35.11 | 科学计算编程 |
| Terminal-Bench 2.1 | 12.5 | 18.1 | 22.2 | 终端/命令行操作 |
| GPQA Diamond | 69.19 | 72.41 | 72.16 | 研究生级科学问答 |
| HLE(纯文本) | 8.25 | 10.89 | 10.43 | 高难度综合推理 |
| IFBench | 74.29 | 77.94 | 79 | 指令跟随 |
一句话读表:大部分提升来自从 1 圈加到 2 圈这一步——SWE-bench 直接从 50.3 跳到 59.5。再往上加到 4 圈,收益变小(61.8),个别项甚至略有回落。官方也是这个建议:默认从 2 圈起步,想省算力用 1 圈,看重编程/Agent 类任务准确率再上 4 圈。
作为横向参照,官方表格里把「同样 4B 档」的 Qwen3.5-4B 记为 SWE-bench 54.7 分,把更大的 Qwen3.5-9B 记为 61 分——也就是说 Dory 用 4B 的体量,靠多循环达到了接近 9B 的水平。注意这些是厂商标称口径,不是第三方复现。
怎么用:从零到跑起来
- 下权重:到 Hugging Face 的
nvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16(或 GGUF / NVFP4 / MXFP8 版本)下载。 - 选循环次数:在推理时通过参数设定,比如 vLLM 里用
n_recurrent_loops(可设 1、2、3、4),llama.cpp 里用dory.num_loops;想省显存再把recurrent_kv_cache_mode设成last_loop。 - 起步建议:官方推荐先用 2 圈;要极致省算力用 1 圈;编程、Agent 这类要准的场景再考虑 4 圈。
- 想要更省:直接用已量化好的 NVFP4 / Q5_K_M GGUF 版本,本地机器也能跑。
适合谁,不适合谁
适合:
- 想在小显存 / 边缘设备上跑推理,又希望能力「可调」的开发者;
- 关心部署成本与显存、希望一份权重覆盖多档算力的团队;
- 研究循环 / 递归架构、想复现或魔改的技术爱好者。
不适合:
- 需要中文或多种语言的用户(Dory1.0-4B 官方只支持英文);
- 追求「绝对最强通用大脑」的用户——它毕竟是 4B 小模型,量级在那里;
- 只想开箱即用、不愿碰推理参数的人——「循环几圈」需要你自己权衡。
避坑与注意事项
- 循环不是越多越好。 官方数据里,收益主要在 1→2 圈;4 圈更吃算力,延迟和成本要自己实测。
- 「不涨显存」有条件。 last-loop KV 缓存能压住缓存增长,但要开启对应模式,且官方称精度与逐圈缓存接近、并非完全相同。
- 官方 benchmark 是厂商口径,横向对比里的竞品分数也多为厂商标称,第三方复测出来前请当参考。
- 只有英文、4B 量级——别拿它去做需要中文长文或顶级推理的活。
给新手的第一步行动建议
如果你手边有能跑 4B 小模型的机器,先下载 GGUF 或 NVFP4 版本,用一个真实小任务(比如一段代码调试)分别用 1 圈和 2 圈跑一遍,直观感受「多循环一遍」带来的差距和额外耗时,再决定把它放进哪个场景。
参考来源
- 英伟达官方模型卡(Hugging Face):https://huggingface.co/nvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16
- GGUF 版本:https://huggingface.co/nvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-GGUF
- OpenMDW-1.1 许可证:https://openmdw.ai/license/1-1/
- AICoder 报道:https://aicoder.com/news/news-20261017-nvidia-nemotron-labs-dory-1-0-4b-looped-model
- openmodelweights 报道:https://openmodelweights.com/news/nvidia-dory-4b-looped-reasoning-weights-20261017/
- explainx.ai 报道:https://explainx.ai/blog/nvidia-nemotron-labs-dory-4b-looped-model-nvfp4-adjustable-loops-swe-bench-2026