Raphael2099 commited on
Commit
1c7dcc2
·
verified ·
1 Parent(s): 3abdaa8

Upload arm59o/CHAMPION_LOCK_arm59o.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. arm59o/CHAMPION_LOCK_arm59o.md +64 -0
arm59o/CHAMPION_LOCK_arm59o.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🏆 CHAMPION LOCK · arm59o (线上 0.680599) — 配方 + 重建备份
2
+
3
+ > 提交 2026-06-25 ~12:31 · **当前最佳,+0.00426 vs arm58k 0.67634**。本文 = 完整配方 + HF 重建步骤。
4
+ > arm59o 已在 ACR(主备份,平台从此拉);HF 存 3 个定义模型(552M)→ 可由 `arm58w3镜像 + 3模型 + 本配方` 完整重建。
5
+
6
+ ## 0. 成绩(官方面板)
7
+ ```
8
+ F1 0.680599 | 检测阶段F1 0.795365 | 识别准确率 0.855706
9
+ TP 4934 | FP 1229 | FN 3402 | P 0.800584 | R 0.591891
10
+ vs arm58k 0.67634: TP+63 / FP+32 / FN−63 = 召回+0.0076 / 精度−0.0022 / 净 +0.00426
11
+ ```
12
+
13
+ ## 1. 镜像
14
+ ```
15
+ tag : crpi-0dqah8p2l5jt2cua.cn-hangzhou.personal.cr.aliyuncs.com/fly_obc/main:arm59o
16
+ digest : sha256:8118a3ace1cf9b76ccb693a4be5127551a0f22dd62a91b015d48647610d7c333
17
+ base : 由 arm58k_full(=arm58k+rule+recovered)docker commit 而来
18
+ ```
19
+
20
+ ## 2. 配方(= arm58k + 4 probe)
21
+ **检测**:reannot `det26m_rea1024v2/last.pt`(SHA 433c13958fe0)· det_conf 0.20 · iou 0.45 · imgsz 1280 · max_det 800
22
+ **识别 = 9 模型,vocab 1812(OOV扩类)**,权重 `[2,1,1,1,1,3,5,2,2]`(Σ18),TTA margins{0,.05,.1},rec_conf 0.15:
23
+
24
+ | # | 模型 | 权重 | 说明 |
25
+ |---|---|---|---|
26
+ | 1 | recognizer/best.pth | 2 | best |
27
+ | 2 | recognizer_v6/best.pth | 1 | v6 |
28
+ | 3 | recognizer_dinov2_base224_c1/best.pth | 1 | dino_base |
29
+ | 4 | recognizer_moon/best.pth | 1 | moon |
30
+ | 5 | recognizer_cnxt_tiny/best.pth | 1 | cnxt |
31
+ | 6 | rec_dino_robust/best_ema.pth | 3 | robust(退化小字) |
32
+ | 7 | **rec_oov_cnxt_v3/best_raw.pth** | **5** | **OOV扩类1812类**(替换 arm58k 的 kaom-cnxt 第7票) |
33
+ | 8 | rec_kaomfull_robust_v1/best_raw.pth | 2 | font-B(kaom_robust) |
34
+ | 9 | rec_kaomfull_dinobase_v1/best_raw.pth | 2 | font-B(kaom_dino) |
35
+
36
+ **4 probe 层(inference_ens.py 内)**:
37
+ 1. **rule**(`rule_postproc.apply_rule`):环形镜套语 sw_align re-rank(存活框)。
38
+ 2. **recovered**(`recovered_postproc.apply`):append 被 rec_conf 丢的低conf框,套语判读(eval 实补 **17** 框)。
39
+ 3. **funnel**(env `ARM59_FUNNEL=1`):检测@0.05,agree-all 高置信额外框 append。
40
+ 4. **OOV扩类**:base 6 模型 softmax(1345)scatter 进 1812 空间(生词位补零)+ OOV/font 票直出;argmax over 1812 → 能输生词。
41
+
42
+ ## 3. HF 重建步骤(ACR 失效时)
43
+ **3 个定义模型已传 HF**(`Raphael2099/oracle-ocr-models/arm59o/`):`rec_oov_cnxt_v3` · `rec_kaomfull_robust_v1` · `rec_kaomfull_dinobase_v1`。
44
+ ```bash
45
+ # 1) 拉 arm58w3 基础镜像(HF 已有)
46
+ HF_ENDPOINT=https://hf-mirror.com hf download Raphael2099/oracle-ocr-models images/arm58w3_image.tar
47
+ docker load -i arm58w3_image.tar
48
+ # 2) 拉 3 个 arm59o 模型 + (kaom-cnxt 第7票已在 tmp/kaom7_best_raw.pth)
49
+ HF_ENDPOINT=https://hf-mirror.com hf download Raphael2099/oracle-ocr-models arm59o/ --local-dir models_arm59o
50
+ # 3) 起容器 → docker cp 3 模型到 /app/models/{rec_oov_cnxt_v3,rec_kaomfull_robust_v1,rec_kaomfull_dinobase_v1}/
51
+ # → 替换 /app/src/inference_ens.py(本仓库当前版,含 OOV scatter+rule+recovered+funnel)
52
+ # → run.sh 设 recognizers(9路) + recog_weights "2,1,1,1,1,3,5,2,2" + ARM59_FUNNEL=1
53
+ # → docker commit → :arm59o
54
+ ```
55
+ **inference_ens.py 关键改动**(本仓库已含):①heterogeneous-vocab scatter(`_OOV`自动检测+`_CMAP`)②rule/recovered/funnel 三层(guarded fallback)。
56
+
57
+ ## 4. 训练复现(模型来源)
58
+ - OOV-v3:`train_recognizer_robust.py --arch cnxt`,warmstart cnxt,头 1345→1812(class-aware expansion),data=fusai+fonts+kaom+OOV字(467生词,新金文编),6ep/tail_pow1.0。⚠️ OOV标签 qwen3vl 读字头(部分脏,审查页 njwb-audit 在核)。
59
+ - kaom_robust/kaom_dino:见 `HANDOFF_FONT8_TO_CHIEF.md §4`。
60
+
61
+ ## 5. 诚实定位
62
+ - **0.680599 是 4 probe 激进叠加的成果**(rule+recovered+font-B+OOV+funnel),+0.00426 线上兑现(召回净涨)。
63
+ - **OOV 单独贡献测不出**(9模型里 OOV 权重 5/18 被稀释 + 无干净 kaom-7th A/B)。
64
+ - 墙仍是召回 R0.591 vs Top6 0.732。Top10/0.75 仍远。