← 返回文章列表

当 AI 学会"用手指点着图思考"——解读 DeepSeek《Thinking with Visual Primitives》

解读 DeepSeek《Thinking with Visual Primitives》如何用 box 和 point 缝合多模态模型的指代鸿沟,并把视觉原语变成推理过程的一部分。

AI · 工具··27 分钟阅读

当 AI 学会"用手指点着图思考"——解读 DeepSeek《Thinking with Visual Primitives》

"看得清"和"想得对"是两件完全不同的事。这篇论文告诉你为什么,以及怎么破。


引子:一个让 GPT-5 也翻车的小测试

请你做一个实验。打开任意一个最新的多模态大模型(GPT-5.4、Claude-Sonnet-4.6、Gemini-3-Flash 都行),上传一张密密麻麻的合影——比如一个二十多人的球队团体照——然后问它:"这张图里一共有多少个人?"

你会发现一个有意思的现象:模型多半会自信地给你一个答案,但这个答案大概率是错的。再换一张图,再问一次,答案又变了。再问"左边数过去第三个人穿什么颜色衣服"——它可能开始胡说八道。

这不是模型"看不清"。如果你把图放大、把每个人单独抠出来问,它都能描述得头头是道。问题出在它没办法在思考的过程中稳定地"指向"某一个具体的人。

这正是 DeepSeek 团队联合北大、清华在 2026 年 4 月发布的论文 《Thinking with Visual Primitives》 想要解决的核心问题。这篇论文的份量在于:它不是又一个 SOTA 跑分的水文,而是重新定义了 MLLM 推理范式中的瓶颈——并给出了一套优雅的解法,让一个 13B 激活参数的模型在拓扑推理任务上把 GPT-5.4 打了 15 分。


第一章:两条鸿沟——Perception Gap vs Reference Gap

1.1 过去一年大家在卷什么

如果你关注过 MLLM 的发展,会注意到从 2024 年开始一个明显的趋势:模型支持的输入分辨率越来越大。

  • 早期 LLaVA 限定 224×224
  • Qwen-VL 引入动态分辨率
  • 后来出现 "Thinking with Images"——把图切成块、放大局部、反复看

这一切的目的,是要解决作者称之为 Perception Gap(感知鸿沟) 的问题:模型"看不清"图像中的细节。

类比一下:这就像给一个近视的学生配更强的眼镜。镜片越好,能看清越远的字。

1.2 但近视镜治不了"思维近视"

DeepSeek 团队提出了一个尖锐的观察:就算给模型配上鹰眼,它依然会算错题。

为什么?因为大模型的"思考"过程是用语言进行的(Chain-of-Thought),而语言天生有一种致命缺陷:

自然语言无法在连续的视觉空间里给出"精确的指针"。

当模型推理"图中第三排左边第二个穿条纹衫的人"时,这串文字描述只是对一个像素位置的近似指代——它没有真的"锁定"那个人。一旦场景变密、对象变多、空间关系变复杂,这种模糊的指代就会累积漂移,最终导致逻辑崩溃。

作者把这种缺陷命名为 Reference Gap(指代鸿沟)。

1.3 一个直观的例子

想象你在数一盘葡萄。

人类怎么数?我们会用手指或眼神依次指过每颗葡萄,一边指一边在心里念"1、2、3...."。这个"指"的动作非常关键——它把抽象的计数过程锚定到了具体的物理位置上。如果我们不指,光靠"心算"那串葡萄,就极容易数重或漏数。

现在再想象 GPT 这种纯语言推理的模型。它没有手指。它的"思考"全是文字:

"我看到一些葡萄,左边一串大概有 5 颗,右边那串可能 7 颗,加起来 12 颗..."

注意"大概"和"可能"。这就是 Reference Gap 在作祟——它从来没有真的"指"过任何一颗葡萄,所有计数都是基于模糊的语言描述。


第二章:让模型长出"手指头"

2.1 视觉原语:思维的最小单元

DeepSeek 的核心想法极其简洁:给模型一套真正能"指物"的符号。

他们引入两类视觉原语(Visual Primitives):

  • Bounding Box(边界框):用 [x1, y1, x2, y2] 四个数字精确框住一个物体。
  • Point(点):用 [x, y] 标记一个抽象位置。

这些不是事后画在图上的标注,而是直接成为模型推理过程中的 token。

在词表层面,他们加入了几个特殊 token:

<|ref|>...<|/ref|>          指代名("the men", "small gray sphere")
<|box|>[[x1,y1,x2,y2]]<|/box|>   一个或多个框
<|point|>[[x,y]]<|/point|>        一个或多个点

坐标被归一化到 0–999 的离散整数,确保跨分辨率的统一性。

2.2 推理过程长什么样

来看一个真实例子(论文 Figure 3,coarse-grained counting)。

问题:图中有多少个男人?

模型的思考链:

1. **Deconstructing the query**
用户要我数图中的男人总数,看起来是张球队合影,我需要数所有人,
包括队员和站在两侧的教练/官员。

2. **Sweeping the photo**
扫描整张图,我标记出所有男人:
<|ref|>the men<|/ref|>
<|box|>[[13,228,116,714], [106,226,202,707], [129,357,229,711],
       [154,519,255,747], ...每一个都精确框出来... ]<|/box|>

3. **Tallying**
前排坐着 4 人,中排坐/蹲 9 人,后排站立 8 人,
加上两位教练在左、两人在右。
4 + 9 + 8 + 2 + 2 = 25

最终回答: 25 人

注意这里发生了什么:模型一边推理一边吐坐标。每框一个人就相当于"用手指点了一下",这个点位被永久写入了思考链,后续的求和不再依赖模糊的"大概",而是基于已经被精确指认的离散对象集合。

这就是论文标题里 "Thinking WITH Visual Primitives" 的真正含义——视觉原语不是输出,不是中间产物,而是思考本身的一部分。

2.3 为什么是 box 和 point,而不是 mask/polygon?

作者花了一节专门论证这个选择。三个理由:

  1. 标注确定性:一个框紧紧围住物体,标注接近唯一;而 point 更模糊——一个物体内部任何位置都可以是 valid point。所以 box 更适合大规模训练数据的获取。
  2. 任务可泛化性:训会输出 box 的模型可以无痛降级为输出 point(取中心或任意角点)。反之不行。
  3. 信息丰富度:box 带了宽高信息;point 只有位置。

这是工程务实主义的胜利。在能用的、能扩的、能验证的之间找最大公约数。


第三章:架构杀招——用更少的视觉 token 干更多的事

3.1 让人震惊的对比图

论文 Figure 1 是全文最有冲击力的一张图。同样是 800×800 的输入图像:

模型KV Cache 条目数平均跑分
Gemini-3-Flash~110076.5%
Claude-Sonnet-4.6~87065.3%
GPT-5.4~74071.1%
Qwen3-VL-235B-A22B~66068.1%
DeepSeek 本作 (284B-A13B)~9077.2%
Gemma-4-31B~28969.7%

视觉 token 数量是 Gemini 的 1/12, 但平均分最高。

3.2 三重压缩流水线

DeepSeek 在视觉路径上做了三层压缩:

原图 (756×756, 571,536 像素)
    ↓ 14×14 patch 切分
2,916 个 patch token
    ↓ 3×3 spatial token compression (沿 channel 拼接)
324 个 visual token  ← 进入 LLM
    ↓ Compressed Sparse Attention (CSA, 4× 压缩 KV cache)
81 个 KV cache 条目

整体压缩比 ~7,056×。

3.3 为什么压缩这么狠还不掉智商?

答案藏在视觉原语的设计里:

当模型能用 box/point "外置"空间状态时,它不需要把整张图的细节都塞进 KV cache 反复 attend。

打个比方:传统 MLLM 像一个用脑子记忆图像的人,记不住的就反复看;而本文的模型像一个会做笔记的人——它一边看一边把关键位置写在笔记本上(CoT 里的 box/point),后续推理直接查笔记,不需要反复回看原图。


第四章:训练流水线——五阶段工业化生产

Pretraining
    ↓
Specialized SFT (分两支:Box 专家 + Point 专家)
    ↓
Specialized RL (GRPO + 多 reward)
    ↓
Unified RFT (合并两支)
    ↓
On-Policy Distillation (蒸馏回统一模型)

4.1 Pretraining:40M 高质量数据

数据来源主要是 HuggingFace 上爬来的 box-grounding 数据:初筛 97,984 个数据源,然后两步过滤:

Step I:语义审查 — 丢"无意义代码标签"、"私有实体"、"主观缩写"。剩 43,141 个。

Step II:几何审查 — 丢"严重漏标 (>50% miss)"、"严重截断"、"巨型框 (>90% 图像)"。剩 31,701。

最终类别均衡采样得到 40M 高质量样本。

过滤哲学:便宜的过滤先做,贵的过滤后做。先语义后几何这个顺序节省了大量成本。

4.2 四类 Cold-Start 任务

任务数量用 box 还是 point难点
Counting (粗+细粒度)10Kbox密集场景下的精确计数
Spatial Reasoning + VQA9Kbox多跳逻辑推理
Maze Navigation460Kpoint拓扑可达性、回溯探索
Path Tracing125Kpoint交叉点处的曲率连续性判断

为什么迷宫数据量是其他的几十倍? 因为拓扑推理是纯语言 CoT 最容易翻车的场景。

一个让人拍案叫绝的细节:Path Tracing 任务专门设计了 uniform-style mode——所有线统一颜色和粗细。为什么?因为如果颜色不同,模型会学到"跟着同色像素走"的捷径,而不是真正学会"在交叉点判断哪条曲线在几何上是连续的"。这是典型的 reward hacking,提前堵住了。

4.3 Specialized RL——奖励工程的艺术

用 GRPO 算法,设计三类 reward:

Format RM:格式合法性

特别检查 box 的重复生成——SFT 模型会陷入"无限输出框"的死循环。

Quality RM:LLM 判官

6 个维度打分,包括最关键的一项:reward hacking 检测——比如模型伪造一个假的 ground truth 让自己看起来对了。

Accuracy RM:针对每个任务定制

Counting 用平滑指数衰减:

$$R(\hat{y}, y) = \alpha \cdot \exp\left(-\beta \cdot \frac{|\hat{y} - y|}{|y| + 1}\right)$$

预测 24 vs 真实 25 应该比预测 5 vs 真实 25 得分高得多。密集化的奖励信号让训练更稳定。

Maze Navigation 用 5 项加权(详见后文深度解读)。

Path Tracing 用双向轨迹评估 — 正向防"乱画",反向防"漏画"。


第五章:实验结果

5.1 主表对比

类别对手最高分本作得分
Pixmo-Count88.2 (Gemini)89.2
MIHBench83.5 (GPT-5.4)85.3
SpatialMQA67.0 (Gemini)69.4
DS_Maze_Navigation50.6 (GPT-5.4)66.9
DS_Path_Tracing46.5 (GPT-5.4)56.7

注意拓扑推理两项的差距:+16.3 和 +10.2。这种量级的领先在前沿模型对比里非常罕见。

5.2 一个被作者低调提到的事实

虽然后训练数据完全不含中文语料,模型依然能用中文思考和回答(论文 Figure 8 给了很多中文例子)。这说明视觉原语的能力是语言无关的——它是嫁接在多语言基模型上的一种新型符号系统。


第六章:局限与未来

  1. 输入分辨率仍是天花板 — 视觉原语解决了 Reference Gap,但解决不了 Perception Gap。
  2. 需要显式 trigger 词激活 — 当前模型还做不到"自己判断这题需不需要画框"。
  3. 拓扑推理跨场景泛化弱 — 迷宫训得很好,但换个拓扑场景就掉链子。

第二部分:四个最有价值的深度解读

下面是从这篇论文里挑出的最有杠杆效应的四个点——也就是即便你不做 MLLM,把这些洞察迁移到别的领域(Agent 设计、RL 训练、数据工程、系统架构)都能让你受益的部分。


深度解读一:Reference Gap 这个概念,是过去三年 MLLM 圈最重要的"重新定义问题"

为什么这是非平凡的

听起来这只是一个分类学上的小区分,似乎"很显然"。但事实是:80% 的 SOTA 论文都在讲解决方案,只有 5% 在重新定义问题——而后者的影响力往往是前者的 10 倍。

经典案例:

  • Hinton 把"训练深度网络的难度"从"过拟合问题"重新定义为"梯度消失问题",才有了 ReLU 和 BN 的爆发
  • Ilya Sutskever 把"机器翻译"从"对齐问题"重新定义为"序列到序列的条件概率建模",才有了 seq2seq

Reference Gap 这个命名,有可能成为未来 2-3 年 MLLM 论文里被反复引用的"标准词汇"。

更深的机理:为什么语言天生不能精确指物?

这里涉及到符号学(semiotics)的一个根本问题。语言中的指示词(deictic terms)——"这个"、"那个"、"左边那只"——它们的语义解析依赖于说话者和听者共享的注意焦点。

人类对话时,这个注意焦点通过眼神、手势、共同视线来同步。但 LLM 的"思考"是单向独白,没有外部注意焦点对齐的机制——它的 "the man on the left" 在不同推理步之间可能指向不同的人,而模型自己不会察觉。

这是一个结构性缺陷,不是数据多就能补上的。

可推广的范式

视觉原语 box/point 本质上是给思考链扩展了一种新型 deictic primitive。这种思路也适用于:

  • 音频推理:加入时间戳 primitive (<|t|>3.21s<|/t|>)
  • 代码理解:加入 AST 节点 primitive (<|node|>FuncDef@line42<|/node|>)
  • 数学推理:加入符号 primitive (已经有人在做)

你能怎么用

如果你在做任何形式的 Agent 或推理系统,问自己:

"我的系统在思考过程中,需要引用哪些'外部对象'?这些引用现在是用什么形式实现的?是模糊的语言描述,还是精确的符号?"

  • 做 Code Agent?它在思考 "modify the third function" 还是 <|func|>auth.py:42:validate_token<|/func|>?
  • 做 Browser Agent?它在说 "click the blue button" 还是 <|element|>id=submit-btn,box=[342,512,420,548]<|/element|>?
  • 做 DB Agent?它在说 "the user table" 还是 <|table|>schema=public,name=users,version=v3<|/table|>?

每一个"模糊指代"都是一次潜在的 cascading hallucination 入口。


深度解读二:90 个 KV cache 条目打败 1100 个——"外置状态"的架构哲学

为什么这是非平凡的

这违反了所有人的直觉。常识是:模型看的细节越多,推理越准。Anthropic 写过文章讲长上下文的好处,Google 一直在卷 1M context,大家默认 "more is more"。

但 DeepSeek 用一个反直觉的事实告诉你:当你给模型一个更好的"显式状态表征",它就不再需要那么大的"隐式状态容量"。

这背后有一个深刻的系统设计原则,我称之为 "显隐互换原理"(Explicit-Implicit Tradeoff):

任何系统的状态存储,要么放在显式数据结构里(代价:符号设计成本),要么放在隐式神经表征里(代价:计算和参数量)。两者总和大致守恒。

三种状态表征的代价对比

表征方式例子优势代价
纯隐式大量 KV cache通用、自动计算 O(n²)、占内存、难解释
纯显式知识图谱、符号系统精确、可验证、省算力设计成本高、难自动获取
混合视觉原语 + LLM兼具需要训练让两者协同

DeepSeek 选了第三条路,而且走得非常彻底——让显式符号(box/point)直接出现在思考链里,而不是作为外部数据库。

历史上类似的成功案例

例 1:Pointer Networks (Vinyals 2015)

让 decoder 不输出新 token,而输出指向输入位置的指针。这和视觉原语的"输出坐标指向图像位置"是同构的。

例 2:Tool Use / Function Calling

GPT-4 学会了"我不在脑子里算这道数学题,我调用 calculator"。外置一个工具,省掉无数神经元的算术近似。

例 3:Retrieval-Augmented Generation

不在权重里记住一切,而是外置一个知识库。每个事实从权重里"卸下来",省下的容量用于推理能力。

例 4:DeepSeek 的视觉原语

不在 KV cache 里反复 attend 视觉细节,而是把空间状态外置到思考链的 box/point token 里。

关键设计模式

这四个案例形成了一个清晰的设计模式:"凡是可以被符号化的状态,都不应该存在神经表征里"。

为什么?因为神经表征是有损的、模糊的、不可验证的。把可验证的东西放进神经表征,就等于把硬币当墨水用——浪费且容易丢。

你能怎么用

  • 在做 长上下文 RAG 时,与其塞 100K token 进 context,不如让模型先输出"摘要 + 引用编号"的中间结构,后续推理基于编号查表。编号是符号,内容是隐式。
  • 在做 Multi-Agent 系统 时,Agent 之间不要用自然语言描述任务状态,定义一个结构化的状态对象(JSON schema)。
  • 在做 代码生成 时,让模型输出 <|edit|>{file: "auth.py", line: 42, op: "replace"}<|/edit|> 而不是"我要修改第三个函数"。这就是 Cursor/Aider 的 diff format 的本质。

深度解读三:Maze RM 的"Causal Exploration Progress"——多步任务奖励设计的天花板范例

表面叙述

迷宫任务的 reward 由 5 项加权组成,核心是 Causal exploration progress :遇到第一次穿墙就截断后续得分。

为什么这是非平凡的

很多人做 RL 时,reward 设计的水平停留在"对/错二分"或者"局部 BLEU/ROUGE"。这两种都有致命问题:

  • 二分 reward:稀疏到模型几乎学不到东西。
  • 局部 reward:容易诱导 reward hacking。比如"每走一步给 +1",模型就学会绕圈不停步。

DeepSeek 的设计巧妙在哪儿?它给 reward 注入了"因果性"。

详细机理

设迷宫从 S 走到 E,gt 路径长度 L_gt。模型输出一个探索 trajectory 包含 K 步。

朴素做法:看模型探索覆盖了多少 gt 路径上的格子,占比作为 reward。

DeepSeek 的做法:

  1. 沿着 trajectory 顺序扫描
  2. 遇到第一次穿墙(wall violation),截断后续所有探索
  3. 在被截断的合法部分里,计算"已探索区域到终点的最短距离 d"
  4. reward = 1 - d / L_gt

为什么截断这一步是天才设计?

因为它把 reward 变成了"因果有效"的——只有合法的探索才算数,一旦你违反规则,后面再正确也不给分。

类比

你在面试一道算法题,前 30 分钟做对了 80%,但第 31 分钟用了一个错误的假设,后面所有推理都基于这个错误假设。

  • 朴素 RM:你前 80% 对的那部分仍然得分
  • Causal RM:从你犯错那一刻起,后面的所有"对"都不算数

后者才是真正在教模型"端到端的因果一致性"。

这种思想适用的场景

任何"长链推理 + 中途可能崩溃"的任务。

场景 1:代码生成

模型写了 50 行代码,第 5 行有个语法错误。Causal RM 应该给"前 4 行有效,第 5 行起 reward = 0"。后面的代码都是基于错误前提编出来的。

场景 2:数学证明

如果证明的第二步用了错误的引理,后面所有推导都失效。

场景 3:Agentic 任务

Agent 在第三步调错了 API,但后面"假装"成功执行。Causal RM 应该截断,而不是给最终答案的部分分。

关键认知

"Causal Truncation" 应该成为多步任务 reward 设计的标准动作。

它的核心思想是:模型的中间步骤不是独立可加的,它们之间有因果依赖。任何一步错了,后面的"对"都是虚假的繁荣。

如果你做 RLHF/RLAIF,而你的 reward function 还是"对每个步骤独立打分然后求和",你正在浪费训练算力。

还有一个更深的设计:reward 的"不对称性"

5 项 reward 里,Item 1 只对可解迷宫激活,Item 2 只对不可解迷宫激活。

为什么?因为可解和不可解的迷宫,对模型的要求本质不同:

  • 可解迷宫:目标是"找到一条路",评估的是"探索效率"
  • 不可解迷宫:目标是"证明无路",评估的是"探索完整性"

解决方案是 reward 的条件激活——根据任务子类型选择激活哪些 reward 项。


深度解读四:Specialized SFT/RL → Unified RFT——"先分头训,再合并"

表面叙述

后训练有四个阶段,核心是"先训两个专家(box 专家 + point 专家),再合并成统一模型"。

为什么这是非平凡的

直觉上,你会想:既然最终要一个统一模型,为什么不一开始就用混合数据训一个? 这样多干净。

DeepSeek 的回答是:不行,会出现 mode conflict。

具体来说:

  • box 数据让模型倾向于"先框出所有候选对象"的批量推理模式
  • point 数据让模型倾向于"逐步指点、动态决策"的序列推理模式

这两种模式在思考结构上是冲突的。如果数据量大且均衡,模型能学会两者切换;但冷启动阶段数据量小,两种模式互相干扰,导致两边都学不好。

类比

如果你想培养一个既会下围棋又会下象棋的 AI,在它对任何棋类都还是新手时,把两种棋的对局数据混着喂——它学到的会是个四不像。正确做法是先单独训围棋专家和象棋专家,等各自精通后,再训一个能根据棋盘判断"现在该用哪种思路"的统一模型。

多任务学习的核心张力

策略优点缺点
早期混合 (Joint training from scratch)简单negative transfer,任务相互干扰
完全分离 (Separate models)每任务最优没有共享带来的泛化收益
分阶段融合 (Specialized → Unified)鱼和熊掌兼得流程复杂

DeepSeek 选了第三条,而且加了两个精妙的细节:

细节 1:用专家产出数据再训学生

避免了"直接平均两个专家权重"这种粗暴的 model merging。通过"用专家产出数据再训学生"这种间接路径,知识转移更平滑。

细节 2:On-Policy Distillation 用反向 KL

即便经过 Unified RFT,统一模型在专门领域可能仍然不如专家。这时候用 OPD 把专家"再蒸馏一次":让学生模型自己采样,然后在每个采样位置上对齐专家的分布。

这里用的是反向 KL D_KL(π_θ || π_E),不是正向 KL。区别在于:

  • 正向 KL:mode-covering,逼学生覆盖老师的所有模式 → 学生分布会变得"模糊但全面"
  • 反向 KL:mode-seeking,逼学生集中在老师高概率区域 → 学生分布会"锐利但片面"

在多教师场景下,反向 KL 更稳定,因为它不会逼学生去同时覆盖两个矛盾教师的所有模式。

这种范式可以推广到哪儿?

推广 1:Code Agent 训练

要训一个能"读代码 + 写代码 + 跑测试"的 Agent。不要混合训。先训三个专家:

  • Reading Specialist:理解代码、找 bug
  • Writing Specialist:生成代码
  • Testing Specialist:执行测试、解读输出

然后用专家生成 trajectory,蒸馏成统一 Agent。

推广 2:领域适配

把通用 LLM 适配到法律、医疗、金融。每个领域单独训出 SFT/RL 专家,然后蒸馏。

推广 3:多语言模型

混合训中英日韩容易让小语种被大语种淹没。先训语言专家,再蒸馏统一。


总结:这四个点为什么配得上"最有价值"的称号

#洞察可迁移性反直觉度
1Reference Gap 概念重定义任何 Agent / 推理系统★★★★
2显式符号 vs 隐式容量的互换长上下文 / RAG / Agent★★★★★
3Causal Truncation 在多步 reward 里的应用任何 RL / RLHF 训练★★★
4Specialist → Unified 的训练范式任何多任务 / 领域适配训练★★★

贯穿四个点的主线

四个点看起来分散,但其实有一条贯穿的主线:"分离关切 (Separation of Concerns)"。

  • 第 1 点:把"看清"和"指代"分离
  • 第 2 点:把"显式状态"和"隐式表征"分离
  • 第 3 点:把"局部正确"和"因果有效"分离
  • 第 4 点:把"专门能力"和"统一接口"分离

整篇论文的最高层智慧,是找到了多个"被混在一起的东西",然后把它们清晰地拆开。这是顶级系统设计的标志。

软件工程里的 SOLID 原则、操作系统里的微内核思想、数据库里的 ACID 拆分——这些经典工程哲学的本质都是 separation of concerns。这篇 AI 论文不过是在新的领域重新发现了这条原则。

当你在设计任何复杂系统时遇到瓶颈,问自己:我现在是不是把两件本应分离的事情混在一起了?


结语:当 AI 学会用手指点着图思考

回到开头的那个团体照计数测试。当一个 13B 激活参数的模型,通过"在思考时画框"这件简单的事,就能在拓扑推理上把 GPT-5.4 打了 15 分,这意味着什么?

意味着我们对"智能"的理解还很初步。我们以为更大的模型、更多的数据、更长的上下文是通往 AGI 的高速公路,但 DeepSeek 这样的工作不断提醒我们:有时候,真正的进步来自重新审视一个被忽视的小细节——比如,语言到底能不能精确指物。

如果说 GPT-3 教会了 AI "说话",ChatGPT 教会了 AI "对话",CoT 教会了 AI "思考",那么这篇论文也许在教 AI "指着东西思考"。

而这,可能是从"会聊天的工具"到"会推理的智能体"之间,最关键的一小步。


论文:Lu et al. "Thinking with Visual Primitives." DeepSeek-AI, 2026-04. 作者团队:DeepSeek-AI、北京大学、清华大学 关键词:Multimodal Reasoning, Visual Grounding, System 2 Thinking, Reference Gap