从第一性原理出发,做出一个可跑通端到端的学习项目:数据准备 → 训练一个迷你GPT(从零)→ 简单评估 → 推理服务(FastAPI,支持流式输出)→ Web 前端聊天界面(React+TS)→ Docker 化部署示例。
Complete
- 明确“训练”是从零训练还是微调(默认:从零训练迷你GPT + 提供可扩展路径)
- 明确运行环境约束(默认:Mac/CPU 可运行;后续可扩展 GPU)
- 记录现状与约束到 findings.md
- Status: complete
- 给出 2-3 套可行方案并评估
- 固化默认方案与目录结构
- 把关键决策写入 findings.md
- Status: complete
- 数据格式与样例数据生成脚本
- Tokenizer(字节级)与数据管道
- 迷你 GPT 模型 + 训练脚本 + checkpoint
- 推理服务(FastAPI,SSE 流式)
- Web 前端(React+TS)聊天 UI
- Status: complete
- 训练脚本可跑通(小数据集)
- 服务可启动并能生成文本(含流式)
- Web UI 可构建(TypeScript 严格检查通过)
- 记录命令与结果到 progress.md
- Status: complete
- README:从第一性原理解释全流程(但保持可操作)
- Docker/部署说明(docker compose)
- 升级到“开源大模型 LoRA 微调”的脚手架与示例(Qwen2.5-0.5B-Instruct)
- Status: complete
- 你希望优先体验哪条路径?A 从零训练迷你GPT(最第一性原理)/ B LoRA 微调开源基座(更实用)/ C 两者都要(默认:A 为主 + B 作为可选扩展)
- 你的机器是否有可用 GPU(含 Apple M 系列 / NVIDIA)?这会影响默认 batch/模型大小。
| Decision | Rationale |
|---|---|
| 采用“字节级 tokenizer” | 不依赖外部词表训练,原理直观;任意文本都可编码;适合教学与可跑通 |
| 先做“从零训练迷你GPT” | 更符合第一性原理;计算可控;便于理解完整训练闭环 |
| 推理服务用 FastAPI + SSE | Python 侧更贴近模型;SSE 方便前端流式展示;异步 IO 友好 |
| 前端用 Vite + React + TS | 前端同学上手快;开发体验好;TS 可加类型约束(禁用 any) |
| Error | Attempt | Resolution |
|---|---|---|
| Docker daemon not running (cannot connect to docker.sock) | 1 | 未能在本环境验证镜像构建;交付 Dockerfile/compose,需用户本机启动 Docker 后验证 |
- 默认以“本地可跑通”为第一目标;训练质量只需能看到可学习的趋势(loss 下降、能生成更像样的文本)。