投稿
← 一起学应用专题 / LAYA 02

开源模型动手课 · 从判断到验证

这次,把模型
放到自己电脑上。

还是那句“我不懂向量”。
这次我们给 Laya 三个选项,看看它能否选对。

先准备一道测试题 ↓

网页可准备实验;真实推理需在电脑运行脚本。本页尚无本机模型实测成绩。独立专题,暂不计入基础课进度。资料核对:2026-09-21。

它跟聊天大模型、Jev 有什么关系?

聊天模型 / 写出解释

“向量可以理解为一组数字……”

你希望得到一段讲解。模型逐步生成文字,组成答案。

本节决策模型 / 选出入口

concept → 解释概念

你给它一句求助和三个候选入口。它对选项做判断,交给程序使用;选中入口并不等于已经讲完课程。

上一节 Jev 演示“拿到判断后,程序怎样分流”。Laya 是另一个开源决策模型项目,代码和权重采用 Apache-2.0 许可,可以尝试本地运行和微调。两者面向相似任务,不能据此认定内部实现或效果相同。Laya 官方仓库 ↗

专业层:向量课学的东西,用在了哪里?

文本先被切成 token,再表示成向量;编码器利用上下文更新这些表示,决策头为候选选项打分,再转成概率分布。这把“向量 → 模型计算 → 输出判断”连了起来。Laya 使用编码器与决策头,不是把上一节手写的二维矩阵直接当作完整模型。

本节选多语言检查点,使用 mmBERT 编码器。Choice 用来选项,Score 用来评分,Noul 用来判断命题;今天只做 Choice,先弄懂一种。结构与检查点说明 ↗

01 / 先由你出题

实验准备器 · 未运行模型

先写下你的答案,再让模型作答

这样才能知道模型选得对不对。你的预期只用于之后核对,不会作为提示交给模型。

  1. 输入 / 你写的问题一句学习求助

    只传题目和三个选项给模型。

  2. 作答 / 本机 Laya等待运行

    网页不猜答案,也不编造置信度。

  3. 核对 / 你的预期解释概念

    答对一题,不能证明它一直可靠。

题目已准备好。下载后,按下一步在电脑上运行。

专业层:传入脚本的 JSON,包含哪些字段?

state 是输入;questions 定义选项;expected 是你写的核对答案。脚本调用 predict 时只传前两项。

02 / 真正在电脑上跑

先检查题目,再加载真实权重

下载脚本,和刚才的 laya-request.json 放在同一个文件夹。下面是 Windows PowerShell 命令,在该文件夹打开终端执行。

下载 Python 实验脚本 ↓

① 检查输入:不安装模型,也不联网

python laya_lab.py --input laya-request.json

输出 prepared_only 代表题目检查通过;这一步没有预测结果。没下载题目也可直接运行 python laya_lab.py,检查内置的概念题。

② 建立独立环境,再运行模型

python -m venv .venv
.venv\Scripts\python -m pip install laya
.venv\Scripts\python laya_lab.py --run --input laya-request.json --output laya-result.json

脚本以 CPU 为默认设备,调用官方 SDK,加载多语言检查点。第一次运行会联网下载权重和依赖模型文件,需要磁盘空间和等待时间;推理在本机进行。本教程没有完成真实模型安装、推理或硬件测速,不能保证你的环境一次安装成功。

安装或推理失败会报错退出,不会换成预设答案。成功后报告包含模型原始返回、实际设备、耗时,以及是否符合你的预期。耗时来自你这次运行,首次加载耗时与推理耗时分开记录。

专业层:实际执行哪几行?怎样尝试 GPU?
agent = laya.load("convaiinnovations/laya",
                  subfolder="multilingual", device="cpu")
result = agent.predict(request["state"], request["questions"])

中文题选择 multilingual 子目录。已配置支持 CUDA 的 PyTorch 时可加 --device cuda;SDK 可能回退到 CPU,请看报告的 device_actual,不要只看命令。设备和依赖要求以官方文档为准。

下载后的原始报告字段可能随 SDK 更新。脚本会记录 SDK 版本并验证选项与概率;置信度不能直接读作“答对概率”。加载与推理实现 ↗

03 / 不只会跑,还要会检验

错了,才是下一步学习的起点

  1. 换题。把“向量是什么”换成“向量代码运行报错”,再试一句“这个不行”。先写预期,再运行,记录分错的原因。
  2. 比较。准备一批未用来改提示的题,对比简单关键词规则与 Laya。统计正确数 / 总数,并单独查看含糊题。
  3. 再谈微调。当某类问题反复判断错,再整理训练样本;把训练集、验证集、最终测试集分开。提示修改、门槛调整与更新模型权重是不同的操作。
专业层:接下来怎样学微调?

从官方 notebook 读起:看数据怎样表达题目、候选与标签,训练更新了哪些参数,如何在留出的数据上评估和校准。该 notebook 是 typed-decisions 任务训练范例,并非我们的中文课程数据;迁移到中文需另行设计数据、检查点和评测。

打开官方微调 notebook ↗

本节完成的是推理实验入口与微调导读,尚未在本机复现训练。

看到“比 Jev 更强”,先看比较条件

项目作者说明:Jev 数字引用第三方结果,题目与样本规模不同;部分亮眼成绩使用任务微调后的检查点。它们不能证明我们下载的基础模型在中文学习求助上同样优秀。先用自己的测试题验证。作者评测与限制 ↗

今天的过关问题

“我把网页上的预期改成‘排查代码’,模型就学会了,对吗?”

先选答案。这道自测不自动记为已掌握。

回看 Jev:程序怎样采用判断 ↗