从零训练一个轻量、带思考能力的 MoE 语言模型:localsight-198m-moe(总参数 198M,激活参数 64M),训练完成后转成 GGUF,通过 Ollama 本地运行。架构现在以文本为主,但按多模态预留扩展接口(词表已内置视觉/音频/TTS 特殊 token)。
当前状态:五个训练阶段 + 评测 + GGUF/Ollama 发布均已完成(2026-08-15)。 pretrain 因用户要求提前收尾(约 0.5 epoch),当前绝对分数偏低属预期;完整结果见 docs/08_final_metrics.md。
MiniMind-3-MoE 结构(Qwen3-MoE 命名兼容)+ Muon 预训练 + 混合思考 SFT + SimPO + 迭代式 RLAIF + GRPO/DAPO 工具智能体 RL,训练顺序严格为:pretrain → sft → dpo → rlaif → agent_rl。
| 数据集 | 大小 | 记录数 | 结构 | 估计 tokens |
|---|---|---|---|---|
| pretrain_t2t.jsonl | 7.8 GB | 8,468,827 | {text} |
2.13B(实测) |
| pretrain_t2t_mini.jsonl | 1.2 GB | 1,270,238 | {text} |
0.33B(实测) |
| sft_t2t_mini.jsonl | 1.7 GB | 905,718 | {conversations} |
~0.33B |
| dpo.jsonl | 52 MB | 17,166 | {chosen, rejected} |
~25M |
| rlaif.jsonl | 23 MB | 19,502 | {conversations}(末轮留空) |
~5M |
| agent_rl.jsonl | 79 MB | 39,988 | {conversations, gt}(末轮留空) |
~9M |
- Tokenizer:6400 词表 ByteLevel BPE,内置
<think>、<tool_call>、vision/audio/TTS 特殊 token。 - 预训练使用大语料(实测 2.13B tokens),原计划 5 epochs(约 10.7B tokens),2026-08-14 用户决定提前至约 0.5 epoch 收尾;小语料只用于开发/冒烟与 LR 扫描。
| 项 | 结果 |
|---|---|
| 训练 | pretrain(step-1000) → SFT 2ep → SimPO → RLAIF 2 轮 → Agent RL |
| MMLU / C-Eval / GSM8K | 17% / 19% / 1%(100 样本;思考开关无差异) |
| NIAH 32k | 5/5 |
| Agent held-out | mean_reward 0.367、gt_hit 0.015(400 条) |
| 发布 | GGUF f16/Q8_0/Q4_K_M + Ollama localsight-198m(端口 11435) |
训练好的权重以 GGUF 形式发布在 GitHub Releases:
localsight.Q8_0.gguf(约 216 MB,推荐)localsight.Q4_K_M.gguf(约 135 MB,更省内存)localsight.f16.gguf(约 814 MB,研究用)
模型卡见 deploy/MODEL_CARD.md,完整评测与已知局限见 docs/08_final_metrics.md。
需要 Ollama ≥ 0.32(系统自带的旧版 qwen2moe runner 与 QK-Norm/无共享专家结构不兼容)。
export OLLAMA_HOST=127.0.0.1:11435 # 若使用自定义端口;默认 11434 也可
ollama create localsight-198m -f deploy/ollama/Modelfile.template
ollama run localsight-198m思考开关:API 请求体传 "think": true/false;CLI 中用 /think 切换。
| 文档 | 内容 |
|---|---|
| docs/00_project_overview.md | 目标、原则、路线图、决策记录 |
| docs/01_model_architecture.md | 模型架构规格(已按实测修正) |
| docs/02_data_spec.md | 数据实测结构、处理管线与质量规则 |
| docs/03_training_plan.md | 分阶段训练方案、超参与计算预算 |
| docs/04_engineering_standards.md | 编码规范、技术栈、目录结构 |
| docs/05_evaluation_and_release.md | 评测体系与发布/Ollama 流程 |
| docs/06_infrastructure.md | 服务器、git 与本地↔服务器工作流 |
| docs/07_experiment_log.md | 实验记录模板 |
| docs/08_final_metrics.md | 最终评测表、发布产物与已知局限 |
LocalSight/
├── docs/ # 全部规划文档
├── configs/ # 模型与各阶段参考配置(YAML)
├── src/localsight/ # 模型、数据、训练、RL、评测、工具执行器
├── scripts/ # 数据探查、同步、训练启动脚本
├── tests/ # 单元测试(数值对齐、参数账、RL 奖励等)
├── deploy/ollama/ # Ollama Modelfile 模板
└── artifacts/ # 训练产物与 GGUF(不入 git)
- 编码机:macOS(本仓库)。
- 训练机:
sodastar@119.78.227.152,2× RTX 4090(24GB×2),Ubuntu 22.04,驱动 580.173。 - 数据(只读):训练机
/media/liuzh/data/DLData/LocalSight。
复现训练:从 docs/06_infrastructure.md 的服务器搭建开始,按 docs/03_training_plan.md 的五个阶段执行,每个阶段的闸门评测与 完成标准见 docs/05_evaluation_and_release.md。
如需把整个项目交给「目标模式」持续执行,使用 GOAL_PROMPT.md 作为初始 prompt。