1B 西语安全 VLM 看不懂截图:论文如实报负结果,顺带抛出 NoPE 悬念

VectraYX-Vision-1B: A Sub-2B Spanish/LATAM Cybersecurity Vision-Language Model with Structured Visual Reasoning and Native Tool Use

Juan S. Santillana

cs.CL

2026-08-09

1B 西语安全 VLM 在 16M 视觉 token 训练后工具识别仅 0.08(GPT-4o 0.94);论文如实报负结果,并设计了一个 NoPE 骨干与视觉注入的可证伪消融。

这篇在解决什么

安全分析师的日常工作大量依赖看图:逆向工程师读 IDA 的反汇编窗口,SOC 分析师翻 Wireshark 抓包,取证人员扫 Volatility 的进程列表,渗透测试员解读 Nmap 和 Metasploit 的输出。但能帮上忙的机器工具,要么是看不到屏幕的纯文本大模型,要么是不懂安全图像、又大到没法本地跑的通用视觉语言模型(VLM)。拉美市场还多两层难:这些模型用西班牙语答技术题很吃力,7B 到 70B 的体量也塞不进一线安全团队的普通硬件。更关键的是,把可能含客户数据、恶意样本、内网拓扑的截图发给第三方云 VLM,在很多机构的合规线上根本不允许。

VectraYX-Vision-1B 想填的就是这个缝:一个 1B 出头、能跑在离线 CPU 机器上的西语与拉美安全 VLM,看得懂安全工具截图,还会用原生 <|think|> token 输出结构化推理、用 <|toolcall|> 经 MCP 协议调外部工具。

方法

整套是 LLaVA 式的三件套,加一条四阶段训练课程。

架构。 冻结的 SigLIP-so400m 视觉编码器(27×27 共 729 个 patch token,无 CLS)接一个两层 MLP 投影器(约 13.1M 参数),再接 VectraYX-1B 解码器:22 层、dmodel=2048、GQA、SwiGLU、RMSNorm、词表 32768,共 1.04B 参数。视觉 token 用 LLaVA 式占位符替换塞进序列,和文本 token 一样被解码器消费。

四阶段课程。 前三阶段继承自 VectraYX 文本线的语言训练(西语预训练 9.2B token、三块混合课程约 50B token、工具特化约 6B token),第四阶段才是视觉:4a 对齐(只训投影器)、4b 指令(投影器+解码器,6:4 视觉/文本回放)、4c 思考+工具(5:5,含思维链和工具调用轨迹)。视觉阶段总共约 16M token,在 2×A100-40GB 上约 2.2 小时跑完。

回放防遗忘。 每个视觉子阶段都掺入文本回放数据,比例从 4b 的 40% 到 4c 的 50%,防止解码器在学看图时把已有的西语和工具能力忘掉。

真正值得展开的是两个设计,也是这篇为数不多的「真东西」。

第一个是原生 token。<|think|>、</think>、<|toolcall|> 这些是直接进词表的特殊 token,模型在 4c 阶段被训练成「看完截图先开一段思考再回答、必要时发工具调用」,顺着模型已有的生成走,而不是靠提示词格式临时凑。原生 token 意味着推理和工具调用是训练出来的能力,不是提示词技巧。

第二个是 NoPE 与视觉这个悬而未决的架构问题。解码器骨干有个少见设计:每四层里有一层不用位置编码(NoPE,无位置编码),其余三层用 RoPE。当 729 个视觉 token 作为连续块塞进序列时,RoPE 层会按一维序列顺序给它们打上旋转相位,但 patch 本是二维网格、没有天然的线性次序,行优先展开硬塞了一个「token i 在 token i+1 前」的伪关系;NoPE 层不施加次序,对这组视觉块是排列等变的。到底 NoPE 对视觉注意力是帮手还是累赘,迄今没有哪个发布的 VLM 同时用过 NoPE 骨干和视觉注入,所以没人测过。作者把它做成一个可证伪的三变体消融(V0 保留 NoPE、V1 全 RoPE、V2 NoPE 加学习的二维位置编码),用 B6(V0) 减 B6(V1) 在空间结构强的截图上的符号,来分辨两种竞争假设。

结果

先把话说在前:这个模型的视觉能力目前约等于没有。表 5 的 B6vision(在 50 张留出截图上认工具、答对关键事实)显示,最好的那次运行(v3B,1900 步)工具识别只有 0.08,答对 0.06。对照之下 GPT-4o 工具识别 0.940(能力上限),Phi-4-multimodal(4.5B)0.440。模型能吐流畅的西班牙语,但基本无视图像内容。

一个关键的控制实验守住了基准的合法性:把图去掉、只给问题文本,同一个骨干的工具识别掉到 0.02、答对 0.00,和带图的成绩不可区分。这说明这些题光靠文本猜不出来,必须看图,所以是模型没学会看,不是题太水。

模型B6 工具识别B6 答对
GPT-4o(上限)0.9400.000
Phi-4-multimodal 4.5B0.4400.000
VectraYX-Vision-1B(最好,v3B)0.0800.060
同骨干,去图(控制)0.0200.000

文本侧的回归检查(Table 4)证明视觉阶段没有毁掉语言和工具能力:4a 阶段(解码器冻结)完全无回归;把词嵌入表(tokemb)解冻后,工具选择 B4 反而升到 0.110,超过视觉化之前的阶段最高 0.075。作者由此定位到 v3B 那次退化的真因是冻结了 tokemb,模型需要可训练的嵌入表才能稳定吐出 <|toolcall|> 序列。

效率这条成立,且与视觉微调无关:1B 解码器导出 GGUF,F16 约 2.2GB、4-bit 约 0.6 到 0.7GB,加 mmproj(编码器+投影器)约 0.8 到 0.9GB,合计塞进 4GB 以内,远低于大 VLM 的 14GB 以上。在无 GPU 的普通 CPU 机器上(Azure D8sv3)F16 解码约 18.5 token 每秒,加载不到 10 秒。

为什么重要

对从业者,这篇的价值不在「又多一个能用的安全 VLM」(它还远不能用),而在三件可迁移的东西。一是诊断坑:作者发现早期检查点全是近零分,一度以为是训练崩了,真因是检查点加载器的 bug,导出时没去掉键名里的 llm. 前缀,导致推理时大模型权重一个没匹配上、整层停留在随机初始化(嵌入范数 164,正常应约 630)。训练本身没错(优化器更新的参数是对的),但所有从受影响检查点测出来的指标都无效。这个 bug 适用于任何 LLaVA 式的导出管线,「嵌入范数」是个一行就能查的诊断。

二是剂量警示。视觉对齐加轻量指令这套 VLM 标准配方,在 16M token 的视觉数据量下根本不够让模型学会看安全截图。想复刻小 VLM 的人别指望几百到两千步就出视觉能力。作者的补救方案是更长的 SFT、至少 60% 回放、更低的解码器学习率。

三是 NoPE 与视觉这个真问题。随着 NoPE 在文本解码器里因为长度外推被越来越多采用,把这些解码器按标准配方改造成 VLM 时,这个交互会反复出现。一个干净的测量,哪怕是负的,对后续每个建在 NoPE 家族骨干上的 VLM 都有参考价值。

局限与存疑

作者在第九节把局限说得很重,重到「审稿人应该拿它去权衡贡献」。逐条记下。

负结果待补救。 当前的近零 B6 是真实的训练不足,不是 bug。补救后的正式数字、NoPE 消融(V0、V1、V2)的结果、完整的视觉化后 B1 到 B5 回归表都还没有,这次只发了设计、检查点和运行器,没发结果。这篇最有看点的 NoPE 悬念,答案还没有。

合成 QA 的有效性。 语料大多是 LLM 生成的,两个已知风险:答案泄漏(问题文本暗示了答案)和答案事实错误。论文还没做人工抽审,正式发表前需要一份至少 200 题的专家标注、带标注一致性。这也是为什么那个去图控制实验是强制性的。

合成图与真实图的差距。 大量图是程序渲染的 IDA、Ghidra、Wireshark 界面,缺真实工具的边框、字体、配色、布局噪声。在合成图上表现好不代表真实截图上也好,而真实截图子集很小,这个差距没量化。

单种子。 完整四阶段课程一次跑要约两周独占 2×A100,单作者、无机构挂靠的项目跑不起四种子,所有数字都是单次运行的,只靠检查点轨迹和逐题自助法区间来部分补偿。B6 只有 50 题,种子方差被低估。

安全层面(视觉提示注入、工具过度触发)作者只划成未来工作,没做评估;工具调用配置要等安全数字出来才发布。

术语

原文与代码

相关论文

全部论文解读