2.7 KiB
2.7 KiB
对话记录
日期: 2025-02-14
用户要求我先阅读 /home/anay/Dev/diffusion/mask-ddpm 中的 MD 文档,并按照该文档说明来推进工作。同时,在该项目中新增一个 MD 文件用于记录我们的对话,方便后续 AI 了解上下文。
已阅读文档:
/home/anay/Dev/diffusion/mask-ddpm/TODO-FOR-AI.md
当前状态:
- 完成了文档阅读。
- 已创建本对话记录文件。
后续记录:
- 已开始检查数据集。发现 HAI 的 CSV 文件是 Git LFS 指针文件,需要拉取真实内容;Modbus 数据集当前可见的 CSV 主要是攻击日志(字段如 Timestamp/TargetIP/Attack/TransactionID),其主体数据为 PCAP,需要额外特征提取。
- 已阅读
/home/anay/Dev/diffusion/dataset/hai/README.md。关键信息:HAI CSV 是时间序列特征数据,第一列为时间戳,后续为 SCADA 点位;末尾为攻击标签列;HAI 22.04 起使用 Git LFS 下载实际 CSV 内容。 - 用户尝试
git lfs pull时遇到 LFS 配额超限(上游仓库配额不足),导致无法拉取 HAI 的真实 CSV 内容。 - 用户选择从 Kaggle 下载 HAI 数据集并手动放入本地目录。
- 在本地发现可读取的 HAI CSV 为 gzip 格式:
/home/anay/Dev/diffusion/dataset/hai/hai-20.07/*.csv.gz与/home/anay/Dev/diffusion/dataset/hai/hai-21.03/*.csv.gz,列名包含大量 SCADA 点位与攻击标签列。 - 基于
hai-21.03/train1.csv.gz前 5000 行的启发式统计,初步划分了离散/连续特征(离散多为开关、状态与攻击标签;连续为传感器/过程变量)。 - 在
/home/anay/Dev/diffusion/mask-ddpm/example中创建了示例文件夹,包含analyze_hai21_03.py和结果输出(results/feature_split.txt、results/summary.txt)。 - 已补充示例代码与文档:
feature_split.json、hybrid_diffusion.py、train_stub.py、model_design.md,并更新了/home/anay/Dev/diffusion/mask-ddpm/example/README.md。 - 新增可运行脚本与数据准备:
data_utils.py、prepare_data.py、train.py、sample.py,并修正train_stub.py以匹配新的离散掩码接口。 - 已运行
prepare_data.py生成results/cont_stats.json与results/disc_vocab.json(采样 50k 行)。 - 用户计划使用 conda 创建新环境并安装 GPU 版 PyTorch;建议环境名
mask-ddpm,Python 3.10,使用 cu121 安装源。 - 已运行
example/train.py(CPU 回退,CUDA 初始化警告),生成example/results/model.pt;已运行example/sample.py得到采样张量形状(2, 64, 53)和(2, 64, 30),并将加载方式改为weights_only=True。 - 已将
train.py和sample.py改为自动选择 GPU(可用则使用,否则回退 CPU),并记录当前环境下/dev/nvidia*不存在导致 CUDA 不可用。