29 Commits

Author SHA1 Message Date
1ca2f10e65 update 2025-09-06 16:59:08 +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
cf9acb2064 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-14 23:04: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
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
75265f6652 使用分类来获取谓词 2025-07-05 22:18:32 +08:00
fcab661af9 更新了配置文件 2025-06-30 19:51:07 +08:00
31eff0e3de 更新了两个模型 2025-06-30 18:54:42 +08:00
74e9293c9a DynamicKV-LLM Extra v1.0.0 2025-06-29 16:01:36 +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
000e17a93f 修正了key分解、负载均衡等错误 2025-06-06 11:25:59 +08:00
67c632d010 update 2025-05-27 11:46:18 +08:00
Jax922
45da3b383b DynamicKV-LLM Pretrain v1.1.2 2025-05-23 01:18:08 +08:00
Jax922
42e3d38a3f 使用变量代替固定值 2025-05-21 08:14:36 +00:00
Gary
d7fe504e1e update 2025-05-16 08:38:59 +00:00
089afd6728 DynamicKV-LLM Pretrain v1.1.0 2025-05-14 00:01:40 +08:00