Minimind/experiment
2025-08-01 15:54:21 +08:00
..
2025-08-01 15:54:21 +08:00
2025-08-01 15:54:21 +08:00
2025-08-01 15:54:21 +08:00

🧪 MiniMind 实验管理系统

系统概述: 标准化的实验管理框架,确保 MiniMind 预训练实验的可重现性、可追踪性和高质量协作。


📋 目录


🚀 快速开始

1. 实验创建流程

# 1. 🧑‍🔬 人类: 确定实验目标和版本号
EXPERIMENT_VERSION="1.4.1"

# 2. 🤖 AI: 复制模版创建新实验
cp experiment/EXPERIMENT_TEMPLATE.md experiment/experiment_${EXPERIMENT_VERSION}.md
cp run_file/experiment_template.sh run_file/experiment_${EXPERIMENT_VERSION}.sh

# 3. 🧑‍🔬 人类: 填写实验基本信息(见下文详细说明)

# 4. 🤖 AI: 根据实验目标配置参数并执行
bash run_file/experiment_${EXPERIMENT_VERSION}.sh

# 5. 🤖 AI: 完成实验记录和结果分析

# 6. 🧑‍🔬 人类: 审核实验记录

# 7. 🤖 AI: 提交实验到git经人类确认后

2. 实验版本命名规范

版本格式 说明 示例
X.Y.Z 主要.次要.修订 1.4.1
主要版本 (X) 重大架构变更 从 model_original 到 model
次要版本 (Y) 功能增强或重要参数调整 新增知识库功能
修订版本 (Z) 小幅调整和优化 学习率调整、批次大小优化

🤝 协作流程

人类研究者职责 🧑‍🔬

实验前期 (必填项目)

experiment_X.Y.Z.md 中填写:

## 📋 实验基本信息

### 🧑‍🔬 **[人类填写]** 实验目标
**实验目的**: 
[具体描述要解决的问题,如:"验证增大知识库规模对生成质量的影响"]

**研究假设**: 
[明确的可验证假设,如:"knowledge_num从1M增加到2M会提升文本连贯性"]

**预期结果**: 
[量化的期望指标,如:"Loss降低至0.5以下,生成文本连贯性评分>7.0"]

**实验重点**: 
[关键验证点,如:"重点观察内存使用情况和训练稳定性"]

实验后期 (审核职责)

  • 结果审核: 验证AI分析的准确性和合理性
  • 假设验证: 确认实验是否回答了预设问题
  • 质量把关: 确保实验记录完整、结论可信
  • 提交决策: 决定是否将实验提交到git仓库

AI助手职责 🤖

实验构建期

  1. 参数配置: 根据实验目标自动填写所有 [AI构建] 标记的参数
  2. 环境检查: 验证GPU、数据文件、Python环境等
  3. 脚本生成: 创建可执行的实验脚本
  4. 预检验证: 确保配置的合理性和可执行性

实验执行期

  1. 实时监控: 记录训练进度、资源使用情况
  2. 异常处理: 捕获和记录错误信息
  3. 状态更新: 实时更新实验记录中的执行状态

实验完成期

  1. 结果分析: 自动分析训练曲线、性能指标
  2. 质量评估: 生成文本样例和质量评分
  3. 问题诊断: 识别异常情况并提供改进建议
  4. 记录完善: 填写所有 [AI完成] 标记的分析内容

📝 模版使用

实验记录模版 (EXPERIMENT_TEMPLATE.md)

🧑‍🔬 人类填写区域

  • 实验目标: 明确、具体、可量化
  • 研究假设: 可验证的科学假设
  • 预期结果: 具体的成功标准

🤖 AI构建区域

  • 配置参数: 所有模型和训练参数
  • 执行记录: 训练过程的实时状态
  • 环境信息: 硬件和软件环境快照

AI完成区域

  • 结果分析: 训练指标和性能评估
  • 问题诊断: 异常检测和原因分析
  • 改进建议: 基于结果的优化方案

实验脚本模版 (experiment_template.sh)

关键占位符说明

占位符 类型 说明 示例值
[VERSION] 🧑‍🔬 人类 实验版本号 1.4.1
[DESCRIPTION] 🧑‍🔬 人类 实验简短描述 "验证2M知识库对生成质量的影响"
[CUDA_DEVICES] 🤖 AI GPU设备配置 00,1,2,3
[BATCH_SIZE] 🤖 AI 批次大小 128
[LEARNING_RATE] 🤖 AI 学习率 8e-5
[MODEL_TYPE] 🤖 AI 模型类型 model
[KNOWLEDGE_NUM] 🤖 AI 知识库大小 2097152

📋 实验规范

实验分类标准

🧪 探索性实验

  • 目的: 验证新想法、测试可行性
  • 规模: 小规模、快速验证
  • 版本: 通常为 X.Y.0(新功能首次测试)
  • 时长: 1-3小时内完成

🔬 验证性实验

  • 目的: 确认假设、对比基线
  • 规模: 中等规模、完整训练
  • 版本: 通常为 X.Y.1-X.Y.9(功能优化迭代)
  • 时长: 3-12小时

🏆 生产性实验

  • 目的: 最终模型训练、性能优化
  • 规模: 大规模、完整流程
  • 版本: 通常为 X.0.0(重要里程碑)
  • 时长: 12小时以上

质量标准

合格实验标准

  • 实验目标明确具体
  • 参数配置完整无误
  • 训练过程稳定收敛
  • 结果记录详细准确
  • 问题分析深入合理
  • 改进建议具体可行

🚫 不合格实验情况

  • 目标模糊或无法验证
  • 训练中断或严重错误
  • 数据异常或无法解释
  • 记录不完整或有明显错误
  • 缺乏有效的改进建议

审核流程

  1. AI自检: 完成实验记录后进行自我检查
  2. 人类初审: 研究者检查实验的完整性和准确性
  3. 问题反馈: 如有问题AI修正后重新提交审核
  4. 最终确认: 确认无误后标记" 已审核"
  5. Git提交: 审核通过后提交到版本控制系统

📁 文件结构

experiment/
├── README.md                           # 本文档
├── EXPERIMENT_TEMPLATE.md              # 实验记录模版
├── experiment_1.4.0.md               # 具体实验记录
├── experiment_1.4.1.md               
└── ...

run_file/
├── experiment_template.sh              # 实验脚本模版
├── experiment_1.4.0.sh               # 具体实验脚本
├── experiment_1.4.1.sh
└── ...

out/
├── experiment_1.4.0/                  # 实验输出目录
│   ├── checkpoint_*.pt                # 模型检查点
│   ├── train.log                      # 训练日志
│   └── experiment_info.txt            # 实验信息
└── ...

🛠️ 故障排除

常见问题

1. 模版占位符未替换

现象: 脚本执行时出现 [PLACEHOLDER] 相关错误 解决:

# 检查未替换的占位符
grep -n "\[.*\]" run_file/experiment_X.Y.Z.sh

2. GPU内存不足

现象: CUDA out of memory 解决:

  • 减小 batch_size
  • 增加 accumulation_steps
  • 调整 max_seq_len

3. 数据文件路径错误

现象: FileNotFoundError 解决:

# 检查数据文件是否存在
ls -la /home/pci/ycz/Code/Minimind/dataset/stable/

4. SwanLab连接失败

现象: SwanLab API错误 解决:

  • 检查API密钥配置
  • 确认网络连接正常
  • 验证项目名称正确

调试技巧

开启详细日志

# 在脚本中添加调试选项
export NCCL_DEBUG=INFO
export PYTHONFAULTHANDLER=1
export CUDA_LAUNCH_BLOCKING=1

快速验证

# 测试环境配置
python -c "import torch; print(f'CUDA可用: {torch.cuda.is_available()}')"

# 验证数据加载
python -c "from model.dataset import *; print('数据集加载成功')"

# 检查模型初始化
python -c "from model.model import *; print('模型加载成功')"

📚 最佳实践

实验设计原则

  1. 单一变量: 每次实验只改变一个关键参数
  2. 对照基线: 始终与 model_original 进行对比
  3. 渐进优化: 从小规模到大规模逐步验证
  4. 记录详尽: 记录所有可能影响结果的因素

协作效率提升

  1. 明确目标: 人类提供清晰的实验目标和假设
  2. 及时反馈: 对AI的分析及时给出反馈和指导
  3. 知识积累: 将有效的配置和发现整理成知识库
  4. 版本管理: 重要实验及时提交到git保存

实验优化策略

  1. 资源利用: 合理配置批次大小和GPU使用
  2. 时间管理: 根据实验重要性分配计算资源
  3. 结果复用: 保存有价值的模型检查点和配置
  4. 持续改进: 基于实验结果不断优化流程

🔗 相关链接


💡 提示: 使用此实验管理系统前,请先仔细阅读 CLAUDE.md 了解项目整体架构和配置要求。

最后更新: 2024-XX-XX
维护者: MiniMind 项目组