把一个开源 AI 决策模型装进一块 RISC-V 主板,不联网、不用 GPU,就能实时陪人下五子棋。这是我们在 DC-ROMA Mainboard III 上的一次尝试:让与 Jev 接口兼容的决策模型 Laya 在主板的 AI 核上本地运行,驱动一个完整的端侧交互应用。
这套方案的几个亮点:
完全离线:模型和推理库都在板上,断网也能用,对弈数据不出设备。
跑在 AI 核上:推理交给 SpacemiT K3 的 A100 AI 核,人落子后约 0.46 秒 Laya 就应手。
决策透明:Laya 每一手考虑了哪些点、给每个点多少概率,都直接画在网页棋盘上。
有实际棋力:Hard 档对规则 AI 下 6 局赢 5 局。
开源可复现:代码和中英文部署文档都在 GitHub,四条命令就能装好。
下面依次介绍:Laya 是什么、为什么要放在端侧、它怎么在主板上跑起来,以及一个「只会做选择题」的模型怎么下五子棋。
01
类 Jev 的 Laya 是什么
Jev 是 TypeSafe 推出的一种「System One」决策模型服务:你发给它一段状态(一封邮件、一张工单、一段 JSON)和几道带类型的问题,它直接返回带类型的答案,而不是一段生成的文字。Jev 是闭源的云端 API。
Laya 是 convaiinnovations 在 Hugging Face 上开源的同类模型,采用 Apache-2.0 许可,可以商用。所谓「类 Jev」,是指它的请求和响应格式与 Jev 一致:它自带的 laya-serve 会开放和 Jev 同样的 POST /v1/systemone 接口,原来调 Jev 的程序只要改一下服务地址就能切到 Laya。区别在于,Laya 的权重可以下载到本地、完全离线运行。
Laya 只回答三种题型:
题型 | 问法 | 返回 |
choice (选择) | 给出几个带说明的选项 | 选中的选项 + 每个选项的概率 |
score (打分) | 给出一组等级 | 分数 + 各等级概率 |
noul (是非) | 一个是非问题 | 「是」的概率 |
它的几个特点:
不生成文字:一次前向计算就给出全部答案,没有解析失败,也不会「编造」内容。
概率可信:用强化学习配合「严格适当评分规则」训练,官方称为 RLCD。模型只有报出真实的把握程度才能拿到最高奖励,所以它给的概率可以直接用来做决策。
多语言:我们用的是 multilingual 版。它基于 mmBERT-base 编码器,约 3.2 亿参数,支持 100 多种语言,权重文件 643 MB。
按模型页公布的对比(Jev 的数据来自第三方公开测试,样本和提示词不完全相同),Laya 在选项较少的分类任务上准确率略高于 Jev,单题延迟快约 7 倍。在选项超过 20 个的任务上,Jev 仍然领先。
可以把 Laya 理解为一个「会做选择题的小模型」。它很适合分流、打分、守门这类需要稳定、快速、可审计的决策,而不是用来聊天或写文章。
02
为什么要放在端侧
决策类任务的特点是调用频繁、要求响应快,很多还涉及不方便外传的数据。把决策模型放到本地设备上,和调用云端 API 相比有这些区别:
关注点 | 云端决策 API | 板上的 Laya |
网络 | 每次请求都要联网 | 断网也能用 |
延迟 | 包含网络往返 | 推理约 0.22 秒,全在板上 |
数据 | 内容要发给服务方 | 不出设备 |
成本 | 一般按调用计费 | 部署一次,没有调用费用 |
可控性 | 模型闭源 | 权重开源,可以微调 |
Laya 本身只有 3 亿参数,又不生成文字,一次前向计算就出结果,恰好适合算力有限的端侧设备。
03
平台:DC-ROMA Mainboard III 与 K3 的 AI 核
DC-ROMA RISC-V Mainboard III 搭载 SpacemiT K3 芯片。K3 的 16 个核分成两组:
8 个 X100 通用核:跑系统、规则搜索和网页服务
8 个 A100 AI 核:带 AI 扩展指令,配合片上 TCM 内存做矩阵运算
SpacemiT 提供了自己的 ONNX Runtime 和执行后端(SpaceMIT EP),可以把模型推理交给 A100 核。Laya 在这块板子上使用 4 个 A100 核(编号 8、10、12、14)。
我们的主板装的是 Ubuntu 26.04(riscv64、定制内核 6.18.3、Python 3.14),不是 SpacemiT 官方的 Bianbu 系统。下一节讲到的几个问题,大多来自这个差异。
04
本地离线部署
部署完成后,运行时不需要任何网络:模型、分词器、推理库都在板子本地。模型加载约 25 秒,运行时内存约 2 GB。
把 Laya 搬到这块板子上,主要解决了四个问题:
AI 核运行库不装进系统。 SpacemiT 的 TCM 包依赖 Bianbu 的通用内核,用 apt 安装可能替换掉主板的启动内核。我们从 SpacemiT 官方软件源下载三个包,用 dpkg-deb -x 解压到项目自己的目录,只对这个程序生效。删掉项目目录就能完全卸载。
模型在电脑上下载。 板子访问不了 Hugging Face。我们在 PC 上下载好模型,通过 SFTP 拷过去,安装脚本会逐个校验 SHA256。
绕过 Python 3.14 的兼容问题。 Ubuntu 26.04 自带 Python 3.14,PyTorch 2.9 在这个版本上不支持 torch.compile,导入编码器会直接报错。导入时临时把它替换成空操作即可,不影响模型计算。
推理交给 AI 核。 同一个模型用 PyTorch 在通用核上跑,一次问三道题要约 50 秒;换成 ONNX FP16 版本、交给 A100 AI 核后,一次五子棋决策的推理约 0.22 秒。两次测试的输入长度不同,不能严格对比,但可以看出用上 AI 核是能实时交互的关键。
在五子棋之前,我们先用 Laya 玩贪吃蛇验证了这套部署:连续 1200 步零死亡,每步平均 117.5 毫秒。
05
交互场景:和人下五子棋
Laya 不会自己「算棋」,它只会做选择题。所以我们把下五子棋拆成了一道道选择题:规则程序负责「出题」,Laya 负责「选」。
每一手分五步:
规则列候选。 找出棋子附近的空点,识别双方在每个点能形成的棋型(成五、活四、冲四、活三……),并搜索「连续冲四必胜」。
Hard 档再搜一层。 对方有连续冲四必胜时,只保留能破解它的点;每个候选再往后看一步对方最强的应手,重新排序,只留前 3 个。
写成选择题。 局面写成一句英文,每个候选点配一句描述,例如「Makes an open three. Leaves the opponent no strong reply.」,并标上搜索排名。
Laya 选择。 这道 choice 题交给 A100 AI 核上的 Laya,它为每个候选给出概率,取最高的。
保护层兜底。 能成五必下,对方要成五必堵,对方有活三等必胜威胁时只允许应对。Laya 选了不安全的点,就换成允许范围内它概率最高的点。
玩家在同一局域网的电脑或手机上打开网页就能下。网页会把 Laya 每一手考虑过的候选点和概率画在棋盘上,输赢时弹窗提示。网页可以切换执黑执白和 Normal / Hard 两档难度。
06
实测数据
在 DC-ROMA Mainboard III 上进行,使用 4 个 AI 核线程。对手是规则 AI(一步评估加连续冲四搜索),每档下 6 局,Laya 轮流执黑执白。
Laya 难度 | 胜 / 和 / 负 | 每手总耗时 | 其中 Laya 推理 | 保护层介入 |
Normal | 1 / 3 / 2 | 279 ms | 243 ms | 64 次 |
Hard | 5 / 0 / 1 | 463 ms | 222 ms | 0 次 |
几个值得说明的观察:
交互足够流畅。 人落子后不到半秒 Laya 就应手。
Hard 档的提升来自更好的选项。 只给 Laya 3 个经过搜索的强点,并在描述里标出排名之后,保护层一次都没有介入,每一步都是 Laya 自己选的安全的点。不写排名时,同样的搜索只能下成和棋。
Laya 单独下棋会输。 关掉保护层、完全由 Laya 决定时,它连最弱的规则对手都会输,因为它会漏看对方的威胁。
所以更准确的说法是:规则搜索负责「算」,Laya 负责「理解描述并做选择」,保护层负责「不犯错」。 三者组合起来,才是一个稳定的端侧自主交互体。
07
还能怎么玩
五子棋只是一个例子。核心套路是「规则出题、Laya 选择、保护层兜底」,换一种出题方式就是一种新玩法:
其他棋类和小游戏:规则列出合法走法,Laya 挑一步。贪吃蛇已经在同一块板子上验证过,连续 1200 步零死亡。
本地客服与工单分流:判断意图、紧急程度、要不要转人工,客户数据不出设备。
设备端自动化:把传感器状态写成一句话,让 Laya 选下一步动作,比如告警等级或运行档位。
和本地大模型搭配:同一块板子上还能跑 Qwen 这类生成模型。让大模型负责「说」,Laya 负责「判」,比如先用 Laya 判断用户意图,再决定交给哪个大模型工具。
替换云端 Jev:接口兼容,原来调用 Jev 的应用改一下地址就能换成本地的 Laya。
08
结语
Laya + DC-ROMA Mainboard III 说明了一件事:端侧 AI 不一定要靠大模型。一个 3 亿参数、只会做选择题的决策模型,配上主板的 AI 核和一层规则搜索,就能做出实时、离线、决策过程完全可见的交互应用。
项目已开源。在主板上执行下面四条命令即可部署,安装脚本会自动下载并校验运行库和模型;板子连不上外网时,也可以在电脑上下载后离线导入。装好后用电脑或手机浏览器打开 http://<板子IP>:8082 就能开始对弈。

TechyLX/laya-gomoku-k3:本文项目,含中英文部署文档
convaiinnovations/laya:Laya 模型与模型卡(含与 TypeSafe Jev 的对比和 Jev 兼容接口说明)
mizchi/laya-multilingual-onnx:Laya 多语言版的 ONNX 导出
JiongLab/laya-snake-k3:Laya 在 K3 上玩贪吃蛇,AI 核加载方式参考自该项目

·END·

抢先体验

预购正式开启,支持 RVA23 的下一代 RISC-V 平台,专为开发者和生态系统贡献者设计。
请立即预订您的设备,锁定首批出货名额。
扫描下方二维码了解更多

DC-ROMA RISC-V Mainboard III

往期回顾
