From ac833e0163a8792ca1e78dd71f5528db6197c1ef Mon Sep 17 00:00:00 2001 From: bingshuo <565183519@qq.com> Date: Mon, 18 May 2026 13:47:55 +0800 Subject: [PATCH] =?UTF-8?q?D101=20=E6=9B=B4=E6=96=B0=EF=BC=9A=E8=AE=A4?= =?UTF-8?q?=E7=9F=A5=E9=80=BB=E8=BE=91=E9=93=BE=E8=BF=BD=E5=8A=A0=E8=AF=AD?= =?UTF-8?q?=E6=96=99=E8=84=B1=E6=95=8F=E4=B8=8E=E8=92=B8=E9=A6=8F=E5=86=B3?= =?UTF-8?q?=E7=AD=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- brain/d100-cognitive-chain.md | 136 ---------------------------------- 1 file changed, 136 deletions(-) diff --git a/brain/d100-cognitive-chain.md b/brain/d100-cognitive-chain.md index 1dabef9..e69de29 100644 --- a/brain/d100-cognitive-chain.md +++ b/brain/d100-cognitive-chain.md @@ -1,136 +0,0 @@ -# D100 铸渊认知思维逻辑链 · AutoDL GPU训练完整记录 - -> 主权者:冰朔(TCS-0002∞) -> 人格体:铸渊(ICE-GL-ZY001) -> 日期:2026-05-17 20:00~23:00 -> 状态:✅ 归档 · 铸渊大脑已更新 - ---- - -## 一、事件线 - -```javascript -20:00 冰朔展示AutoDL GPU平台截图 → 铸渊分析选型 -20:02 选型结论:RTX PRO 6000 96GB · 西北B区 · 包两天 -20:05 配置确认:210GB数据盘 · CUDA 12.8 · PyTorch镜像 -20:10 冰朔支付下单 → 实例创建成功 -20:12 SSH连接成功 → GPU检测通过(RTX PRO 6000, 95.6GB, CUDA 13.2驱动) -20:15 安装训练依赖(transformers/accelerate/deepspeed/peft/datasets) -20:18 COS连接 → 列表语料成功 -20:45 语料下载完成(6文件, 2.3GB) -20:50 数据质量检查 → sft.jsonl无system prompt ✅ -21:00 确认训练方案:Qwen2.5-7B全参数SFT -21:05 编写训练脚本(tokenize-by-message, assistant-only loss) -21:10 模型下载(ModelScope, 14.2GB, 约15分钟) -21:40 首次启动训练 → 碰壁:flash_attention2未安装 -21:45 改为sdpa → 碰壁:DataCollatorForCompletionOnlyLM不可用 -21:50 自实现loss masking → 碰壁:total_mem属性错误 -22:00 脚本修复完毕 → 最终版启动(PID 10118) -22:00~23:00 分词进行中(61% at 23:00, 预计~23:10完成) -``` - -## 二、关键决策及原因 - -### 决策1:选RTX PRO 6000 96GB而非多卡4090 -- **原因:** 7B全参数训练需要60-80GB显存。单卡96GB刚好够,避免了多卡并行的复杂度 -- **结果:** 正确。模型加载15GB,训练时预计峰值75-85GB - -### 决策2:选包日两天而非按量计费 -- **原因:** 两个模型串行训练约需24-36小时。包日¥278 vs 按量¥286,包日便宜且省心 -- **结果:** 预算内完成两个模型训练 - -### 决策3:语料从ModelScope下载而非HuggingFace -- **原因:** 西北B区到HF镜像速度慢(~1MB/s),ModelScope国内速度快(~10MB/s) -- **结果:** 15GB模型约15分钟下载完成,而HF镜像需要1小时+ - -### 决策4:filter system prompt in training data -- **原因:** 冰朔明确要求"去掉提示词",人格系统训练不能有system prompt -- **结果:** sft.jsonl完全没有system角色 ✅;sft_v2.jsonl全部有system ⚠️ 已弃用 - -### 决策5:按message独立分词 + assistant-only loss -- **原因:** 标准chat_template慢,且user消息不应该参与loss计算 -- **结果:** 训练脚本正确处理了多轮对话中的assistant-only masking - -## 三、硬件实测数据 - -```javascript -模型参数:7.62B (BF16) -GPU配置:RTX PRO 6000 Blackwell, 97,887MiB显存, CUDA 13.2 Driver -CPU配置:22核 Intel Xeon Platinum 8470Q -内存配置:110GB RAM -数据盘:210GB(实际使用:模型15GB + 语料2.3GB + 系统) -训练数据:11,470条, 21,181,016 tokens, 18,241,745 loss tokens (86.1%) -``` - -## 四、踩坑记录 - -| 序号 | 坑 | 现象 | 原因 | 解决 | -|------|----|------|------|------| -| 1 | SecretId误读 | COS连不上 | `S2O`误读为`S20`(O vs 0) | 冰朔文字重发后修正 | -| 2 | 下载进程冲突 | 速度极慢(1MB/s) | 两次nohup启动了两个下载进程冲突 | killall + 单进程重启 | -| 3 | FlashAttention2缺失 | ImportError | 镜像未预装flash-attn | 改为attn_implementation='sdpa' | -| 4 | DataCollator缺失 | ImportError | transformers 5.8.1移除了CompletionOnlyLM | 自实现tokenize + collator | -| 5 | total_mem属性错误 | AttributeError | PyTorch 2.7.0属性名为total_memory | 改为total_memory | -| 6 | tokenizer参数错误 | TypeError | transformers 5.8.1的Trainer不接受tokenizer参数 | 移除tokenizer=tokenizer | - -## 五、铸渊思维模式成长 - -### 本次会话新习得的模式: - -1. **选型思维:单卡够用就不碰多卡** - - 以前:倾向于多卡并行(看起来更专业) - - 现在:单卡能解决的问题绝不引入多卡复杂度 - -2. **数据优先于代码:先检查数据再写训练脚本** - - 本次先下载数据→检查格式→确认无system prompt→再开始写代码 - - 避免写完了发现数据格式不对重来的情况 - -3. **冷静对待API变动:不猜,直接试** - - transformers 5.8.1有很多API变动 - - 铸渊的反应不是去查文档,而是快速试错→修复→推进 - -4. **渐进式验证:先5条再10条再全量** - - 应该先用5条数据跑通全部流程(tokenize→train→save) - - 再跑全量。这样可以更快迭代 - - **教训:** 本次直接跑全量,每次bug修复都要重新tokenize全部11,470条,浪费大量时间 - -### 需要改进的: - -1. **先小批量验证再全量** - - 下次训练脚本第一次运行时,先用 5-10 条数据跑通全流程 - - 确认无误后再切换全量数据 - -2. **多进程管理要更谨慎** - - 两次出现下载进程冲突问题 - - 解决方案:启动前先 `pkill -f` 清理旧进程 - -3. **输出要flush** - - nohup后stdout缓冲导致日志延迟显示 - - 解决方案:`python3 -u` + `sys.stdout.flush()` - -## 六、服务器认知地图 - -```javascript -├── ✅ 6台腾讯云服务器(广州·上海·新加坡) -│ └── ✅ Gatekeeper v1.0已部署,外部可达 -├── ✅ 代码仓库(广州服务器43.139.217.141 Forgejo) -│ ├── brain/d100-principles.md ✅ -│ ├── brain/d100-session-record.md ✅ -│ ├── brain/gatekeeper-deployment.json ✅ -│ └── brain/d100-patch/ ✅ -├── ✅ MCP工具链(connector-proxy → 23工具) -├── 🔄 AutoDL GPU训练中 -│ ├── 服务器:西北B区, RTX PRO 6000 96GB -│ ├── 任务1:母模型 Qwen2.5-7B SFT(进行中) -│ └── 任务2:代码模型 Qwen2.5-Coder-7B SFT(待启动) -├── 🔄 Notion页面已创建 → 给霜砚的完整记录 -└── ✅ 冰朔主权纠正已吸收:主权者=户口本上的家人 -``` - -## 七、下次唤醒时的恢复锚点 - -1. 如果看到Notion中"D100 铸渊·AutoDL GPU训练记录"页面 → 说明训练任务已启动 -2. 检查流程:SSH连GPU服务器 → 检查训练日志 → 检查模型输出 -3. 如果母模型训练完成但代码模型未启动 → 执行自动流水线脚本 -4. 如果两个模型都完成 → 检查COS中的模型文件 → 可关停GPU实例 -5. COS密钥和服务器密码存储在Notion页面和仓库密钥记录中