madewithlaya

Catalog / Multilingual

0108GitHub

laya-zh-eval: independent Chinese skill-routing eval of all three checkpoints

20 real-world Chinese requests × 3 checkpoints, measuring accuracy, latency and whether confidence knows when it is wrong. Includes a Windows/Python 3.14 segfault workaround.

Open source ↗ github.comcostfree, localtime-
lzero07/laya-zh-evalREADME ↗
# laya-zh-eval — Laya 中文技能路由独立评测

对 [laya](https://github.com/NandhaKishorM/laya)(开源 Jev 对标项目)做中文场景独立评测,

1. Laya 在中文上分类准不准?
2. 答错的时候,它自己知道吗?

## 一、如何运行

### 环境要求

- Windows 11 + Python 3.14(实测可用,但需要 `win_patch.py`,见坑 2)
- 内存:**至少 11GB 空闲提交内存**(加载 643MB 权重用内存映射)。跑之前关掉大内存应用
- 磁盘:~1.5GB(三个 checkpoint 权重缓存在 `~/.cache/huggingface`)

### 安装步骤

```bash
# 1. 建虚拟环境(仓库根目录执行)
python -m venv venv

# 2. 装 laya(国内用清华 PyPI 镜像;npmmirror 是 npm 的,不能用于 pip)
./venv/Scripts/pip install laya -i https://pypi.tuna.tsinghua.edu.cn/simple

# 3. 克隆 laya 源码作 API 参考(可选但推荐,不猜接口)
cd .. && git clone --depth 1 https://github.com/NandhaKishorM/laya.git laya-src
```

### 运行命令

**PowerShell(Windows 默认终端)用 `run.ps1`:**

```powershell
.\run.ps1          # 完整评测
.\run.ps1 smoke    # 冒烟测试
```

脚本内容就是 `$env:VAR="..."` 设三个环境变量再调 python——PowerShell 里
`VAR=value cmd` 前缀写法无效(那是 bash 语法),`\` 续行也不通用,换行用反引号 `` ` ``。

**bash写法:**

```bash
cd laya-zh-eval

# 第一步:冒烟测试(首次会下载 multilingual 权重 ~650MB)
HF_HUB_DISABLE_SYMLINKS_WARNING=1 \
HF_ENDPOINT=https://hf-mirror.com \
./venv/Scripts/python.exe smoke_test.py

# 第二步:完整评测(三个 checkpoint × 20 条用例,首次额外下载 ~700MB)
HF_HUB_DISABLE_XET=1 \
HF_HUB_DISABLE_SYMLINKS_WARNING=1 \
HF_ENDPOINT=https://hf-mirror.com \
./venv/Scripts/python.exe eval_zh.py
```

输出:逐案日志(终端)+ `results/per_case.jsonl` + `results/summary.json`。

### 已踩过的坑(按出现顺序)

| 坑 | 症状 | 解法 |
|---|---|---|
| 1. Windows 符号链接权限 | `OSError: [WinError 1314] 客户端没有所需的特权` | 环境变量 `HF_HUB_DISABLE_SYMLINKS_WARNING=1`(HF 自动改用复制模式) |
| 2. Py3.14 + torch 2.14 段错误 | `Segmentation fault`,崩在 transformers 的 `initialize_weights` | `win_patch.py` 把 `initialize_weights` 换成 no-op(安全:laya 加载后立即 `load_state_dict(strict=True)` 覆盖全部权重)。**必须在 `import laya` 之前 import** |
| 3. 页面文件不足 | `OSError: os error 1455 页面文件太小` | 关掉 IDEA/Chrome 等大内存应用,确保空闲提交内存 ≥ 

Also filed under Multilingual

  1. 0115

    Laya fine-tuned for Burmese topic classification on SIB-200

    A Myanmar-language Laya checkpoint trained on Davlan/sib200, with a Gradio demo space from the same author.

    aungthuhein-dev · Multilingual · free

  2. 0114

    laya-ara: Laya fine-tuned for Arabic NLU on MASSIVE and XNLI

    An Arabic Laya checkpoint trained on AmazonScience/massive and facebook/xnli, with a companion laya-ara-rag ranking model from the same author.

    Wouze · Multilingual · free

  3. 0111

    Laya multilingual in LiteRT for Android and on-device

    Google's LiteRT community conversion of the multilingual checkpoint (tflite), tagged for Android text classification. An English LiteRT build is published alongside it.

    litert-community · Multilingual · free, on-device

  4. 0109

    Feishu message classification bench: Jev 64/64, Laya 20/64 on 64 frozen scenarios

    Synthetic Chinese workplace-chat scenarios with frozen inputs, prompts and labels. Reports classification quality, mis-generated tasks and latency: Jev 253 ms vs Laya 151 ms.

    Feng · Multilingual · 151 ms (Laya) vs 253 ms (Jev)