top of page

RP2040 绘图模型执行精确程序,但 AI 仍留在主机端

2小时前
讀畢需時 13 分鐘

RP2040 绘图模型为 12,670 次硬件测试生成了紧凑程序,但其拥有 825,344 个参数的 transformer 从未在微控制器上运行。相反,主机计算机生成绘图字节码,并将其发送至 Raspberry Pi Pico 进行确定性执行。

这一差异界定了该项目的价值与局限。它并非又一次宣称微型设备能够在本地运行实用生成模型的尝试,而是一项将不确定的神经生成与精确、受约束的执行分离开来的实验。

该系统挑战了常见的像素生成路径。它提出的问题是:小型 transformer 能否编写可执行描述,再将其交给一台行为可预测的极简机器。硬件结果看起来异常干净,但模型组合陌生结构的能力仍远没有那么确定。

RP2040 绘图模型将生成与执行分离

核心成果是一种分工,而非设备端神经推理。

根据项目的公开仓库,一个拥有 825,344 个参数的自回归 transformer 运行在主机计算机上。它为每个示例生成约 100 字节的绘图字节码。

字节码是一种由另一程序解释的紧凑指令格式。在这里,它描述了移动虚拟画笔、绘制线条、计算曲线、应用整数变换以及重复有限序列等操作。

主机将该程序传输至 Raspberry Pi Pico。一台小型虚拟机(VM)在 Pico 的 RP2040 微控制器上执行这些指令,随后通过 UART(一种标准串行通信接口)回传几何坐标。

最终图像来自这些返回的坐标。Pico 不存储 transformer 权重、不运行矩阵密集型神经推理,也不需要 tensor 运行时;它只解释生成的程序。

这一边界十分重要,因为“模型运行在 RP2040 上”这一说法会暗示另一种技术成就。拥有 825,344 个参数的模型,在采用常规数值格式时,尚未计入运行时内存就可能需要数 MB 空间。

项目作者明确避免了这一说法。 原始讨论称,transformer 留在主机端,而 Pico 负责存储并执行其输出。

发布的演示模型涵盖五类对象:猫、公交车、花朵、帆船和自行车。它并未被定位为开放式文生图系统。

这种狭窄范围使结果更易于解读。该实验研究表征、程序生成和受约束执行,但并不宣称具备广泛的视觉知识。

模型输出的是指令,而非彩色像素网格。这在概率性 AI 与确定性嵌入式软件之间建立了一个有用接口。

像素生成器直接对可见结果作出承诺;程序生成器则提出一个序列,供另一系统验证、限制、执行或拒绝。

这种差异构成了本文的核心张力:硬件执行看似精确且经济,但精确执行并不保证生成的程序表达了预期的绘图。

Pico 可以完美执行一个糟糕的自行车程序。如果 VM 实施了适当限制,它也能可靠地拒绝格式错误或过长的序列。

换言之,执行正确性与生成正确性是两种独立属性。该项目同时衡量了两者,而结果指向不同方向。

精确执行是最强成果

Pico 始终与参考解释器一致,不过这些测量数据来自项目自身的测试产物。

作者称,在一次硬件测试中执行了 12,670 个生成程序。每条返回轨迹都与 Python 参考 VM 完全一致。

轨迹是程序生成的有序几何数据。完全匹配意味着设备和参考实现返回了相同坐标,而不只是生成了看起来相似的图像。

项目的实验记录报告称,全部 12,670 条轨迹均实现零容差相等;同时还列出 120 个 conformance 程序全部通过,并与 QEMU 基准保持一致。

这些是第一方结果,并非独立复现。不过,仓库提供了解释器、测试结构、采集的轨迹和技术审查所需的文档。

据称,C 解释器占用 1,862 字节 flash。该数字仅覆盖 VM 本身,不包括字节码存储和外围传输框架。

实现没有为 VM 状态静态分配 RAM。在测得的配置下,峰值栈使用量为 492 字节。

在特意降至 12 MHz 的 RP2040 时钟下,报告的平均值为每幅绘图 7,334 个周期。这对应于测得 QuickDraw 程序约 0.611 毫秒的执行时间。

作者还报告了每条执行指令 1.959 个周期。这些测量涉及解释器工作,而非主机生成程序所需的时间。

它们同样不包括主机到设备的传输时间和显示工作。读者不应将 0.611 毫秒视为端到端生成延迟。

RP2040 是一款双核 Arm Cortex-M0+ 微控制器,配备 264 kB 片上 SRAM。Raspberry Pi 在其 RP2040 文档中列出的最高时钟频率为 133 MHz。

该芯片没有硬件浮点单元。由于曲线和变换通常使用分数坐标,这一限制常会使图形代码更复杂。

该 VM 通过定点表示避免浮点运算。定点数将分数值作为经缩放的整数存储,从而在不同实现中产生可预测的结果。

曲线计算器利用了 2 的幂次步数。在这一限制下,相关三次 Bézier 系数可以表示为具有已知分母的二进制分数。

该实现选择足够多的小数位,以在整数计算期间保留这些值。这一设计消除了测量几何路径中的跨平台舍入差异。

确定性算术也使比较格外严格。测试不需要图像相似度评分,也不需要为每个顶点设置容差。

参考实现与设备要么输出相同轨迹,要么不相同。这种二元结果比对视觉相似性的主观评估更容易审查。

实体测试至少发现了一类主机模拟未能捕捉的问题。项目文档描述了裸机启动期间外围时钟初始化的竞争问题。

这一观察支持了在硅片上测试的决定。解释器在数学上可以正确,但其传输或启动流程在实际开发板上仍可能不可靠。

不过,当前证据仍有明确边界。由于测试平台缺少合适的电流测量设备,作者没有测量每幅绘图的能耗。

仓库也未附带训练好的 checkpoint。用户可以运行 VM 并重放记录的采集结果,但实时模型生成仍需要单独获取 checkpoint。

这些限制并未抹去执行结果。它们界定了外部审查者能够立即复现的内容,以及仍依赖作者材料的部分。

程序提供像素无法实现的控制力

可执行输出让受约束运行时能够检查和管理模型行为。

绘图程序暴露操作、控制流和几何结构;栅格图像只暴露像素的最终排列。

这种差异对小型设备尤为重要。运行时可以施加 fuel limit,即在终止前允许执行的最大指令数。

它还可以限制循环嵌套、调用深度、变换深度、坐标范围和输出量。即使模型生成了错误序列,这些约束也能让生成行为保持有限。

该项目的 VM 流式输出顶点,而不是存储完整绘图。这降低了工作内存压力,也符合为实时控制设计的设备特性。

这种方法类似于其他将规划与执行分离的系统:更大型机器执行昂贵推理,而更小型控制器遵循紧凑的中间表示。

这一模式已出现在机器人、计算机数控、绘图仪和嵌入式接口中。此处不同寻常之处在于,使用一个参数不足百万的 transformer 来生成中间程序。

绘图字节码尤其适合这一实验。线条、曲线和重复图案具有可见结果,但其执行仍比通用编程语言更简单。

格式错误的图像预测只会产生不美观的图像;格式错误的程序则会引出关于终止性、有效性和运行时安全性的额外问题。

VM 通过刻意受限的指令集回答其中一部分问题。它不提供任意内存访问或通用操作系统服务。

这使系统更接近领域特定语言,而非普通的生成代码。领域特定语言支持狭窄任务,危险或模糊的操作更少。

结果是一份受约束的契约:模型提出一幅绘图,而解释器在固定规则下决定这些字节的含义。

这种契约创造了超越草图的机会。类似安排或许可以表示刀具路径、笔式绘图仪命令、LED 图案、简单动画或受限的界面布局。

不过,这些应用都需要各自的验证。在 Pico 上实现精确几何,并不能证明电机运动安全,也不能证明对实体机械的控制可靠。

目标领域也将决定哪些错误至关重要。略有瑕疵的花朵无害,而格式错误的执行器路径可能损坏设备。

因此,该项目最具可迁移性的理念在于架构。概率性生成可以置于可信执行边界之外。

嵌入式组件可以保持小巧、可测试和确定性。它无需继承提出程序的模型所具有的复杂性。

这种分离也改变了开发者调试故障的方式。他们可以检查生成的字节、在 Python 中重放、比较轨迹,并隔离设备特定行为。

像素管线常将结构隐藏在神经激活中;程序管线则留下具有明确操作含义的产物。

该产物可以被记录和版本化,也可以在设备接收之前依据已知规则进行检查。

对工程团队而言,这更像编译器管线,而非图像生成器。模型充当不确定的前端,而 VM 则充当严格的执行后端。

这一类比不应被过度延伸。传统编译器转换定义明确的源文本,而这个 transformer 则从学习到的分布中采样程序。

不过,这一边界仍然具有价值。它让传统软件组件能够决定生成输出可以执行什么操作。

小模型程序生成在组合能力上仍会失败

解释器能够精确执行,但 transformer 无法可靠地生成精确且陌生的关系。

该项目的实验表明,较低的预测损失并不会自动带来可靠的采样程序。这一差距正是应将其视为研究而非成熟系统的主要原因。

基础的扁平自回归模型报告的收敛测试损失为每幅图 489.2 比特。测试损失衡量的是预测不确定性,而非采样出的图形是否满足所需的几何关系。

作者在大致相同的参数预算下测试了多种表示方式,包括字节、单独的比特、类型化 token,以及相对坐标增量。

在合成程序语料库上,比特表示的表现与字节大致相当。报告的差异为每幅图负 0.67 比特,不确定性为正负 0.77 比特。

但在来自 Google Quick, Draw data 的人工草图上,结果发生了变化。在那里,位级建模带来了每幅图 11.58 比特的报告损失,不确定性为正负 0.60 比特。

比特还将评估序列长度扩大了八倍。该实验处理了 2.54 亿个比特 token,而字节 token 为 3200 万个。

报告的评估时间从字节表示的四分钟上升至比特表示的 48 分钟。在文档所述的配置中,这超过了八倍的减速。

这种对比削弱了“更小的词表总能帮助小模型”这一简单论断。双符号字母表降低了嵌入成本,却迫使网络恢复字节边界和字段结构。

合成模式显然让这种恢复变得可控。更加多样化的人工草图则没有产生同样的结果。

类型化 token 引入了另一项权衡。它们更明确地绑定操作码与操作数角色,但更大的词表会占用小型参数预算中的相当大一部分。

在一个宽模型中,嵌入表占全部参数的 22%。该配置比对照组每幅图差 4.87 比特。

深而窄的模型更有效地吸收了词表成本。这表明,在百万参数以下的规模中,表示方式与架构之间存在强烈交互。

最具启发性的失败涉及重复几何图形。模型学会了训练数据范围内可预测的重复模式。

当它遇到一个已知图案的第二个副本时,其惊讶度下降了 74%。在一个报告的配置中,恢复指标达到 0.807。

然而,到了第五个副本时,性能便崩溃了——这恰好比训练中的最大重复次数多一次。模型看起来学到的是计数分布,而不是抽象的循环规则。

该项目还在 teacher forcing 条件下测试了几何兼容性。Teacher forcing 指的是在提供真实的前序序列后,评估下一个正确元素。

在这一设置下,兼容的延续在每个目标字节上获得了 4.28 比特的显著优势。报告的校正后显著性水平为 0.001。

自由采样则产生了截然不同的结果。在测试的组合形状上,精确完成的成功率仅约为 1%。

在更简单的扁平步骤案例中,成功率介于 7% 到 13%。模型能够在给定上下文时识别兼容的延续,却很少能自行构造完整的延续。

这种脱节是当代生成式建模的核心问题。token 级偏好可能看起来很有说服力,但在自主采样过程中,微小的局部错误会不断累积。

每个采样输出都会成为下一次预测的上下文。一个错误的坐标、操作码或长度决策,就可能让序列偏离训练期间遇到的条件。

RP2040 无法修复这种语义失败。它能够精确执行生成的程序,但精确执行也会保留其中的错误。

分层规划比似然更能改善长度控制

加入显式结构改善了终止表现,但在该项目的主要损失指标下,图形的概率反而更低。

作者在相同的 825,344 参数预算下,将扁平 transformer 与分层设计进行了比较。这些系统先预测笔画摘要,再为每一笔生成详细的字节码。

一个规划器使用自回归。另一个使用 diffusion,通过重复去噪步骤,将噪声逐步转换为结构化预测。

两种分层变体相较于扁平模型,每幅图均落后约 40 到 55 比特。具体损失因规划器类型和计算预算而异。

因此,该实验否定了“分层规划会在相同规模下改善似然”的假设。更显式的结构带来了可测量的建模成本。

不过,规划器对输出长度的控制更准确。根据配置不同,其长度分布误差介于 1.8 到 3.5 字节。

扁平模型对应的差距则在 7.0 到 13.6 字节之间。它更可能过早停止,或持续生成至允许的最大长度。

这并非无关紧要的实现细节。生成的程序必须在合理边界处终止,才能成为有用的命令。

平均似然更高的模型,如果给过早终止分配了过多概率,仍可能产生不便使用的样本。它也可能生成冗长、重复的尾部内容。

分层结构将笔画数量与局部笔画构造分开。这一显式决策改善了生成长度的分布,尽管总似然有所下降。

在共享的摘要表示上,diffusion 相比自回归规划器没有展现出明确优势。终止表现的提升来自分层,而不是去噪。

后续的指令集实验呈现出类似模式。显式的重复与变换操作带来的直接压缩有限,因为模型已经能够以较低惊讶度预测重复几何图形。

不过,更短的序列改善了上下文利用和终止表现。报告的生成长度误差降至 9% 到 11%。

可比的扁平模型误差则在 41% 到 112% 之间。这些是第一方实验测量结果,但它们揭示了一种有意义的设计张力。

一种表示方式可以帮助生成,却未必能在传统测试损失上获胜。反过来,较低的损失也不保证采样时能生成结构良好的程序。

这种张力应塑造未来的评估方式。研究人员需要针对有效性、精确关系完成、终止、新颖性和执行行为的指标。

视觉质量依然重要,但不能单独作为标准。两幅图可能看起来相似,而它们的程序在长度、结构或复用方面却存在显著差异。

记忆化是另一个尚未解决的问题。小模型可以复现熟悉的图案,却不一定学会生成这些图案所需的变换。

该仓库记录了针对位置、邻近性、频率和坐标集合的控制实验。这些检查增强了关系实验的可信度,但无法判定整个训练语料库中的新颖性。

更完善的发布应包括检查点、训练清单、生成样本、最近邻分析,以及可重复执行的端到端脚本。

多个独立训练随机种子也能进一步说明哪些行为能跨初始化变化而保持稳定。一些分布外重复实验的结果在不同随机种子之间已经出现明显分歧。

当前项目没有隐藏负面结果,而是对其进行了报告。这很有价值,因为这些失败揭示了紧凑模型在哪些地方不再像符号推理器一样工作。

接下来应验证什么

下一个里程碑并不是扩充图集,而是证明显式关系能够改善未见程序的生成。

该项目当前的方向是加入 copy-or-emit 操作。模型既可以生成普通字节,也可以通过仿射变换引用较早的源片段。

仿射变换可以在保持直线不变的同时,对几何图形进行平移、旋转、反射或缩放。在该系统中,支持的操作仍将基于整数,并可由现有风格的 VM 执行。

这一提案直接针对 teacher-forcing 差距。模型似乎已经对兼容的关系上下文敏感,但自由采样很少能精确完成这种关系。

显式操作可能减少复现经变换图案所需的独立决策数量。一个正确的关系可以取代许多脆弱的坐标预测。

首先应关注的信号是其在未见组合上的表现。模型应生成训练中被排除的精确关系,而不只是压缩熟悉的重复形状。

评估应在匹配的参数和训练预算下,对比扁平生成与 copy-or-emit 行为。精确自由生成的成功率比单独的 teacher-forced 偏好更重要。

如果未见关系完成率显著高于报告的 1% 水平,该机制的可信度将得到增强。如果只有似然改善,核心生成问题依然存在。

第二个信号是对硬件扫描结果的独立复现。该项目提供了源代码和捕获的工件,但目前尚未打包模型检查点。

外部开发者应能够重新构建解释器,运行一致性测试套件,将生成的程序发送到 Pico,并复现位级一致的执行轨迹。

这一过程应报告编译器设置、时钟配置、传输开销和完整的内存核算。它还应区分解释器的 flash 占用与固件总大小。

成功复现将增强执行层面的论断。不一致则有助于识别结果是否依赖工具链、开发板版本或未记录的设置细节。

第三个信号是端到端资源测量。当前的 0.611 毫秒数据涵盖的是 12 MHz 下的 VM 执行,并不包括主机推理或串行传输。

实际演示应分别衡量生成时间、验证时间、传输时间、执行时间和渲染时间。能耗测量也将进一步说明嵌入式阶段的成本。

这些测量不会让该项目变成端侧 AI。它们将说明这种分离式架构是否提供了有价值的系统权衡。

即使在完成这些测试前,更大的启示似乎已经可信:小型生成模型可以生成可执行的中间表示,而微小的确定性运行时可以强制执行严格的操作规则。

尚不明确的是,模型能否在熟悉组合之外生成正确结构。硬件的精确性只能解决这个问题的最后一个阶段。

因此,评估 RP2040 绘图模型的开发者应提出两个独立问题。Pico 是否能精确执行每一条有效指令?transformer 是否能可靠地写出预期程序?

现有证据对第一个问题给出了强有力的第一方答案。对第二个问题,它提供的答案则谨慎得多。

关注 copy-or-emit 实验、可复现检查点的发布,以及一次独立的 Pico 运行。这三项测试将决定它会成为可复用的设计模式,还是停留在富有启发性的研究原型阶段。

 
 

免费开始

一款本地优先的AI助手

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

你的 AI 工作伙伴

remio 一起高效工作

规划、创作、交付

一站式完成

bottom of page