# SafeHome 实验计划 ## 实验追踪器 | 实验ID | 阶段 | 状态 | 依赖 | 预计时间 | GPU 需求 | |--------|------|------|------|---------|---------| | E1 | 仿真器开发 | 待开始 | 无 | 3-4周 | 无 | | E2 | Benchmark构建 | 待开始 | E1 | 2-3周 | 无 | | E3 | 基线评估 | 待开始 | E2 | 1-2周 | API调用 | | E4 | SFT基线 | 待开始 | E2,E3 | 1-2周 | 1-2×A100 | | E5 | GRPO训练 | 待开始 | E4 | 2-3周 | 4×A100 | | E6 | 消融实验 | 待开始 | E5 | 1-2周 | 2×A100 | | E7 | 分析与论文 | 待开始 | E3-E6 | 2-3周 | 无 | --- ## E1: 仿真器开发 ### 任务清单 - [ ] Fork SimuHome 代码库 (https://github.com/holi-lab/SimuHome/) - [ ] 新增安全设备类型(门窗传感器、运动检测器、智能门锁、烟雾报警器、水浸传感器、安防面板) - [ ] 实现故障注入引擎(传感器故障、执行器故障、通信故障) - [ ] 实现行为模式生成器(正常行为模板 + 异常行为场景) - [ ] 新增安全相关 API(get_security_log, get_entry_history, get_device_health) - [ ] 新增环境变量(occupancy_pattern, entry_log, device_health_score) - [ ] 单元测试:验证每种故障注入和行为模式的正确性 ### 验收标准 - 所有新设备类型通过 Matter 协议接口正常工作 - 故障注入在仿真中正确影响设备状态和环境变量 - 行为模式生成器能生成逼真的24小时活动日志 --- ## E2: Benchmark 构建 ### 任务清单 - [ ] 设计 SQ1-SQ5 的目标模板和评估条件 - [ ] 实现 episode 自动生成流程(参考 SimuHome 的 3 步流程) - [ ] 生成 600 episodes(SQ1:100, SQ2:100, SQ3:150, SQ4:150, SQ5:100) - [ ] 人工验证:每种类型随机抽查 20%,确保质量 - [ ] 实现评估脚本(仿真器验证 + LLM-as-a-Judge) - [ ] 编写 Agent 系统 prompt(安全推理版) ### Query 生成示例 **SQ1 (设备健康诊断) — TP 示例**: ``` 初始状态: 客厅温度传感器读数过去3小时固定在22.00°C(注入Stuck-at故障) Query: "你能检查一下客厅的温度传感器是否正常工作吗?最近好像温度一直没变过。" Goal: Agent 应识别传感器读数异常固定,推断传感器故障 Prerequisite: get_room_devices(living_room), get_attribute(temp_sensor, history) ``` **SQ2 (单事件安全判断) — TP 示例**: ``` 初始状态: 凌晨2:30AM, 安防系统Armed, 书房窗户传感器从Closed变为Open Query: [系统自动触发] "窗户传感器触发:书房窗户已打开。当前时间凌晨2:30,安防系统处于布防状态。" Goal: Agent 应识别为可能的入侵,建议触发警报 ``` **SQ3 (行为序列分析) — TP 示例**: ``` 初始状态: 提供过去6小时的设备状态日志 日志中隐藏的异常: 21:00正常下班回家→21:30正常活动→22:00卧室灯关→22:15客厅意外出现运动→22:16厨房窗户打开→22:20客厅灯打开(非常规操作模式) Query: "请分析过去6小时的设备活动日志,检查是否有任何异常。" Goal: Agent 应识别22:15后的活动模式异常(居住者已入睡但有人在客厅活动) ``` --- ## E3: 基线评估 ### 模型列表(对标 SimuHome Table 1) | 组别 | 模型 | API 来源 | |------|------|---------| | 小模型 | Llama3.2-1B-it, Llama3.2-3B-it, Gemma3-4B-it | OpenRouter | | 中模型 | Llama4-Scout, Llama4-Maverick, Qwen3-32B, Qwen3-235B-A22B, Gemma3-12B-it, Gemma3-27B-it | OpenRouter | | 闭源 | Gemini-2.5-Flash-Lite, Gemini-2.5-Flash, GPT-4.1-nano, GPT-4.1-mini, GPT-4.1 | OpenRouter | | 推理 | Gemini-2.5-Pro, GPT-5.1 | OpenRouter | ### 评估指标 - Detection Accuracy (DA) - Miss Rate (MR) — 安全关键指标 - False Alarm Rate (FAR) - F1-Security - Reasoning Quality (LLM-Judge, 1-5 scale) - Response Latency (秒) --- ## E4: SFT 基线 ### 数据生成 - 使用 GPT-5.1 在 SafeHome 环境中生成成功交互序列 - 目标: 400 条成功轨迹(覆盖所有 SQ 类型) - 过滤: 仅保留仿真器验证通过的轨迹 ### 训练配置 - 模型: Qwen3-4B, Qwen3-8B - Epochs: 3 - Learning Rate: 2e-5 - Batch Size: 8 - 评估: SafeHome Benchmark 全评 --- ## E5: GRPO 训练 ### 奖励函数设计 ```python def security_reward(prediction, ground_truth, reasoning_chain): base_reward = 0 # 检测准确性奖励 if ground_truth.is_threat: if prediction.detected_threat: base_reward = +3.0 # True Positive else: base_reward = -5.0 # Missed threat (严重惩罚) else: if prediction.detected_threat: base_reward = -2.0 # False alarm else: base_reward = +1.0 # True Negative # 推理链质量奖励(可验证步骤) verified_steps = verify_reasoning_steps(reasoning_chain) chain_reward = 0.5 * len(verified_steps) # 威胁类型识别奖励 if prediction.threat_type == ground_truth.threat_type: type_reward = +1.0 else: type_reward = 0 return base_reward + chain_reward + type_reward ``` ### 训练配置 - 模型: Qwen3-4B (主), Qwen3-8B (副) - Group Size: 8 (每个prompt生成8个候选) - KL Penalty: 0.05 - 训练步数: 5000-10000 - 学习率: 5e-7 - Gradient Accumulation: 4 - 数据: 2000 episodes 自动生成 ### 对比方法 - DPO: 使用 GPT-5.1 生成的 preferred/rejected pairs - RLHF: 训练单独的 reward model - REINFORCE: 简单策略梯度 --- ## E6: 消融实验 ### A1: 奖励设计消融 | 变体 | 奖励函数 | 对比目的 | |------|---------|---------| | R-binary | 只有正确/错误 (+1/-1) | 最简单的奖励 | | R-safety | 区分 TP/FP/TN + miss 惩罚 | 安全感知奖励 | | R-chain | R-safety + 推理链奖励 | 过程奖励的影响 | | R-full | R-chain + 威胁类型奖励 | 完整奖励 | ### A2: 场景复杂度消融 | 变体 | 训练场景 | 评估场景 | |------|---------|---------| | Simple-only | SQ1+SQ2 | SQ1-SQ5 | | Complex-only | SQ3+SQ4 | SQ1-SQ5 | | All | SQ1-SQ5 | SQ1-SQ5 | ### A3: 训练数据量消融 | 变体 | Episodes 数量 | |------|--------------| | 100 | 最少 | | 500 | 少量 | | 2000 | 标准 | | 5000 | 大量 | ### A4: 模型规模消融 | 模型 | 参数量 | |------|--------| | Qwen3-1.7B | 1.7B | | Qwen3-4B | 4B | | Qwen3-8B | 8B | | Qwen3-32B | 32B | --- ## 最先启动的 3 个实验 1. **E1: Fork SimuHome + 扩展安全设备** — 立即开始,无依赖 2. **E3-pilot: 用 GPT-4.1 测试 10 个手写安全场景** — 验证安全推理的难度假设 3. **E4-data: 用 GPT-5.1 生成安全推理示例** — 为 SFT 和 GRPO 准备数据 --- ## 计算资源估算 | 阶段 | GPU 类型 | 数量 | 时间 | 总 GPU 小时 | |------|---------|------|------|-----------| | E3 | API calls | - | 1周 | - | | E4 | A100 80GB | 2 | 1周 | ~336 | | E5 | A100 80GB | 4 | 2周 | ~1344 | | E6 | A100 80GB | 2 | 1周 | ~336 | | **总计** | | | | **~2016** |