From 4b96e6dcffd9b3e93df253e86235fe7650ef31c8 Mon Sep 17 00:00:00 2001 From: shuiyuPyLab Date: Sun, 9 Aug 2026 09:42:05 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E9=A1=B9=E7=9B=AE=E5=B7=B2=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E8=87=B3=20Gitee/GitHub=EF=BC=8C=E4=BB=85=E4=BF=9D?= =?UTF-8?q?=E7=95=99=E8=BF=81=E7=A7=BB=E8=AF=B4=E6=98=8E=20(tombstone)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 185 ++++-------------------------------------------------- 1 file changed, 13 insertions(+), 172 deletions(-) diff --git a/README.md b/README.md index 0069444..9852ec6 100644 --- a/README.md +++ b/README.md @@ -1,177 +1,18 @@ -# BitFlow MoE — 面向 micro:bit 的混合专家微型中文语言模型 +# 项目已迁移 ✨ -[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) -[![micro:bit](https://img.shields.io/badge/target-micro:bit-green)](https://microbit.org/) -[![Chinese NLP](https://img.shields.io/badge/NLP-Chinese-red)](https://www.sohu.com/a/123456789) -[![MoE](https://img.shields.io/badge/architecture-MoE-orange)](https://arxiv.org/abs/2209.01652) +你好呀~这个仓库已经搬到更好用的地方啦。 -一个完全自研的微型语言模型,可以在 **BBC micro:bit**(ARM Cortex-M4, 256KB Flash, 16KB RAM)上运行。支持中文对话、三种专家路由、int8 量化。 +为了让代码管理更清爽、多平台同步更省心,我们把原先分散的镜像统一收拢到 +**Gitee** 与 **GitHub** 主仓维护,这里就只保留这张"迁移小纸条"咯。 -这是目前已知**第一个在 micro:bit 上运行的 MoE 中文语言模型**。 +📦 新家在这里: +- Gitee:https://gitee.com/shuiyu1123/BitFlow-MoE +- GitHub:https://github.com/shuiyu67/BitFlow-MoE -## 项目亮点 +📋 内部评估: +- 镜像分散在多个平台,重复维护成本高、容易漏更; +- 自托管 Gitea 实例为个人非管理员环境,长期可用性与备份缺乏保障; +- 代码已稳定收拢至 Gitee / GitHub 主仓,原镜像不再承载更新职责; +- 统一主仓后便于协作、CI 与备份,减少多端同步负担。 -- **硬件极限**:在仅 16KB RAM、256KB Flash 的 micro:bit 上运行完整推理 -- **架构创新**:门控线性注意力 (GLA) + 混合专家 (MoE) + int8 量化,三管齐下 -- **中文支持**:149 字符词表,涵盖 258 条基础问答 + 动物事实 + 逻辑推理 -- **完全自研**:从训练、量化到推理全链路自主设计,零外部预训练模型依赖 -- **工业级优化**:内存占用 78.3KB(micro:bit 可用 108KB),余量 27.5% - -## 架构总览 - -``` -输入字符 → Token Embedding → 位置编码 - ↓ - [路由器: 运行均值 → D→32→3] - ↓ 选择最优专家 - ┌───────────┼───────────┐ - ↓ ↓ ↓ - Expert-0 Expert-1 Expert-2 - (事实记忆) (逻辑推理) (基础问答) - ↓ ↓ ↓ - GLA Block + FFN × 2层 - ↓ - LayerNorm → 输出头 - ↓ - 采样 → 下一字符 -``` - -### 核心组件 - -| 组件 | 技术 | 参数量 | -|------|------|--------| -| Token + Position Embedding | 查找表 | 7,880 | -| 3 × GLA Block (2层) | 门控线性注意力 | 42,720 | -| FFN (隐藏层 80) | GELU 激活 | 6,880 | -| MoE 路由器 | ReLU(32) → Softmax(3) | 1,411 | -| 输出头 | Linear(40→149) | 5,960 | -| **总计** | | **59,131** | - -## 性能数据 - -- **训练**:10,000 epochs,最终 loss = 0.0861 -- **路由准确率**:500 epoch 达到 100%(34% → 100%) -- **内存占用**:78.3KB / 108KB 可用(余量 29.7KB / 27.5%) -- **权重体积**:int8 量化后仅 58KB -- **推理速度**:单个字符约 200-500ms(取决于上下文长度) - -## 快速开始 - -### 环境要求 - -- **PC 训练**:Python 3.8+、PyTorch 1.12+ -- **硬件部署**:BBC micro:bit v2(nRF52833) -- **串口工具**:任意串口终端,或本项目 `chat_moe.py` - -### 训练模型 - -```bash -# 1. 安装依赖 -pip install torch - -# 2. 训练 -python train_bitflow_moe.py - -# 3. 验证推理 -python verify_moe_v4.py -``` - -### 部署到 micro:bit - -```bash -# 1. 部署权重和代码 -python deploy_moe.py - -# 2. 通过串口对话 -pip install pyserial -python chat_moe.py -``` - -### 使用预训练权重 - -可以直接下载已训练好的权重文件 `bitflow_moe_weights.bin`(58KB int8),配合 `bitflow_moe.py` 直接部署到 micro:bit。 - -## 目录结构 - -``` -BitFlow-MoE/ -├── train_bitflow_moe.py # 训练脚本(含数据、模型定义) -├── bitflow_moe.py # micro:bit 推理代码(MicroPython) -├── verify_moe_v4.py # PC 端模拟器(验证 micro:bit 推理) -├── chat_moe.py # 串口对话工具(Python) -├── deploy_moe.py # 部署脚本(自动查找 micro:bit) -├── plot_training.py # 训练过程可视化 -├── training_analysis.png # 训练过程图(中文) -├── bitflow_moe_weights.bin # 预训练 int8 权重(58KB) -├── bitflow_moe.pt # PyTorch 完整权重(245KB) -├── architecture.md # 架构设计文档 -├── quickstart.md # 用户快速上手指南 -├── LICENSE # MIT License -└── README.md # 本文件 -``` - -## 三个专家 - -模型包含三个专用专家,由路由器自动选择: - -| 专家 | 功能 | 训练数据量 | -|------|------|-----------| -| Expert-0 (事实记忆) | 事实问答、属性判断 | 7,598 tokens | -| Expert-1 (逻辑推理) | 演绎推理、类比推理 | 7,312 tokens | -| Expert-2 (基础问答) | 问候、礼貌、自我介绍 | 43,248 tokens | - -## 训练图表 - -![训练过程](training_analysis.png) - -从上到下: -1. **总损失** — 5.8 → 0.086(下降 67 倍) -2. **预测损失** — 预测能力从 5.2 降到 0.076 -3. **路由损失** — 专家选择从随机到完美 -4. **路由准确率** — 34% → 100%(仅 500 轮) -5. **负载均衡** — 三个专家使用比例均衡 -6. **分阶段对比** — 早期/中期/QAT 量化阶段 - -## 硬件要求 - -| 平台 | RAM 可用 | 实际占用 | 余量 | -|------|----------|----------|------| -| micro:bit (nRF52833) | ~108KB | 78.3KB | 29.7KB (27.5%) | -| STM32F4 | ~192KB | 78.3KB | 113.7KB | -| ESP32 | ~360KB | 78.3KB | 281.7KB | - -## 已知限制 - -- 词表 149 字符(覆盖动物、自然、基础对话场景) -- 上下文窗口 48 个 token -- 单次生成速度受限于 micro:bit CPU 频率(64MHz) -- 未进行消融实验对照(单专家 vs MoE、GLA vs Transformer) - -## 后续方向 - -- [ ] RWKV 或 Mamba 替代 GLA(更少的状态维护) -- [ ] 扩展词表到常用汉字(3000-5000 字符) -- [ ] 增加更多专家(情感分析、数学推理) -- [ ] 对比实验(消融研究) -- [ ] 移植到 STM32 / ESP32 - -## 贡献 - -欢迎提交 Issue 和 Pull Request! - -## 引用 - -如果你在本研究中使用了 BitFlow MoE,请引用: - -``` -@misc{bitflow_moe_2026, - author = {shuiyu67}, - title = {BitFlow-MoE: 面向 micro:bit 的混合专家微型中文语言模型}, - year = {2026}, - url = {https://github.com/shuiyu67/BitFlow-MoE} -} -``` - -## 许可证 - -[MIT License](LICENSE) — 可以自由使用、修改和分发。 +旧镜像不再更新,但代码都好好的在新家继续生长。感谢你一路的关注与陪伴 💛