Minimind/experiment/EXPERIMENT_TEMPLATE.md

337 lines
9.2 KiB
Markdown
Raw Normal View History

2025-08-01 15:54:21 +08:00
# 实验记录模版 - Experiment [VERSION]
> **🎯 使用说明**:
> - 🧑‍🔬 **[人类填写]** - 实验开始前由人类研究者填写
> - 🤖 **[AI构建]** - 实验构建过程中由AI自动填写
> - ✅ **[AI完成]** - 实验完成后由AI分析填写
---
## 🧠 AI思考过程
### 🤖 **[AI构建]** 实验设计思路
**问题分析**:
```
[PROBLEM_ANALYSIS]
- 当前问题: [CURRENT_ISSUES]
- 关键挑战: [KEY_CHALLENGES]
- 解决思路: [SOLUTION_APPROACH]
```
**参数选择逻辑**:
```
[PARAMETER_REASONING]
- 模型架构选择: [MODEL_CHOICE_REASONING]
- 超参数设定: [HYPERPARAMETER_REASONING]
- 数据配置: [DATA_CONFIG_REASONING]
```
**预期影响评估**:
```
[IMPACT_ASSESSMENT]
- 性能预期: [PERFORMANCE_EXPECTATIONS]
- 资源需求: [RESOURCE_REQUIREMENTS]
- 潜在风险: [POTENTIAL_RISKS]
```
### 🤖 **[AI构建]** 决策推理过程
**关键决策点**:
1. **[DECISION_POINT_1]**
- 选项: `[OPTIONS_1]`
- 选择: `[CHOICE_1]`
- 理由: `[REASONING_1]`
2. **[DECISION_POINT_2]**
- 选项: `[OPTIONS_2]`
- 选择: `[CHOICE_2]`
- 理由: `[REASONING_2]`
3. **[DECISION_POINT_3]**
- 选项: `[OPTIONS_3]`
- 选择: `[CHOICE_3]`
- 理由: `[REASONING_3]`
**权衡考量**:
```
[TRADE_OFF_ANALYSIS]
- 性能 vs 资源: [PERFORMANCE_VS_RESOURCE]
- 稳定性 vs 速度: [STABILITY_VS_SPEED]
- 创新性 vs 风险: [INNOVATION_VS_RISK]
```
---
## 📝 Git变更记录
### 🤖 **[AI构建]** 代码修改概述
**变更概览**:
- 修改文件数: `[MODIFIED_FILES_COUNT]`
- 新增代码行: `[ADDED_LINES]`
- 删除代码行: `[DELETED_LINES]`
- 修改类型: `[CHANGE_TYPE]` (功能增强/Bug修复/参数调优/架构重构)
### 🤖 **[AI构建]** 详细变更列表
| 文件路径 | 修改类型 | 修改原因 | 关键变更 |
|---------|----------|---------|----------|
| `[FILE_PATH_1]` | `[CHANGE_TYPE_1]` | `[REASON_1]` | `[KEY_CHANGES_1]` |
| `[FILE_PATH_2]` | `[CHANGE_TYPE_2]` | `[REASON_2]` | `[KEY_CHANGES_2]` |
| `[FILE_PATH_3]` | `[CHANGE_TYPE_3]` | `[REASON_3]` | `[KEY_CHANGES_3]` |
### 🤖 **[AI构建]** 关键代码片段
**核心修改**:
```python
# [DESCRIPTION_OF_CHANGE_1]
[CODE_SNIPPET_1]
```
```python
# [DESCRIPTION_OF_CHANGE_2]
[CODE_SNIPPET_2]
```
### 🤖 **[AI构建]** 版本对比
**与上一版本差异**:
- **功能变化**: `[FUNCTIONAL_CHANGES]`
- **性能影响**: `[PERFORMANCE_IMPACT]`
- **兼容性**: `[COMPATIBILITY_NOTES]`
- **依赖变更**: `[DEPENDENCY_CHANGES]`
**Git Diff 摘要**:
```bash
[GIT_DIFF_SUMMARY]
```
---
## 📋 实验基本信息
### 🧑‍🔬 **[人类填写]** 实验目标
**基于实验**: `[PREVIOUS_EXPERIMENT]`
<!-- 上一版实验编号,如 experiment_1.4.0,如果是全新实验则填 None -->
**实验目的**:
<!-- 描述本次实验要解决的问题或验证的假设 -->
**研究假设**:
<!-- 明确的可验证假设 -->
**预期结果**:
<!-- 期望达到的效果或指标 -->
**实验重点**:
<!-- 本次实验的核心关注点 -->
### 🤖 **[AI构建]** 实验信息
**实验编号**: `experiment_[VERSION]`
**创建时间**: `[TIMESTAMP]`
**实验脚本**: `run_file/experiment_[VERSION].sh`
**输出目录**: `out/experiment_[VERSION]`
**实验环境**: `[ENVIRONMENT_INFO]`
---
## ⚙️ 配置参数
### 🤖 **[AI构建]** 模型配置
| 参数类别 | 参数名 | 值 | 说明 |
|---------|--------|----|----- |
| **模型架构** | dim | `[DIM]` | 模型维度 |
| | n_layers | `[N_LAYERS]` | Transformer层数 |
| | n_heads | `[N_HEADS]` | 注意力头数 |
| | max_seq_len | `[MAX_SEQ_LEN]` | 最大序列长度 |
| | model_type | `[MODEL_TYPE]` | 模型类型 (model/model_original/model_no_feed) |
| **知识库** | knowledge_num | `[KNOWLEDGE_NUM]` | 知识条目数量 |
| | knowledge_length | `[KNOWLEDGE_LENGTH]` | 单条知识长度 |
| | use_moe | `[USE_MOE]` | 是否使用专家混合 |
### 🤖 **[AI构建]** 训练配置
| 参数类别 | 参数名 | 值 | 说明 |
|---------|--------|----|----- |
| **训练设置** | epochs | `[EPOCHS]` | 训练轮次 |
| | batch_size | `[BATCH_SIZE]` | 批次大小 |
| | accumulation_steps | `[ACCUMULATION_STEPS]` | 梯度累积步数 |
| | learning_rate | `[LEARNING_RATE]` | 学习率 |
| | dtype | `[DTYPE]` | 数据类型 |
| | grad_clip | `[GRAD_CLIP]` | 梯度裁剪 |
| **数据路径** | data_path | `[DATA_PATH]` | 训练数据路径 |
| | database_init_path | `[DATABASE_INIT_PATH]` | 知识库初始化路径 |
| | cluster_cache_path | `[CLUSTER_CACHE_PATH]` | 聚类缓存路径 |
### 🤖 **[AI构建]** 硬件配置
| 配置项 | 值 | 说明 |
|-------|----|----- |
| **GPU设置** | CUDA_VISIBLE_DEVICES | `[CUDA_DEVICES]` | 使用的GPU |
| | num_processes | `[NUM_PROCESSES]` | 进程数 |
| | mixed_precision | `[MIXED_PRECISION]` | 混合精度 |
| **监控** | use_swanlab | `[USE_SWANLAB]` | 是否使用SwanLab |
| | swanlab_project | `[SWANLAB_PROJECT]` | SwanLab项目名 |
---
## 🚀 执行记录
### 🤖 **[AI构建]** 开始执行
- **开始时间**: `[START_TIME]`
- **命令行**:
```bash
[COMMAND_LINE]
```
### 🤖 **[AI构建]** 训练进度
| 阶段 | 开始时间 | 结束时间 | 状态 | 备注 |
|-----|---------|---------|------|-----|
| 环境初始化 | `[INIT_START]` | `[INIT_END]` | `[INIT_STATUS]` | `[INIT_NOTES]` |
| 数据加载 | `[DATA_START]` | `[DATA_END]` | `[DATA_STATUS]` | `[DATA_NOTES]` |
| 模型初始化 | `[MODEL_START]` | `[MODEL_END]` | `[MODEL_STATUS]` | `[MODEL_NOTES]` |
| 训练执行 | `[TRAIN_START]` | `[TRAIN_END]` | `[TRAIN_STATUS]` | `[TRAIN_NOTES]` |
### 🤖 **[AI构建]** 错误日志
```
[ERROR_LOGS]
```
---
## 📊 训练结果
### ✅ **[AI完成]** 关键指标
| 指标 | 最终值 | 最佳值 | 达到轮次 | 目标值 | 是否达标 |
|-----|--------|--------|---------|--------|----------|
| **Loss** | `[FINAL_LOSS]` | `[BEST_LOSS]` | `[BEST_LOSS_EPOCH]` | `[TARGET_LOSS]` | `[LOSS_ACHIEVED]` |
| **困惑度** | `[FINAL_PPL]` | `[BEST_PPL]` | `[BEST_PPL_EPOCH]` | `[TARGET_PPL]` | `[PPL_ACHIEVED]` |
| **学习率** | `[FINAL_LR]` | - | - | - | - |
| **GPU内存** | `[FINAL_GPU_MEM]` | `[PEAK_GPU_MEM]` | - | - | `[GPU_WITHIN_LIMIT]` |
### ✅ **[AI完成]** 训练曲线分析
**Loss收敛情况**:
```
[LOSS_CONVERGENCE_ANALYSIS]
```
**内存使用分析**:
```
[MEMORY_USAGE_ANALYSIS]
```
**训练稳定性**:
```
[TRAINING_STABILITY_ANALYSIS]
```
### ✅ **[AI完成]** 模型质量评估
**文本生成样例** (前10个token):
```
[TEXT_GENERATION_SAMPLES]
```
**生成质量评估**:
- 连贯性: `[COHERENCE_SCORE]`
- 流畅度: `[FLUENCY_SCORE]`
- 多样性: `[DIVERSITY_SCORE]`
### ✅ **[AI完成]** 与基线对比
| 模型 | Loss | 困惑度 | 生成质量 | 训练时间 | GPU内存 |
|------|------|--------|---------|---------|---------|
| **本实验** | `[CURRENT_LOSS]` | `[CURRENT_PPL]` | `[CURRENT_QUALITY]` | `[CURRENT_TIME]` | `[CURRENT_MEM]` |
| **model_original** | `[BASELINE_LOSS]` | `[BASELINE_PPL]` | `[BASELINE_QUALITY]` | `[BASELINE_TIME]` | `[BASELINE_MEM]` |
| **提升比例** | `[LOSS_IMPROVEMENT]` | `[PPL_IMPROVEMENT]` | `[QUALITY_IMPROVEMENT]` | `[TIME_CHANGE]` | `[MEM_CHANGE]` |
---
## 📈 深度分析
### ✅ **[AI完成]** 实验发现
**主要发现**:
1. `[FINDING_1]`
2. `[FINDING_2]`
3. `[FINDING_3]`
**异常情况**:
- `[ANOMALY_1]`
- `[ANOMALY_2]`
**性能瓶颈**:
- `[BOTTLENECK_1]`
- `[BOTTLENECK_2]`
### ✅ **[AI完成]** 问题诊断
**已知问题**:
1. **问题**: `[PROBLEM_1]`
- **表现**: `[SYMPTOM_1]`
- **可能原因**: `[CAUSE_1]`
- **建议方案**: `[SOLUTION_1]`
2. **问题**: `[PROBLEM_2]`
- **表现**: `[SYMPTOM_2]`
- **可能原因**: `[CAUSE_2]`
- **建议方案**: `[SOLUTION_2]`
### ✅ **[AI完成]** 改进建议
**短期优化** (下个实验):
- `[SHORT_TERM_1]`
- `[SHORT_TERM_2]`
**中期改进** (未来3-5个实验):
- `[MEDIUM_TERM_1]`
- `[MEDIUM_TERM_2]`
**长期研究方向**:
- `[LONG_TERM_1]`
- `[LONG_TERM_2]`
---
## 🎯 实验结论
### ✅ **[AI完成]** 假设验证
| 假设 | 验证结果 | 支撑证据 | 置信度 |
|-----|----------|---------|--------|
| `[HYPOTHESIS_1]` | `[RESULT_1]` | `[EVIDENCE_1]` | `[CONFIDENCE_1]` |
| `[HYPOTHESIS_2]` | `[RESULT_2]` | `[EVIDENCE_2]` | `[CONFIDENCE_2]` |
### ✅ **[AI完成]** 实验评价
**目标达成情况**: `[GOAL_ACHIEVEMENT]` / 10
**实验成功度**: `[SUCCESS_RATE]` / 10
**数据可信度**: `[DATA_RELIABILITY]` / 10
**总体结论**:
```
[OVERALL_CONCLUSION]
```
**关键收获**:
- `[KEY_LEARNING_1]`
- `[KEY_LEARNING_2]`
- `[KEY_LEARNING_3]`
### ✅ **[AI完成]** 后续行动
**立即行动**:
- [ ] `[IMMEDIATE_ACTION_1]`
- [ ] `[IMMEDIATE_ACTION_2]`
**下个实验计划**:
- 实验编号: `experiment_[NEXT_VERSION]`
- 主要改动: `[NEXT_EXPERIMENT_CHANGES]`
- 预期改进: `[NEXT_EXPERIMENT_EXPECTATIONS]`
---
## 📁 文件清单
### ✅ **[AI完成]** 生成文件
- 实验脚本: `run_file/experiment_[VERSION].sh`
- 模型检查点: `out/experiment_[VERSION]/checkpoint_*.pt`
- 训练日志: `out/experiment_[VERSION]/train.log`
- SwanLab链接: `[SWANLAB_URL]`
### ✅ **[AI完成]** 实验环境
```bash
# 实验环境信息
[ENVIRONMENT_SNAPSHOT]
```
---
**实验完成时间**: `[COMPLETION_TIME]`
**审核状态**: 🔄 待审核 | ✅ 已审核 | ❌ 需修改
**Git提交**: 🔄 待提交 | ✅ 已提交 (`[COMMIT_HASH]`)