cortiq
cmf
infosave commited on
Commit
8f22b5e
·
verified ·
1 Parent(s): 76cb853

spec: LOOP_MASKS (bit 5) + SKILL_FILE (bit 6) + §9.1 standalone skill files

Browse files
Files changed (1) hide show
  1. SPEC.zh.md +36 -3
SPEC.zh.md CHANGED
@@ -77,6 +77,8 @@ blob(对齐到 4096)** → 掩码 → 词表 → 稀疏索引。读取器必
77
  | 2 | `QUANT_2F` | 目录包含 `q8_2f`/`vbit` 张量(双场 𝒲×θ 量化) |
78
  | 3 | `DELTA_MASKS` | 保留:来自父级的 XOR 掩码增量 |
79
  | 4 | `HOT_PACKS` | 保留:物化的稠密切片 |
 
 
80
 
81
  未知的**头部 JSON** 字段被忽略(增量式演进);
82
  破坏性变更只通过特性位或 `version` 递增来引入。
@@ -486,6 +488,37 @@ entry (4-aligned):
486
  成为死区段尾(兼容:读取器只通过
487
  信封导航)。压实(`converter/cmf_compact.py`)= 一次普通重写。
488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  状态:完全实现并把关(容器 + 间接寻址、
490
  生产配方、recon-argmin 路由、仅追加 + 压实、
491
  软混合);claim 16 由测量满足(运行时任务 PPL −24.9%)。
@@ -527,7 +560,7 @@ safetensors 兼容)。用户可打开**任意**名称;运行时归一化到
527
  Gate(Qwen3.5-0.8B q8_2f,5 个分片 ≤ 0.6 GB):分片化 PPL == 未分片化,
528
  在同一二进制上逐字节相等;`verify` 在每个单独分片上皆为绿。
529
 
530
- ## 11. 碎片整理——物理剪枝(USPTO App. 19/452,464,claims 9/10 —— [PATENTS.md](https://github.com/infosave2007/cmf/blob/master/PATENTS.md))
531
 
532
  掩码(§5)是**虚拟稀疏**:被剪掉的神经元只是被标记,仍完整存储(所有
533
  任务共享一个骨干——在承诺单一任务之前无法物理切除)。碎片整理把虚拟
@@ -605,7 +638,7 @@ GB(−35%),保留集代码困惑度 +2.8%;在 24 GB 内存机器上—
605
 
606
  ---
607
 
608
- *相关:[COMPARISON.md](https://github.com/infosave2007/cmf/blob/master/docs/COMPARISON.md)(CMF 与其他模型格式的对比)、
609
- [项目 README](https://github.com/infosave2007/cmf/blob/master/README.md)(概览与快速上手)、
610
  `python/cmf_reader.py`(独立读取器:标准库 + numpy,读取所有
611
  dtype、分片、技能、verify)。*
 
77
  | 2 | `QUANT_2F` | 目录包含 `q8_2f`/`vbit` 张量(双场 𝒲×θ 量化) |
78
  | 3 | `DELTA_MASKS` | 保留:来自父级的 XOR 掩码增量 |
79
  | 4 | `HOT_PACKS` | 保留:物化的稠密切片 |
80
+ | 5 | `LOOP_MASKS` | 掩码行按访问(VISIT)存储(物理层 × 循环数,按遍历优先)——循环 Transformer 的每一遍携带独立掩码(§5.1) |
81
+ | 6 | `SKILL_FILE` | 该文件是独立技能文件:针对特定基座裁出的部分张量集,由 `SkillRecord.base_dir_hash` 绑定(§9.1)。不可运行——用 `cortiq skill apply` 附加 |
82
 
83
  未知的**头部 JSON** 字段被忽略(增量式演进);
84
  破坏性变更只通过特性位或 `version` 递增来引入。
 
488
  成为死区段尾(兼容:读取器只通过
489
  信封导航)。压实(`converter/cmf_compact.py`)= 一次普通重写。
490
 
491
+ ### 9.1 独立技能文件(`SKILL_FILE`,位 6)
492
+
493
+ 技能也可以脱离基座旅行:一个 `.cmf`,其张量集只包含烘焙改变的部分
494
+ (加上掩码目录),并通过注册表记录中的身份键绑定到它所裁自的基座:
495
+
496
+ ```json
497
+ "skills": [{
498
+ "id": "gfx-html",
499
+ "layers": [0, 1, "...", 21],
500
+ "base_dir_hash": "9f22593eb458bc6f",
501
+ "base_arch": "nanbeige",
502
+ "task": "specialist",
503
+ "provenance": {"corpus": "…", "tensors": 30}
504
+ }]
505
+ ```
506
+
507
+ - `base_dir_hash` —— 基座文件张量目录字节的 hex `hash64`(信封在
508
+ `[0x78]` 携带的同一值)。技能是针对精确字节的增量,而非针对架构:
509
+ 当基座目录哈希不同,`apply` 必须拒绝(显式 `--force` 可覆盖;
510
+ 其结果超出规范)。
511
+ - `base_arch`、`task`、`provenance` —— 信息键:人工校验、激活的掩码
512
+ 任务、来源。
513
+
514
+ 任何带 `base_dir_hash` 的记录都会升起位 6:旧读取器大声拒绝,知道
515
+ 该位的运行时拒绝运行它(部分张量集不是模型),并指向
516
+ `cortiq skill apply <base> <skill> -o out.cmf` —— 验证密钥、把张量与
517
+ 掩码叠加到基座上、写出完整文件(与技能裁出时的专家逐字节等价)。
518
+
519
+ 生命周期:`skill bake`(专家)→ `skill export --base`(增量 + 密钥)→
520
+ 发布小文件 → 在任意基座副本上 `skill apply`。
521
+
522
  状态:完全实现并把关(容器 + 间接寻址、
523
  生产配方、recon-argmin 路由、仅追加 + 压实、
524
  软混合);claim 16 由测量满足(运行时任务 PPL −24.9%)。
 
560
  Gate(Qwen3.5-0.8B q8_2f,5 个分片 ≤ 0.6 GB):分片化 PPL == 未分片化,
561
  在同一二进制上逐字节相等;`verify` 在每个单独分片上皆为绿。
562
 
563
+ ## 11. 碎片整理——物理剪枝(USPTO App. 19/452,464,claims 9/10 —— [PATENTS.md](../PATENTS.md))
564
 
565
  掩码(§5)是**虚拟稀疏**:被剪掉的神经元只是被标记,仍完整存储(所有
566
  任务共享一个骨干——在承诺单一任务之前无法物理切除)。碎片整理把虚拟
 
638
 
639
  ---
640
 
641
+ *相关:[COMPARISON.md](COMPARISON.md)(CMF 与其他模型格式的对比)、
642
+ [项目 README](../README.md)(概览与快速上手)、
643
  `python/cmf_reader.py`(独立读取器:标准库 + numpy,读取所有
644
  dtype、分片、技能、verify)。*