Laya-CoreML 0.1.0 发布产物
在 Apple Silicon 上安装公开的运行时:
python -m pip install 'laya-coreml[demo]==0.1.0'
wheel 包含推理、Hub 加载、终端 Snake 演示及其回放渲染器。模型权重单独下载。PyTorch 是可选的导出依赖;MLX 是可选的对比依赖。两者都不是运行已发布模型所必需的。见 PyPI 项目。
固定的模型发布
全部六个仓库都是公开的。每个都包含导出的 Core ML 包、tokenizer、配置、模型卡、许可证、署名和验证报告。ANE 包还包含与原始完全一致的主机端 embedding 和 action-head 张量。它们是独立的推理包。
| Hugging Face 仓库 | 发布版本 |
|---|---|
| aac6fef/laya-coreml | fff78b2d9750c6b748fe8c90fcbf8bed0a1522a9 |
| aac6fef/laya-multilingual-coreml | 8139e9089273319512c730218903784074133187 |
| aac6fef/laya-multilingual-coreml-ane | 39d6a9b3d0f67f06da74fbade6121ea134cbdb21 |
| aac6fef/laya-multilingual-coreml-ane-w8 | 7503714810747a879b1e310074a9398bc573e739 |
| aac6fef/laya-multilingual-coreml-snake | e580bca9c1a8f5e6084afedc49cba4a166dfc6f2 |
| aac6fef/laya-typed-decisions-coreml | 28d24fa8d67a3264556b23391ec6c3fd98573056 |
例如:
hf download aac6fef/laya-multilingual-coreml-ane \
--revision 39d6a9b3d0f67f06da74fbade6121ea134cbdb21 \
--local-dir models/ane
laya-coreml-snake --model ./models/ane
或直接加载一个固定的 Hub 快照:
import laya_coreml as laya
agent = laya.load(
"aac6fef/laya-multilingual-coreml-ane",
revision="39d6a9b3d0f67f06da74fbade6121ea134cbdb21",
)
发布清单、包哈希、形状和完整包体积在 hub-release.json。W8 包约 557 MB,含主机端 embedding 和 tokenizer;129 MB 只描述它的 Core ML 主体。W8 是配合 FP16 计算的权重调色板化,不是整数激活量化。
模型与包验证
每个发布的包在上传前都对照其归档的、已验证的导出做了检查。可移植的 ANE 包保留原始 Core ML 主体,并以逐元素完全相等的方式提取六个主机端张量。随后打包时的推理重复了上游的 golden-fixture 检查:
| 包 | 匹配的选定答案 | 最大校准概率漂移 | 重复调用 |
|---|---|---|---|
| 英文 FP16 | 63/63 | 0.003308 | 100 稳定 |
| 多语言 FP16 | 63/63 | 0.001578 | 100 稳定 |
| Typed Decisions FP16 | 63/63 | 0.002727 | 100 稳定 |
| Snake GPU,B3/L64 | 12/12 适配 | 0.001308 | 100 稳定 |
| ANE FP16,L96 | 59/59 适配 | 0.002925 | 100 稳定 |
| ANE W8,L96 | 59/59 适配 | 0.014393 | 100 稳定 |
短的导出会拒绝超出其输入容量的夹具。它们的适配子集是明确的;它们不是全上下文等价的说法。全部使用相同的 0.02 概率漂移阈值。通用 checkpoint 覆盖 189/189 个问题;六个包合计覆盖 319 个适配比较,checkpoint 之间有重叠。见 release-validation.json。
一个全新的 Python 3.12 环境安装了构建好的 wheel 和 demo extra,没有 Torch、MLX 或 Transformers。在 Python socket 连接被阻断的情况下,六个本地包全部加载并给出稳定的预测。随后加载了一个公开、固定的 ANE Hub 快照,接着在阻断网络连接的情况下从缓存做了第二次加载。没有任何离线环节尝试建立连接。这次检查还验证了 USAGE.md 中描述的 Core ML 符号链接物化修复。结果:wheel-runtime-smoke.json。
0.1.0 版于 2026-09-20 发布到 PyPI。两个公开分发包都被下载,其 SHA256 摘要与本地发布产物一致。随后又一个新环境在禁用缓存的情况下直接从公开 PyPI 索引安装了 laya-coreml[demo]==0.1.0。README 中直接加载 Hub 的示例成功运行,返回零输出 token,并在预测期间阻断网络连接的情况下,三次重复调用给出相同答案。两个已安装的 CLI 入口也都成功启动。见 发布回执 和 公开安装推理检查。
复现发布检查
本地发布门禁通过了 64 个测试、Ruff lint/format 检查和严格的 Twine 包元数据校验。测试包括转换语义、包缓存完整性、游戏不变量、离线模型解析,以及对已发布 855 步录制中每个棋盘/动作的精确回放。
构建后端被钉在 Hatchling 1.31.0。它的 Core Metadata 2.4 输出能通过本发布的 Twine 6 检查器;一个最初使用更新的默认 2.5 元数据的构建被拒绝。默认值的变化见 Hatchling 的版本历史。已发布的产物使用兼容的构建,并在上传前再次检查。确切的 wheel 和源码分发包 SHA256 摘要记录在 distribution-files.json。
在可取得原始已验证据产的源码 checkout 中:
uv sync --extra convert --extra dev --extra compare --extra research --extra demo --extra publish
.venv/bin/python scripts/prepare_hub.py
.venv/bin/python -m benchmarks.release_validate models/hub/* \
--output benchmarks/results/release-validation.json
.venv/bin/ruff check .
.venv/bin/ruff format --check .
.venv/bin/pytest -q
.venv/bin/python -m build
.venv/bin/twine check --strict dist/*
prepare_hub.py 拒绝覆盖已存在的包目录。独立的 wheel 检查在源码树之外的一个全新环境里、下载或准备好六个包之后,用 scripts/wheel_smoke.py --hub-check 运行。完整的游戏循环测量见 SNAKE_BENCHMARKS.md,确切的录制媒体来源见 LAUNCH.md。
0.2.0 上游同步
本发布通过上游 4aa6761 移植了适用的 prompt 校验、自定义 noul 标签、Unicode 指令、对话尾部截断、选项折叠诊断和答案置信度报告。它还发布了温度钳制,该钳制在源码 0.1.1 中存在,但 PyPI 0.1.0 中没有。Core ML 图签名、权重和 ANE 容量检查保持不变。上面的历史基准结果描述的是 0.1.0,不是一次新的性能运行。混合问题延迟和 Intel Mac 支持未由本次同步验证。
更新 pyproject.toml、laya_coreml/__init__.py 和 uv.lock 之后,推送一个 v<version> 标签。Release 工作流会运行可复用的 CI 检查、对照标签校验这三个版本、构建并验证 wheel/sdist、使用仓库密钥 PYPI_API_TOKEN 发布到 PyPI,并用相同的分发包创建一个 GitHub release。CI 失败会阻止发布。