|
|
57138a5a79
|
Merge branch 'pretrain' of ssh://110.42.53.85:222/iomgaa/Minimind into pretrain
|
2025-09-06 17:00:30 +08:00 |
|
|
|
1ca2f10e65
|
update
|
2025-09-06 16:59:08 +08:00 |
|
Aurora
|
654fa17923
|
update
|
2025-09-06 16:17:22 +08:00 |
|
|
|
2f6995d667
|
update
|
2025-09-06 15:12:05 +08:00 |
|
|
|
cb3152dc94
|
update
|
2025-09-06 12:12:08 +08:00 |
|
|
|
afd4fd1f0f
|
Experiment 1.4.9: Memory Bank优化 - 顺序冻结 + 相似度Loss + 维度修复
🔬 实验基础: 基于实验1.4.7的重要改进
🎯 研究目标: 提升Memory Bank的知识保护和检索准确性
🚀 三大核心创新:
1️⃣ 智能冻结策略改进
• 从随机冻结 → 顺序冻结前20%记忆条目
• 保护重要知识: 假设前面的记忆条目更重要,需要优先保护
• freeze_ratio=0.2: 冻结前20%的memory_bank条目
2️⃣ 查询-知识相似度Loss
• 新增相似度监督信号: 衡量查询向量与选中知识的匹配度
• 余弦相似度计算: F.cosine_similarity(query, selected_memory)
• 相似度统计: 平均值、最大值、最小值、标准差全方位监控
3️⃣ 维度截断问题修复
• 统一维度处理: knowledge_dim → dim,避免信息截断
• concat_dim修正: dim + num_selected * dim (之前是knowledge_dim)
• 记忆向量完整保留: 解决查询结果维度被不当压缩的问题
🏗️ 架构优化细节:
• GatedMemoryFusion维度一致性: 统一使用dim维度
• 记忆池化策略: 使用平均池化压缩knowledge_length维度
• 残差连接增强: 改进memory_output与主路径的融合
📊 实验配置:
• experiment_1_4_9-02: 8层网络完整测试
• experiment_1_4_9-04: 1层网络最小验证
• EMA更新机制: decay=0.9, update_freq=5
• 数据库初始化: sentence_trex_data.json文本数据
💡 技术假设:
顺序冻结策略能更好地保护重要知识,相似度Loss能提升检索精度,
维度统一能减少信息丢失,三者结合将显著改善Memory Bank性能。
🛠️ 基础设施改进:
• UUID映射系统: 跟踪记忆条目的原始数据源
• 增强缓存机制: 支持映射文件自动生成
• 监控系统升级: 相似度统计信息实时追踪
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-05 14:24:48 +08:00 |
|
|
|
495fc412cd
|
Experiment 1.4.8: Memory Bank多样性检查 + knowledge_num优化
- 修改 model_memory_1_4_8.py: 增加记忆选择多样性监控机制
- 优化 ds_config.json: 调整DeepSpeed配置以支持更大知识库
- 更新 experiment_1_4_8.sh: 配置knowledge_num=1048576提升记忆容量
- 新增 experiment_1_4_7-04.sh: 补充实验对比脚本
- 模型版本管理: 创建model_memory_1_4_8.py用于后续评估
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-01 15:35:14 +08:00 |
|
|
|
e00df32e55
|
update
|
2025-08-20 13:46:42 +08:00 |
|
|
|
44fe6259ec
|
Experiment 1.4.7: Memory Bank文本初始化 + 部分冻结机制
## 主要改进
- 🔥 Memory Bank文本初始化:使用sentence_trex_data.json真实文本数据
- 🔥 部分冻结机制:新增freeze_ratio=0.2,保护20%重要记忆条目
- 📊 性能提升:推理Loss改善5.5% (2.4699 vs 2.6142)
## 核心变更
### model/LMConfig.py
- 新增freeze_ratio参数,支持Memory Bank条目冻结控制
### model/model_memory.py
- 实现freeze_mask机制,随机冻结20%记忆条目
- EMA更新过滤:只更新未冻结条目,保护重要知识
- 统计信息增强:新增冻结条目数量和比例监控
### train_pretrain_accelerate.py
- model_memory完整初始化支持:文本数据处理、缓存机制
- sentence_trex_data.json文本tokenization和长度处理
- memory_bank_init缓存优化,提升重复实验效率
### 实验文档
- experiment/EXPERIMENT_1_4_7.md:完整实验记录和结果分析
- run_file/experiment_1_4_7.sh:实验执行脚本
- CLAUDE.md:架构设计防护规则和模型版本管理规范
## 实验结果
✅ 文本初始化效果验证:Loss性能改善5.5%
✅ 冻结机制技术实现:209,715/1,048,576条目成功冻结
❌ 生成连贯性仍需改进:架构级问题待解决
## 下一步优化
- EOS token控制修复
- Cross-attention权重优化
- 生成参数调优(temperature/top_p)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-19 19:32:52 +08:00 |
|
|
|
d07c2aa2e6
|
Experiment 1.4.6: Token-based Memory架构实现
完成实验1.4.6的Token-based Memory架构,实现以下改进:
- 记忆库从连续特征向量存储改为离散token ID存储
- 实现双向编解码机制(embedding→特征→output→token)
- 优化EMA更新参数:ema_decay=0.9, ema_update_freq=5
- 显著降低GPU显存使用:从23GB降至13GB(-43%)
- 推理Loss从2.6382降至2.6142(改善0.9%)
技术亮点:
- 有效表示维度从128提升至4096(32x增强)
- 稀疏缓存机制避免内存爆炸
- 立即压缩策略平衡显存和性能
- 人类可解释的记忆内容
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-12 11:07:23 +08:00 |
|
|
|
a7fe947a35
|
Experiment 1.4.5:使用VQ-VAE的EMA来更新数据库
|
2025-08-09 10:47:35 +08:00 |
|
|
|
e61d92c4bc
|
Experiment 1.4.4:负载平衡有效
|
2025-08-07 11:43:23 +08:00 |
|
|
|
fcdbd220a8
|
Experiment 1.4.3:极度过拟合
|
2025-08-06 11:55:36 +08:00 |
|
|
|
57d6d768e1
|
Experiment 1.4.2: 门控MLP融合串型连接验证连接方式对记忆库性能的影响
## 实验目标
验证连接方式是否是导致实验1.4.1性能下降的主要原因,通过将跳接(交叉注意力)
改为串型连接(门控MLP融合)来测试记忆库机制的有效性。
## 核心改进
- 保留Product Key Memory记忆选择机制
- 使用串型连接替代跳接连接
- 门控MLP融合替代交叉注意力
- 拼接h_attn和选中记忆进行处理
## 实验结果
- 训练Loss: 2.75 (vs 1.4.1的2.84, 1.4.0的2.43)
- 评估Loss: 2.33 (vs 1.4.1的7.68, 1.4.0的1.99)
- 生成质量: 6.2/10 (vs 1.4.1的2.0/10, 1.4.0的7.5/10)
- 训练时间: 15.4小时,GPU内存: ~22GB
## 关键发现
✅ 连接方式确实是性能差异的关键因素
✅ 门控MLP融合显著优于交叉注意力
✅ 记忆库机制本身可行,但需要优化记忆质量
## 技术实现
- 实现GatedMemoryFusion类替代CrossAttentionMemory
- 使用类SwiGLU的门控MLP结构
- 拼接输入维度: dim + num_selected * knowledge_dim
- 门控激活函数: SiLU + 元素级乘法
## 文件变更
- model/model_memory.py: 实现门控MLP融合机制
- run_file/experiment_1_4_2.sh: 实验执行脚本
- experiment/EXPERIMENT_1_4_2.md: 完整实验记录和分析
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-04 20:12:00 +08:00 |
|
|
|
bba325ef7e
|
Experiment 1_4_1
|
2025-08-03 14:25:26 +08:00 |
|
|
|
c0424644f5
|
Experiment_1_4_0
|
2025-08-01 15:54:21 +08:00 |
|
|
|
d9d281967e
|
修复了一些bug
|
2025-07-17 12:06:28 +08:00 |
|
|
|
d701003f8a
|
pretrain过程中会打印10个token以方便观察
|
2025-07-17 00:05:34 +08:00 |
|
|
|
2797b76939
|
experiment_1.3.0-1.3.2
|
2025-07-13 21:28:46 +08:00 |
|
|
|
d6617702a5
|
DynamicKV-LLM Pretrain v1.2.2:新数据集;使用uv;消除内存泄漏
|
2025-06-25 20:27:28 +08:00 |
|
|
|
770c34f0e3
|
DynamicKV-LLM Pretrain v1.2.1
|
2025-06-08 02:20:36 +00:00 |
|
|
|
1678e739b6
|
DynamicKV-LLM Pretrain v1.2.0
|
2025-06-07 02:41:45 +00:00 |
|
Jax922
|
feeccf733c
|
DynamicKV-LLM Pretrain v1.1.1
|
2025-05-22 10:05:31 +08:00 |
|
Gary
|
d7fe504e1e
|
update
|
2025-05-16 08:38:59 +00:00 |
|
Jax922
|
5841f8b4e5
|
DynamicKV-LLM Pretrain v1.1.0
|
2025-05-14 00:42:50 +08:00 |
|
|
|
089afd6728
|
DynamicKV-LLM Pretrain v1.1.0
|
2025-05-14 00:01:40 +08:00 |
|