YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
llm-style-terrain-ablation
LLM 风格地形生成 (LLM-style terrain generation) 的消融实验资产仓库。
本仓库按实验 (E1/E2/...) 分目录存放:训练模型权重、评测结果、训练可视化与日志。 训练/评测代码见 https://github.com/luobochuanqi/llm-style-terrain-joint。
E1: 跨模态一致性损失 有 vs 无
联合 8 通道 U-Net (SD1.5 backbone, conv_in/out 扩 4→8ch) 在 512×512 配对
纹理+高程上训练 50 轮,SEED=65 切分 (2356 训练 / 124 验证),RTX 4090。
对照组为训练产出 unet_best.pt (full, 有跨模态一致性损失, CONSIST_WEIGHT=0.1)。
目录结构
E1/
├── models/
│ └── unet_no_consist_50ep_best.pt # 重训产物:CONSIST_WEIGHT=0,50 轮对齐,完整 ckpt (可续训)
├── eval/
│ ├── full/ # full 模型 (unet_best.pt) 生成评测
│ │ ├── eval_ablation_summary.json # 语料级指标汇总
│ │ ├── eval_ablation_gen.csv # per-prompt×seed 明细
│ │ ├── qualitative_grid.png # GT vs 生成定性图
│ │ └── generated/ # 每个 prompt×seed 的 texture/heightmap PNG
│ └── no_consist/ # no-consist 模型 (本仓库权重) 生成评测
│ ├── eval_ablation_summary.json
│ ├── eval_ablation_gen.csv
│ ├── qualitative_grid.png
│ └── generated/
├── training/
│ └── visualizations/ # 每 epoch 的训练 dashboard (52 张)
└── logs/
├── e1_train.log # 训练全程日志 (tqdm: Loss/Dem/Consist)
└── e1_eval.log # 评测编排日志
metadata/run_metadata.json:编排器运行元数据 (GPU/磁盘/exit code)。
E1 结果 (20 prompts × 1 seed, DDIM 50 步, CFG=4)
| 指标 | full (有 consist) | no_consist (无) | 说明 |
|---|---|---|---|
| FID ↓ | 261.113 | 262.269 | 纹理分布距离 |
| mean_clip_score ↑ | 0.2669 | 0.2664 | 纹理-文本对齐 |
| mean_gtc ↑ | 0.5205 | 0.4033 | 纹理-高程梯度相关性 |
| slope_ks ↓ | 0.2577 | 0.2567 | 高程坡度分布 KS 距离 |
结论: 一致性损失对纹理-高程几何对应 (GTC) 有显著正向贡献 (+0.117),对单模态质量 (FID/CLIP) 基本无副作用。
公平性
与 AGENTS.md 红线对齐:full 与 no_consist 同 SEED=65 切分、同 50 轮预算、同 4090 硬件。
(注: 旧资产 unet_no_consist_best.pt 为 91 轮训练,与本仓库 50 轮重训产物不同。)
E2: HeightMapVAE geo 约束 有 vs 无
联合 8 通道 U-Net 的 HeightMapVAE 分支(block_out=(128,256,512,512),512×512 高程图)
在 SEED=42 切分 (495 训练 / 55 验证) 上训练 100 轮,RTX 4090。
对照组为现有 geo 版 heightmap_vae_best.pt(100 轮);no-geo 变体本次重训,
双旋钮置零(--geo_weight 0 --vae_geo_weight 0),预算与 geo 版完全对齐。
目录结构
E2 结果 (55 留出样本重建,val 集)
| 指标 | geo (有约束) | no-geo (无) | 说明 |
|---|---|---|---|
| PSNR (dB) ↑ | 28.573 | 30.574 | 物理高程域 peak=65535m |
| SSIM ↑ | 0.9385 | 0.9469 | 高斯窗 11×11 σ=1.5 |
| MAE (m) ↓ | 1715.4 | 1358.7 | 物理高程 |
| slope MSE ↓ | 0.0020 | 0.0022 | 归一化域,fp32 |
| curvature MSE | 0.0004 | 0.0004 | 归一化域,fp32 |
结论: 剔除 geo 约束后重建质量全面小幅提升 (PSNR +2.0dB, SSIM +0.008, MAE −21%), slope 仅微弱劣化——对纯重建任务 geo 约束为净负资产;重建本身的几何一致性已足够。
公平性
no-geo 与 geo 侧同 SEED=42 切分、同 100 轮预算、同 4090 硬件、同双旋钮配置 (仅 geo 置零)。 评测脚本 (eval_ablation_vae.py) 逆变换与训练逐字一致,指标口径无漂移。
E3: 耦合强度阶梯(ADR-0006)
论文 §4.2 预言 "GTMI should degrade monotonically from joint to separate to random pairing", 本实验逐级兑现(R0 随机配对 < R1 分离输出头 < R2 共享隐空间无一致性损失 < R3 完整耦合)。 总成本 1 次训练(R1 dual-head 50 轮):R2 复用 E1 no-consist 产物,R3 用 full checkpoint,R0 纯后处理。
目录结构
E3/
├── models/
│ └── unet_dualhead_50ep_best.pt # R1 训练产物:conv_out 拆双头(50 轮,无一致性损失),完整 ckpt
├── eval/
│ ├── r0/ # random_pair:同一 full 模型 joint 采样,dem 跨 prompt 错位配对(几率地板)
│ ├── r1/ # dual-head 单模态评测
│ ├── r2/ # no-consist(复用 E1 50 轮重训版)
│ └── r3/ # full(unet_best.pt)
│ ├── eval_ablation_summary.json # 语料级指标:FID/CLIP/GTC/slope_KS
│ ├── eval_ablation_gen.csv # per-prompt×seed 明细
│ ├── qualitative_grid.png
│ └── generated/ # 40 张 texture+heightmap PNG
└── logs/
├── e3_run.log # 首次运行(R1 训练 50 轮 + R0 首次失败)
└── e3_eval.log # R0 prompt 键 bug 修复后完整四档评测
E3 结果(20 prompts × 1 seed, DDIM 50 步, CFG=4)
| 档 | 耦合机制 | FID↓ | CLIP↑ | GTC↑ | slope_KS↓ |
|---|---|---|---|---|---|
| R0 random_pair | 无(dem 跨 prompt 错位) | 261.113 | 0.2669 | 0.5202 | 0.2577 |
| R1 dual-head | 分离输出头 | 425.700 | 0.1897 | 0.2320 | 0.3460 |
| R2 no-consist | 共享隐空间,无损失 | 262.269 | 0.2664 | 0.4033 | 0.2567 |
| R3 full | 共享隐空间 + 一致性损失 | 261.113 | 0.2669 | 0.5205 | 0.2577 |
重要发现:GTC 指标对空间错位不敏感(需论文口径修正)
截面验证(详见 ADR-0006 修订与诊断记录):
- R0 错位配对的 GTC(0.52)≈ R3 原位(0.52)——不是配对未生效(已逐像素验证 heightmap 确实来自其他 prompt),而是 GTC(梯度幅值场 Pearson)对空间对应不敏感:将高程旋转 90°/水平翻转后 GTC 几乎不变(0.409→0.408/0.410)。
- 机制:逐像素 Pearson 主要度量两个梯度幅值场的边缘分布形状相似度,旋转/错配不改变 边缘分布,故指标不变;R1 dual-head 的 GTC 下降(0.23)源于独立输出头改变了高程梯度 的分布形态,而非测出了"解耦"。
- 结论:GTC 不能支撑 §4.2 "monotonically degrade to random pairing" 预言;论文中 GTMI(梯度-纹理互信息,L454)为空间敏感统计量,待实现后才能兑现该预言。
- 本实验 R0/R3 的 FID 与 CLIP 相同(261.113/0.2669)是预期行为:纹理未错位,FID/CLIP 只测纹理与文本。
公平性与过程说明
- 四档同 SEED=65 切分、同 prompt 集、同种子、DDIM 50 步、CFG=4.0,仅耦合机制不同。
- E3-R1 训练期间数据盘两次接近写满(周期存档 8.6G/latest),已由磁盘守护清理;无 NaN。
- R0 评测首次运行因
meta["prompt"]键缺失(metadata 无 prompt 键)失败,修复为UNetDataset读取后重跑成功;修复记录见于 git diff(eval_ablation_gen.py)。
E7: DiT 评测(legacy 权重)
对现有 dit_best.pt(DiT 架构,SEED=65 下评测)与 unet full 基线的生成质量对照。
dit_best.pt 训练切分疑似 SEED=45(AGENTS.md 记录),故补做 SEED=45 切分评测以量化泄漏影响。
目录结构
E7/
└── eval/
├── dit_seed65/ # legacy dit_best.pt,SEED=65 val 切分评测(异地评测,泛化视角)
└── dit_seed45/ # 同权重,SEED=45 val 切分评测(94% 与训练集重叠,泄漏视角)
E7 结果(20 prompts × 1 seed, DDIM 50 步, CFG=4)
| 指标 | dit @ SEED65 | dit @ SEED45 | unet full 基线 |
|---|---|---|---|
| FID ↓ | 247.01 | 251.91 | 261.11 |
| CLIP ↑ | 0.2391 | 0.2357 | 0.2669 |
| GTC ↑ | 0.5551 | 0.6372 | 0.5205 |
| slope_KS ↓ | 0.0888 | 0.1443 | 0.2577 |
- SEED=45 的 val 集与 SEED=65 训练集重叠 94%(124 中 116),其数字代表"近训练分布"表现而非泛化;表注须披露。
- 两切分下 DiT 的 FID 与 slope_KS 均优于 unet(高程真实感更强,最可能是 SD 基座先验+泄漏红利), CLIP 始终更弱(文本对齐是 DiT 短板,无 SD1.5 文本先验)。
- 结论口径:DiT 高程几何质量更高、语义遵循更弱;表注披露 SEED 疑点后结论站得住。
E5: 细粒度评测(跨地形类型版)
对 8 个"跨地形大类" prompt 对(yardang×karst、dendritic×parallel、glacial×volcanic、 dune×canyon、loess×glacial、mesa×dune、karst×volcanic、U谷×V谷),每对同一 U-Net 生成 2×N=4(同种子配对),指标:CLIP self/cross margin、LPIPS cross/within(bootstrap 显著检验)、高程归一化差。LPIPS 已装(alex trunk)。
目录结构
E5/
├── prompt_pairs/prompt_pairs_e5_types.json # 8 对跨类型 prompt(可复现)
└── eval/
├── eval_ablation_finegrained.csv # per-pair 指标
├── pair_comparison_000..007.png # 每对 A/B 对比定性图
└── generated/ # 64 张 (8 对 × 2 × 4 seeds)
E5 结果(8 对 × 2 prompts × 4 seeds)
| 对 | clip_margin | LPIPS cross/within | significant |
|---|---|---|---|
| loess × glacial | 0.0560 | 0.780 / 0.617 | True |
| karst × volcanic | 0.0408 | 0.657 / 0.589 | True |
| yardang × karst | 0.0458 | 0.757 / 0.635 | True |
| dendritic × parallel | 0.0069 | 0.734 / 0.529 | True |
| glacial × volcanic | 0.0155 | 0.604 / 0.624 | False |
| dune × canyon | 0.0261 | 0.583 / 0.643 | False |
| mesa × dune | 0.0258 | 0.588 / 0.612 | False |
| U谷 × V谷 | 0.0135 | 0.599 / 0.637 | False |
结论: 模型对地形大类的纹理区分度部分显著(4/8,LPIPS bootstrap: cross > within),CLIP margin 在 0.007-0.056;dendritic×parallel 是例外 (LPIPS 可分但 CLIP margin 最低——纹理有别但文本语义不敏感)。 属性级/同大类语义变体区分度弱是独立发现,测试方向保留规划(见下方)。
未来规划(不记录在结果中)
同大类内"描述差异明显"的语义变体评测(karst 峰林×天坑、desert 风蚀×沙丘等): 当前 prompt 设计/评测方法未达预期(CLIP self-margin 及 LPIPS 显著性 7/8 未通过), 判定为提示词构造方法问题而非模型结论,暂不收录;待语义评测方法重设计后补测。 E5 正式收录范围 = 跨地形大类对比(上述结果)。