docs(ts-as-modality): archive after cross-domain generalization failure

Full diagnostic chain (synth→real zero-shot→real finetune→held-out) shows
the TS-modality approach works in-distribution but fails to generalize
across entities: same SMD dataset, same 38 channels, just a different
machine (1→2) collapses output to repetition garbage. Root cause is the
lightweight TS encoder (2-layer TF, 2.1M params) learning dataset/machine-
specific patterns rather than transferable time-series representations.

This is a valuable negative result: it cleanly rules out the
'0.5B LLM + 2-layer TS encoder + single-distribution synth training'
route for general time-series understanding, which is more credible than
any 'looks like it works but never tested cross-domain' result.

Records:
- tasks.md: M6 diagnostic section (6.1-6.5) with evidence + archive decision
- proposal.md: Status header flagging archive + pointer to diagnosis
- docs/diagnosis-2026-07-02-cross-domain.md: full evidence chain, root-cause
  analysis, capability boundaries, asset inventory, restart conditions

Project status: archived. Code/data/checkpoints/reports preserved.
Restart requires any of: (1) larger encoder + real-data from-scratch
training, (2) channel-agnostic patch strategy, (3) multi-dataset joint
training with held-out-dataset generalization proof.
This commit is contained in:
张宗平
2026-07-03 11:52:09 +00:00
parent 8f644a7470
commit 150e3bd9fd
4 changed files with 230 additions and 0 deletions
@@ -1,3 +1,7 @@
## Status
**已封存(2026-07-02**。完整诊断与结论见 `docs/diagnosis-2026-07-02-cross-domain.md`。摘要:合成域内有效(QA 2.41 vs pure_llm 0.89TS token 消费率 0.98),但真实时序**跨实体泛化失败**——同 SMD 数据集换机器即崩溃为 garbage 输出。TS encoder2层TF/2.1M参数)学到数据集特有模式而非通用时序表征。方案作为研究性 PoC 划定了能力边界(合成域可行/跨域不可行),资产保留,重启条件见诊断报告。
## Why
当前 AIOps 场景下,多变量时序的异常检测与解释仍依赖专用模型,缺乏「以自然语言对时序提问、做根因/事件关联推理」的统一能力。基于 `MTSAD-技术深度调研报告.md`,沿用 ChatTS「时序作为新模态」路线,我们希望在**单张 3060 12GB 消费级显卡**上做一个可复现的实验性落地,验证「把多变量时序视为独立模态、与文本/事件模态联合注入小型 LLM」这一方法在算力受限条件下是否切实可行、且「时序模态」是否真带来可量化的增益。现在做是因为:0.5B 级开源 LLM 与 PEFT/LoRA 工具链已足够成熟,使该实验在消费级硬件上首次成为可能。
+29
View File
@@ -50,3 +50,32 @@
-**全量重训验证假设**:小规模时 VUS-PR 弱的根因是数据量(5万→50万),而非算法本身——全量后 VUS-PR +57% 且 Aff-F1 碾压 pure_llm。
- 结论:实验性单卡管线全量跑通;模态融合 + QA + 时序定位(相对纯 LLM)均达成,绝对定位精度待后续。real benchmarkSMD/SWaT 等)需下载后补入 `data/eval_real.jsonl`
- 全量训练产物:stage1 `stage1_final.pt`31250 步 EMA 1.26+ stage2 `stage2_final.pt`+`lora_adapter`9375 步 EMA 0.75
## 6. M6 · 真实 benchmark 接入与跨域诊断(封存前最终验证)
> 目的:回答「合成域有效,但方案能否泛化到真实时序?」这一决定性问题。结论决定方案去留。
- [x] 6.1 SMD 真实数据接入(`data/real/smd/`):下载 NetManAIOps/OmniAnomaly 的 machine-1-1/1-2/2-1 的 test+test_label.txt→.npy3机合并 75867 步 ×38 通道,prevalence **5.8%** vs 合成 26%,构成低-prevalence 对照)。loader `real_bench._load_npy_pair('smd')` 验证通过
- [x] 6.2 生成 `data/eval_real.jsonl`SMD machine-2-146 样本:14 anomaly + 32 describe,严格 held-out+ SMD 微调数据 `data/smd_ft/sft.jsonl`machine-1-1/1-2141 样本:47 anomaly + 94 describe
- [x] 6.3 zero-shot 跨域评测(`reports/eval-2026-07-02.md`,未微调 stage2):
- **real 上 model parse_rate=0、Aff-F1=0、QA=0.00**——输出是 repetition collapse`aisonaison...`/`horizon: horizon:...`),LLM 在 OOD 输入下的典型崩溃;
- VUS-PR=0.2263 恰好等于 all_report 是**假象**:解析失败→全 0 分数→vus_pr 退化为 prevalence,模型实际什么都没检测;
- 干扰变量排除:改写 instruction(短/通用措辞)输出仍是垃圾,确认非指令长度/格式问题,是 TS embedding 分布偏移(38通道 vs 5通道、z-score 分布 vs 合成数值范围)。
- [x] 6.4 SMD 微调实验(`checkpoints/stage2_smd/`500 步 EMA 1.27→1.00):从 stage2_final 继续训 LoRA on SMD trainmachine-1-1/1-2)。
- [x] 6.5 微调后跨实体泛化诊断(决定性实验):
- **SMD 训练域内**machine-1-1/1-2):4/5 产出合法 `{"anomaly_regions":[...]}` JSON ✅——机制正常;
- **SMD held-out**machine-2-1,同数据集/同 38 通道/仅换机器):仍是垃圾输出 ❌;
- 结论:**跨实体泛化失败**。同数据集换机器就崩溃,证明 TS encoder 学到的是数据集/机器特有模式,而非可泛化的时序表征。
### 初步结论(方案封存依据)
**证据链**:合成域内有效(QA 2.41 vs 0.89、change_rate 0.98)→ SMD 训练域内有效(4/5 合法 JSON)→ SMD held-out machine 崩溃(全 garbage)。
**方案意义与边界**(详见 `docs/diagnosis-2026-07-02-cross-domain.md`):
-**成立**:TS 模态融合机制可行(token 被消费、非噪声);合成域内 QA 能力真实(TS 模态是必要非装饰);格式学习能力正常(141 样本即可学会)。
-**未立住**:跨实体泛化失败(同数据集换机器就崩)——非调参可解,是 TS encoder(2层TF/2.1M参数)学到数据集特有模式;合成域 VUS-PR 0.22 仍输 trivialzero-shot 跨域不存在。
- 🏷 **方案定位**:作为「轻量 TS-modality 融合」的研究性 PoC,其价值在于**清晰地划定了能力边界**——合成域内可行,但当前架构无法泛化到真实时序。这是有价值的负结果,优于任何「看起来 work 但未测跨域」的结果。
### 封存决定
**方案封存**。资产保留(代码/数据/checkpoints/报告均 git-tracked 或备份),不再投入。重启条件(任一即可):① 更大 encoder(>10M 参数)+ 真实数据从头训练(非仅微调);② channel-agnostic patch 策略(消除通道数硬约束);③ 多真实数据集混合训练验证泛化。