当 AI 学会读论文里的架构图:SCAFFOLD 如何把"看图说话"变成"看图推理"
一个反常识的空白
你正在读一篇计算机科学论文。文字你已经啃完了,但真正让你卡住的,是那张架构图——十几个方框、二十多条箭头,标注着你看不懂的缩写。你盯着它看了五分钟,终于把"encoder 的输出喂给 cross-attention 的 K 和 V"这件事想明白了。
这件事你做得毫不费力。但如果你让 GPT-4o 或 Qwen2.5-VL 来做,它大概率会翻车。
不是因为模型不够聪明,而是因为从来没有人给过它们这种训练数据。
这听起来有点反常识:2026 年了,视觉语言模型(VLM)已经能看梗图、读图表、描述照片里的猫是什么品种,但它们居然读不懂一张计算机科学论文里的架构图?原因很简单——所有公开数据集里,没有一个是专门为"理解 CS 论文图表"而构建的。FigureQA、DVQA、PlotQA 这些都是合成的柱状图、饼图;SciGraphQA 虽然用了真实论文图表,但聚焦于"读曲线"而不是"理解结构";CharXiv 最接近,但它的提问方式仍然停留在"图里有什么"而不是"谁喂给谁"。
SCAFFOLD 这篇论文(arXiv:2609.00018,加德满都大学 Ranjit Raut 团队)要解决的就是这个空白。论文标题里那个 "SCAFFOLD" 不是脚手架的意思,而是他们给数据集起的名字——一个大规模、结构化、带思维链推理轨迹的计算机科学图表问答数据集。
把它当成低资源语言问题来想
论文里最精彩的一个类比,是把"CS 论文图表理解"比作 NLP 里的低资源语言问题。
想象一下:你手头有一个在英语上训练得极好的翻译模型,现在让你翻译库尔德语。模型架构没问题,优化算法没问题,但翻译质量一定很差——因为没数据。解决方案不是换更大的模型,而是去收集库尔德语的语料。
SCAFFOLD 团队认为,VLM 读不懂架构图,本质上是同一个问题。通用视觉问答数据集(自然照片、日常图表)就像 NLP 里的英语,资源丰富;而 CS 论文里的架构图、流程图、管道示意图,就像 NLP 里的低资源语言——不是模型能力不够,是数据不存在。所以解决方案不是改模型,而是造数据。
这个类比之所以重要,是因为它直接决定了研究路径:不要假设通用 VQA 数据会自动迁移过来,得专门为这个领域造一个数据集。
五步流水线:从 PDF 到训练样本
SCAFFOLD 的核心贡献是一条全自动、可复现的数据构建流水线。输入是 arXiv 上的 PDF 论文,输出是直接可以喂给 VLM 训练的 chat 格式数据。中间五步:
第一步:布局检测。 用 YOLOv8 在 DocLayNet 数据集上微调,识别每页 PDF 里的 "Picture" 和 "Caption" 区域。每页以 150 DPI 独立渲染,保证检测器看到的是固定分辨率的输入。
第二步:精确裁剪。 这里有个细节值得注意——他们不是从光栅化的页面图像里裁剪,而是用 PyMuPDF 直接从源 PDF 里裁剪。差别在哪?光栅化裁剪会损失质量,而 PDF 矢量裁剪能保留原始分辨率。对于包含细小文字和密集箭头的架构图来说,这个选择至关重要。
第三步:标题匹配。 图和标题不总是上下相邻的——有时候标题在图旁边,有时候在图上方。他们用一个启发式算法,结合垂直距离和水平边界框重叠度来配对。这个看似不起眼的工程细节,实际上解决了 PDF 解析里一个相当棘手的问题。
第四步:上下文链接。 找到论文正文中第一处提到"Figure 3"或"Fig. 3"或"Fig.3"的句子(注意三种写法都要处理),把它作为这张图的"上下文锚点"。这一步的意义在于:光有图和标题还不够,模型需要知道论文正文是怎么引用这张图的,才能真正理解图在论证中扮演的角色。
第五步:清洗与过滤。 没找到标题或图号的记录不会被悄悄丢掉,而是打上 ref_sentence_found = False 标记。这个设计很关键——下游用户能精确知道提取有多完整,而不是面对一个黑盒数据集猜质量。
五步走完,3058 篇论文产出了 29,887 张图表。
双路径生成:Gemini 加模板兜底
有了(图,标题,上下文)三元组,下一步是生成问答和推理轨迹。这里 SCAFFOLD 用了一个双路径设计:
主路径:AI 辅助生成。 调 Gemini API(开发过程中用了 gemini-2.5-flash、gemini-3.1-lite-flash、gemini-3.5-flash 三个版本),输入图、标题、上下文,输出一个问题、一个答案,以及(尽可能的)一段思维链推理轨迹,格式是 。
兜底路径:模板生成。 当没有 API key、或者 API 调用失败时,一个确定性模板系统会从标题和上下文里拼出一个结构合法的问答对。质量不如 AI 生成的,但保证流水线永远不会因为外部服务不可用而停摆。
这个双路径设计是一个很务实的工程选择。学术研究里经常遇到的问题就是:你依赖一个外部 API,API 一限流、一涨价、一改版本,整个数据集就重建不了了。SCAFFOLD 的模板兜底意味着即使 Gemini 明天就下线,这个数据集依然可以从头重建。
每条记录都带溯源元数据:qa_source 标记问题是 Gemini 生成的还是模板生成的,cot_source 标记思维链的来源。下游用户可以精确筛选——比如只用 Gemini 生成的部分做训练,把模板生成的留作消融对照。
七种问题类型:故意偏向"关系"
SCAFFOLD 把所有问题分成七类:component(组件)、relationship(关系)、process(流程)、result(结果)、comparison(比较)、architecture(架构)、general(通用)。
这里有个设计选择值得玩味——relationship 和 component 两类被故意加权。为什么?因为这两类问题最能测试模型是否真的理解了图的结构,而不只是识别了图里有什么。
举个例子:问"图里有几个方框"是 component 类,模型只要会数数就行;但问"cross-attention 模块里的 queries 来自哪里"是 relationship 类,模型必须沿着箭头追溯,理解 decoder 到 Q 的连接,才能答对。
这个设计直接对应了论文的核心主张:CS 图表理解的关键不是识别,而是关系推理。通用 VQA 数据集里大量充斥的"图里有什么"类问题,对训练架构图理解能力帮助有限。
14 字段记录:不只是训练数据,还是审计材料
每条记录有 14 个字段:figure_id、paper_id、figure_number、caption、ref_sentence、ref_sentence_found、question、answer、question_type、qa_source、has_cot、cot_trace、cot_source,加上 base64 编码的图像本身。
14 个字段里,有一半是溯源元数据。这个比例透露了团队的设计哲学——数据集不只是训练材料,更是可审计的工件。你可以精确地知道:这张图来自哪篇论文(paper_id)、问题是谁生成的(qa_source)、有没有思维链(has_cot)、思维链是谁写的(cot_source)、图号解析成功没有(ref_sentence_found)。
这种"溯源优先"的设计在 AI 生成数据集里并不常见。很多数据集只给你 (image, question, answer) 三元组,你根本不知道答案是怎么来的、质量如何。SCAFFOLD 的做法让下游用户可以按质量分层使用——比如只用 Gemini 生成 + 有思维链 + 上下文找到的子集做高质量训练,其余的做数据增强。
记录还有两种序列化形式:完整的 14 字段 JSON(用于人工检查和归档),和精简的训练格式(直接是目标模型的 chat-message 结构,无需额外转换)。后者意味着拿到数据集就能开训,不用再写预处理脚本。
三个规模:157K、37K、12K
SCAFFOLD 发布了三个版本:
| 版本 | 训练 | 验证 | 总量 |
|---|---|---|---|
| SCAFFOLD-157K | 120,225 | 36,797 | 157,387 |
| SCAFFOLD-37K | 29,397 | 7,400 | 36,797 |
| SCAFFOLD-12K | 10,000 | 2,000 | 12,000 |
这个分层设计很聪明:大规模版本证明流水线能 scale,小规模版本证明数据能训出东西。研究者用 12K 做了基线实验。
基线实验:Qwen2.5-VL-3B 的成绩单
团队用 SCAFFOLD-12K 对 Qwen2.5-VL-3B-Instruct 做了 QLoRA 微调(4-bit 量化,rank-64 LoRA,挂在所有 attention 和 MLP 投影层上),然后在 2000 条验证集上评估。
关键数字:
- 格式合规率 99.5%——模型几乎完美地学会了输出
... 格式。这证明数据集的格式设计对训练是友好的。 - Token-F1 0.527(完整输出),Answer-only Token-F1 0.433——中等水平,不算惊艳。
- 数值准确率 0.638,平均松散准确率 0.339——数值题明显比开放文本题做得好。
- LLM-judge 正确性 0.616(73 题样本),faithfulness 4.82/5,reasoning quality 4.11/5——LLM 评审认为推理质量还不错。
- Self-consistency agreement 0.167(50 题采样 3 次)——这个数字很低,说明模型对同一道题的多次回答一致性很差,暗示模型还没真正学会稳定推理。
代码与数据可用性
论文 GitHub 仓库在 https://github.com/theranjitraut/scaffold ,目前仓库里主要是 README 和数据集说明。数据集本身托管在 HuggingFace(ranjitraut/scaffold)和 Kaggle(theranjitraut/scaffold`)上,包含 records.jsonl、train.jsonl、validation.jsonl、pdf_metadata.jsonl 和 images.zip。许可证是 CC BY-NC 4.0。
值得注意的是,完整的流水线代码(提取、匹配、生成)计划开源,论文里说"intended for release"。这意味着其他研究者可以拿这套流水线去处理其他领域的论文——比如生物医学论文的图表、物理学论文的实验装置图——造出自己的 SCAFFOLD。
这篇论文真正在说什么
SCAFFOLD 表面上是一个数据集论文,但它真正在说的是一件更深的事:AI 能力的瓶颈往往不在模型,而在数据。
过去几年,VLM 领域的进步几乎全靠模型架构和训练算法的改进——更大的 transformer、更好的对齐方法、更强的多模态融合。但论文里那个"低资源语言"的类比提醒我们:有些能力不是模型给不了,是数据喂不到。
CS 论文里的架构图是一种非常特殊的视觉语言。它有自己的语法(方框=模块,箭头=数据流,分层=抽象层级),自己的词汇表(encoder、decoder、attention、residual),自己的推理规则("A→B"意味着 A 的输出是 B 的输入)。通用 VLM 在自然照片上训练得再好,也不等于掌握了这套语法——就像英语模型再大也翻译不了库尔德语。
SCAFFOLD 的贡献不是"又造了一个数据集",而是识别出了一个被忽视的数据空白,并用一条可复现的流水线去填补它。流水线本身的设计——双路径生成、溯源元数据、分层质量检查——也为未来类似领域的数据集构建提供了一个可参考的模板。
当然,局限性也很明显:只有 12K 经过人工抽检,157K 的质量未验证;问题生成依赖 Gemini,模板兜底质量有限;布局检测器在 DocLayNet 上训练,不是专门为 CS 图表优化的;思维链是模型生成的,不是人写的,事实正确性未大规模验证。
但作为一个"从零到一"的工作,SCAFFOLD 做了一件很重要的事——它把"VLM 读不懂 CS 架构图"从一个"模型能力问题"重新定义成了一个"数据可用性问题"。一旦问题被这样重新定义,解决方案的路径就清晰了:不是等更大的模型,而是造更好的数据。
这或许就是数据集论文的真正价值——它们不是在刷榜,而是在重新定义问题的边界。