Laya-CoreML 核心概念入门:choice/score/noul 三种类型化决策,一个 Token 都不生成
【免费下载链接】laya-coremlLocal Laya typed decisions on Apple Core ML and Neural Engine. Validated ports, ~5 ms short decisions on M3 Max, reproducible speed and energy benchmarks.项目地址: https://gitcode.com/gh_mirrors/la/laya-coreml
Laya-CoreML是一个运行在 Apple Silicon 上的开放权重类型化决策模型,基于 Apple Core ML 与 Neural Engine 推理。它最独特的地方在于:你问它问题,它直接返回带概率的结构化答案——既不逐 Token 生成文本,也不产出需要解析的 JSON。一次短决策在 M3 Max 上仅约5 毫秒,且output_tokens永远是 0。
什么是"类型化决策"?为什么强调零 Token 生成
传统大模型的决策流程是:生成一段文本 → 你再去解析文本。而 Laya-CoreML 采用双向编码器结构:
- 输入一次编码完成,没有自回归解码(auto-regressive decoding)环节;
- 模型输出的是每个候选选项的 logit,直接 softmax 成概率分布;
- 结果是确定结构:答案、概率、置信度,一步到位。
laya_coreml/result.py 中的system_one就是这个核心:一次前向推理(一次model.predict调用)完成所有问题的打分,返回的usage中output_tokens恒为 0。
这意味着:
| 对比项 | 文本生成式 LLM | Laya-CoreML 类型化决策 |
|---|---|---|
| 推理方式 | 逐 Token 自回归解码 | 单次前向编码 |
| 输出 | 自由文本,需解析 | 固定结构 + 概率 |
| 输出 Token 数 | 不定 | 恒为 0 |
| 短决策延迟 | 通常数百毫秒起 | P50 约 4.98 ms(M3 Max ANE FP16) |
| 运行依赖 | PyTorch / MLX 等 | 纯 Core ML,无需 PyTorch |
🎯 所以"一个 Token 都不生成"不是营销话术,而是架构决定的:predict()返回的用量统计里,输出 Token 数就写死为 0。
三种类型化决策:choice / score / noul
Laya-CoreML 只支持三种问题类型,在 laya_coreml/common.py 中定义为QTYPES = {"choice": 0, "score": 1, "noul": 2}。任何不属于这三类的type都会在 laya_coreml/prompt.py 的输入校验阶段直接报错。
1. choice —— 多选一
从若干候选标签中挑一个,并给出每个标签的概率。适合:工单分派、意图分类、动作选择。
{ "department": { "type": "choice", "instructions": "Which department should handle this request?", "criteria": { "billing": "Payments, invoices, refunds", "technical": "Broken features, errors", "sales": "Pricing, new purchases" } } }返回内容:choice(中选标签)、probabilities(各标签概率)、confidence(置信度)。
2. score —— 有序评分
对一组有序档位打分,返回期望档位值(0 起始的类别指数望值)和档位图例。适合:紧急程度分级、满意度评分、风险等级。
{ "urgency": { "type": "score", "instructions": "How urgent is the request?", "criteria": ["not urgent", "soon", "critical deadline"] } }返回内容:score(0~n-1 的期望值)、legend(档位说明)、probabilities(各档位概率)。
3. noul —— 布尔判断
回答"是 / 否",模型输出 "true" 的概率。适合:退款请求检测、条件校验、安全判断。
{ "refund": { "type": "noul", "instructions": "Does the customer request a refund?" } }返回内容:noul(true 的概率)、confidence(取该概率与 1 减去它的较大者)。选项渲染固定为[false, true],见 laya_coreml/common.py 中的render_options。
💡 三类答案都额外携带
confidence(基于归一化香农熵的置信度)与 action head 概率字段,可以直接用于"低置信度转人工"之类的业务门槛。
三种类型如何配合:贪吃蛇演示
仓库里最直观的验证是终端贪吃蛇:模型每一帧只回答三个问题——
move(choice):四个方向各带一句安全性描述,选概率最高的方向;risk(noul):是否存在安全通路;food(noul):食物是否可达。
见 laya_coreml/snake/policy.py,其中还有显式的循环安全层:模型提议的方向不安全时,安全盾会接管执行一个安全方向,并在界面上计入"Shield interventions"。
完整游戏循环在三条 600 步测试中稳定达到49.1–50.0 决策/秒,零死亡——这就是"每帧 5 毫秒级类型化决策"的实际效果。
快速上手:安装与一次调用
需要 Apple Silicon + macOS 15+ + Python 3.11–3.13:
python -m pip install laya-coremlimport laya_coreml as laya agent = laya.load("aac6fef/laya-multilingual-coreml-ane") result = agent.predict( "The customer requests a refund of a duplicate payment.", { "department": { "type": "choice", "instructions": "Which department should handle this?", "criteria": {"billing": "refunds", "technical": "errors", "sales": "pricing"}, }, "urgency": { "type": "score", "instructions": "How urgent is the request?", "criteria": ["low", "medium", "high"], }, "refund": { "type": "noul", "instructions": "Does the customer request a refund?", }, }, ) print(result["answers"]) print(result["usage"]) # {"input_tokens": ..., "output_tokens": 0}更完整的三种类型示例文件见 examples/questions.json,API 细节见 docs/USAGE.md。推理不依赖 PyTorch、Transformers 或 MLX;模型首次下载后可用local_files_only=True完全离线运行。
性能与模型选择(M3 Max 实测)
短决策基准:91-token 问题,ANE FP16,共 65,598 次稳定调用(数据见 benchmarks/results):
| 指标 | MLX FP16 | Core ML ANE FP16 |
|---|---|---|
| P50 / P95 延迟 | 6.94 / 7.39 ms | 4.98 / 5.31 ms |
| 每次决策整机能耗 | 0.4288 J | 0.1540 J(2.78× 改善) |
模型容量选择:
- 96-token ANE 包(
laya-multilingual-coreml-ane):最短、最快,适合高频短决策;超出预算会直接报容量错误; - 1024-token 通用包(
laya-multilingual-coreml):长输入多语言场景。
完整模型表与设备引擎说明见 docs/USAGE.md 与 docs/ANE_BENCHMARKS.md。
想深入?看这些模块
- 类型定义与提示词构造:laya_coreml/common.py、laya_coreml/prompt.py
- 概率输出与置信度计算:laya_coreml/result.py
- Core ML 加载与引擎选择:laya_coreml/agent.py
- 贪吃蛇策略(choice + noul 实战):laya_coreml/snake/policy.py
小结
Laya-CoreML 把"让模型做判断"从文本生成问题变成了结构化的类型化决策问题:choice做多选一、score做有序评分、noul做布尔判断,一次前向推理直接拿到概率与置信度,零输出 Token、约 5 毫秒延迟、纯 Core ML 离线运行。如果你的场景是高频分类、分级或条件判断,这正是比通用 LLM 更省更快的一条路。
【免费下载链接】laya-coremlLocal Laya typed decisions on Apple Core ML and Neural Engine. Validated ports, ~5 ms short decisions on M3 Max, reproducible speed and energy benchmarks.项目地址: https://gitcode.com/gh_mirrors/la/laya-coreml
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考