From 995baa2d608fba401ce7af26d552bf763c31dca6 Mon Sep 17 00:00:00 2001 From: shuiyuPyLab Date: Sun, 9 Aug 2026 10:15:32 +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 --- .gitignore | 82 ----- LICENSE | 21 -- README.md | 3 +- architecture.md | 213 ----------- bitflow_moe.pt | Bin 251027 -> 0 bytes bitflow_moe.py | 192 ---------- bitflow_moe_weights.bin | Bin 59403 -> 0 bytes chat_moe.py | 184 ---------- deploy_moe.py | 191 ---------- plot_training.py | 172 --------- quickstart.md | 209 ----------- train_bitflow_moe.py | 775 ---------------------------------------- training_analysis.png | Bin 211782 -> 0 bytes verify_moe_v4.py | 306 ---------------- 14 files changed, 1 insertion(+), 2347 deletions(-) delete mode 100644 .gitignore delete mode 100644 LICENSE delete mode 100644 architecture.md delete mode 100644 bitflow_moe.pt delete mode 100644 bitflow_moe.py delete mode 100644 bitflow_moe_weights.bin delete mode 100644 chat_moe.py delete mode 100644 deploy_moe.py delete mode 100644 plot_training.py delete mode 100644 quickstart.md delete mode 100644 train_bitflow_moe.py delete mode 100644 training_analysis.png delete mode 100644 verify_moe_v4.py diff --git a/.gitignore b/.gitignore deleted file mode 100644 index fe2645f..0000000 --- a/.gitignore +++ /dev/null @@ -1,82 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -*.egg-info/ -.installed.cfg -*.egg - -# PyInstaller -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ - -# Translations -*.mo -*.pot - -# Environments -.env -.venv -env/ -venv/ -ENV/ - -# IDE -.vscode/ -.idea/ -*.swp -*.swo -*~ - -# micro:bit -*.hex - -# Training artifacts -*.pt - -# Large binary files -*.bin -!train_bitflow_moe.py - -# OS files -.DS_Store -Thumbs.db - -# Debug logs -*.log diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7203af6..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 shuiyu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 9852ec6..db3ed1b 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ 你好呀~这个仓库已经搬到更好用的地方啦。 -为了让代码管理更清爽、多平台同步更省心,我们把原先分散的镜像统一收拢到 -**Gitee** 与 **GitHub** 主仓维护,这里就只保留这张"迁移小纸条"咯。 +为了让代码管理更清爽、多平台同步更省心,我们把原先分散的镜像统一收拢到主仓维护,这里就只保留这张"迁移小纸条"咯。 📦 新家在这里: - Gitee:https://gitee.com/shuiyu1123/BitFlow-MoE diff --git a/architecture.md b/architecture.md deleted file mode 100644 index f162553..0000000 --- a/architecture.md +++ /dev/null @@ -1,213 +0,0 @@ -# BitFlow MoE 架构设计文档 - -## 1. 设计目标 - -在 BBC micro:bit(ARM Cortex-M4, 64MHz, 16KB RAM, 256KB Flash)上运行一个具有**理解能力**的微型中文语言模型。 - -核心挑战: -- **内存限制**:可用 RAM ~108KB,模型权重 + 推理状态必须在这个范围内 -- **计算限制**:64MHz CPU,无 FPU(但有硬件乘法) -- **存储限制**:256KB Flash,预训练模型通常几百 MB,需极致压缩 - -## 2. 架构选型 - -### 2.1 为什么不用 Transformer? - -标准 Transformer(即使是 2 层微型版)在 micro:bit 上存在问题: - -| 组件 | 标准 Attention | GLA (我们的选择) | -|------|---------------|------------------| -| 注意力矩阵 | O(n²) 状态矩阵 | O(d) 累积矩阵 | -| 最大上下文 | ~16 tokens | 48 tokens | -| 内存峰值 | 32KB+(仅注意力) | <5KB | -| 推理速度 | 极慢(会卡死) | 实时 | - -**结论**:标准 Attention 的 O(n²) 状态维护在 micro:bit 上是灾难性的。GLA 将复杂度降到 O(n×d),状态矩阵从 n×n 压缩到 d×d。 - -### 2.2 为什么不用纯 RNN? - -RNN 虽然内存 O(d),但: -- 无法并行训练(梯度消失/爆炸) -- 长程依赖能力弱 -- 无法做到像我们这样的"理解"效果 - -GLA 是 RNN 的改进版,保留了 O(d) 内存,但增加了**可并行训练**的能力(通过离散时间注意力)。 - -## 3. 核心架构 - -### 3.1 门控线性注意力 (GLA) - -GLA 的核心公式: - -``` -S[t] = g[t] ⊙ S[t-1] + k[t] ⊗ v[t] -z[t] = g[t] ⊙ z[t-1] + k[t] -y[t] = Q[t] · S[t] · (Q[t] · z[t])⁻¹ -``` - -其中: -- **S** 是 d×d 累积状态矩阵(每次更新 O(d²)) -- **k, q, v** 是通过 Linear 投影得到的向量 -- **g** 是门控(gate),通过 sigmoid(log_decay) 控制衰减 -- **⊙** 是 Hadamard 乘积,**⊗** 是外积 - -**关键优化**: -1. 不使用矩阵求逆,而是通过标量除法实现 -2. 状态矩阵 S 只存储 d×d=40×40=1600 个浮点数(6.4KB) -3. 每次更新的复杂度是 O(d²) 而非 O(n²) - -### 3.2 混合专家 (MoE) - -``` -输入 → [Token Embedding] + [Position Embedding] - ↓ - [路由器: mean pooling → FC → argmax] - ↓ 选择最优专家 - ┌── Expert-0 (事实记忆) - ├── Expert-1 (逻辑推理) - └── Expert-2 (基础问答) - ↓ - [LayerNorm → GLA Block × 2] - ↓ - [LayerNorm → Output Head] - ↓ - 采样输出 -``` - -**为什么 MoE 有效**: -- 每个专家专精一类任务,不需要一个"全能"模型 -- 路由选择只激活一个专家,**推理计算量不增加** -- 三个专家共享相同的结构(GLA Block × 2),代码复用率高 - -### 3.3 路由器设计 - -```python -def router(x): - # 1. 对所有 token 做 mean pooling → 固定维度 d=40 - x_mean = x.mean(dim=1) - # 2. 全连接层: 40 → 32 → 3 - h = relu(fc1(x_mean)) # 40 → 32 - logits = fc2(h) # 32 → 3 - return logits # argmax 选专家 -``` - -**训练时**:使用交叉熵损失监督路由(labels 来自数据类别) -**推理时**:只计算一次路由,选择最优专家 - -## 4. 量化策略 - -### 4.1 int8 量化 - -``` -scale = max(|w|) / 127 -q_int8 = round(w / scale) # [-128, 127] -w_rec = q_int8 × scale # 反量化 -``` - -- **量化精度**:int8(8-bit 有符号整数) -- **量化感知训练 (QAT)**:训练后 2000 步(8000-10000 epoch)引入量化噪声,让模型适应 int8 精度 -- **结果**:loss 从 0.0861 仅上升到 0.0863,影响极小 - -### 4.2 内存分析 - -| 组件 | 全精度(float32) | int8 量化 | 压缩比 | -|------|----------------|-----------|--------| -| 模型权重 | 236.5KB | 57.7KB | **4.1×** | -| 推理状态 | ~70KB | ~70KB | 无(运行时需要float) | -| **总计** | **306.5KB** | **127.7KB** | **2.4×** | - -## 5. 数据工程 - -### 5.1 三层数据体系 - -``` -基础层 (BASE, 69 条) - └── 动物行为、颜色判断、位置关系 - ↓ 提供基本语义 -事实层 (FACT_QA, 76 条) - └── 什么是XX、XX吃什么、XX在哪里 - ↓ 提供知识推理 -问答层 (CHAT_QA, 258 条) - └── 问候、礼貌、自我介绍、喜好、情感、能力 - ↓ 提供交互能力 -``` - -### 5.2 数据增强 - -- 基础层 × 20 遍 -- 事实层 × 40 遍 -- 问答层 × 80 遍 - -总数据量:290,780 tokens,其中问答类占 74% - -## 6. 训练流程 - -``` -[10,000 epochs] - │ - ├─ 0 - 8000 epoch: 标准训练 - │ ├─ 学习率: 3e-3 (Cosine Annealing) - │ ├─ Loss = 预测损失 + 0.5 × 路由损失 + 0.01 × 负载均衡损失 - │ └─ 路由准确率: 34% → 100% - │ - └─ 8000 - 10000 epoch: QAT 量化感知训练 - ├─ 每步对权重做 int8 量化 + 反量化 - ├─ 模型适应量化噪声 - └─ loss 微升后稳定 -``` - -## 7. 推理流程 - -``` -[初始化] 加载 int8 权重 → 预解量化小权重 (SMW) - │ - ├─ [种子处理] 逐 token 前向传播,积累运行均值 - │ └─ 路由器根据均值选择专家,激活对应 GLA Block - │ - ├─ [生成循环] - │ ├─ 计算 token embedding - │ ├─ 累加运行均值 → 路由 → 选专家 - │ ├─ 专家 GLA Block × 2 层 - │ ├─ LayerNorm → 输出头 - │ ├─ 采样 (temperature=0.3) - │ └─ 更新频率惩罚 (bcnt) - │ - └─ [输出] 字符 ID 列表 → 串口发送 -``` - -## 8. micro:bit 内存布局 - -``` -128KB Flash (总容量) -├── ~20KB: MicroPython 解释器 + 标准库 -├── ~58KB: int8 权重文件 -├── ~7KB: 推理代码 (bitflow_moe.py) -└── ~43KB: 可用 (代码+数据段) - -16KB RAM (总容量) -├── ~108KB: 实际可用 (nRF52833 有 256KB RAM, 但 MicroPython 用了一部分) -├── 58KB: 解量化后权重 (运行时) -├── 13KB: GLA 状态矩阵 (2层 × 40×40) -├── 4KB: 工作缓冲区 -├── 2KB: 预解量化小权重 -└── ~30KB: 余量 (防止栈溢出) -``` - -## 9. 设计决策总结 - -| 决策 | 选择 | 理由 | -|------|------|------| -| 注意力机制 | GLA | O(d) 内存,可并行训练 | -| MoE 结构 | 3 专家硬路由 | 推理计算量不增加 | -| 量化 | int8 + QAT | 体积压缩 4×,精度损失 <1% | -| 训练策略 | 两步训练 + QAT | 先学语义,再适应量化 | -| 路由方式 | 监督学习 | 保证每个专家都有任务 | -| 采样温度 | 0.3 | 偏低,保证输出一致性 | - -## 10. 局限性 - -1. **GLA 的衰减机制**:log_decay 是标量,无法按维度自适应(Mamba 可以做) -2. **硬路由**:每次只激活一个专家,无法融合多个专家的知识 -3. **词表太小**:149 字符覆盖场景有限 -4. **无上下文理解**:48 token 窗口限制了长对话能力 -5. **未做消融实验**:无法精确量化每个模块的贡献 diff --git a/bitflow_moe.pt b/bitflow_moe.pt deleted file mode 100644 index 8acb4a9fb5955436dc656e41299f2b74cf59bfba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251027 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

g`D}Y$ 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 diff --git a/bitflow_moe.py b/bitflow_moe.py deleted file mode 100644 index 3ade468..0000000 --- a/bitflow_moe.py +++ /dev/null @@ -1,192 +0,0 @@ -from microbit import * -import struct,gc,time,random,math -from array import array -uart.init(115200) -# BitFlow MoE v4 - micro:bit 推理 -# DIM=40 FFN=80 3专家 词表149 (~58K int8权重) -VS=149;D=40;CT=48;FD=80;NE=3;NL=2;RD=32 -RB=2+NE*12;NB=RB+4;HI=NB+2 -# 加载权重 -wf=open("weights.bin","rb") -nt=struct.unpack('=128:v-=256 - r[j]=v*s - return r -SMW=[] -for e in range(NE): - b0=2+e*12 - SMW.append(dqS(b0));SMW.append(dqS(b0+1));SMW.append(dqS(b0+2)) - SMW.append(dqS(b0+8));SMW.append(dqS(b0+9)) -rf1b=dqS(RB+1);rf2b=dqS(RB+3) -nfw=dqS(NB);nfb=dqS(NB+1) -del dqS;gc.collect() -# 融合解量化+矩阵乘 (省去DB大缓冲区) -def dqmv(i,ni,no,x,out): - s=SC[i];o=OFF[i] - for r in range(no): - ss=0.0;b=r*ni - for c in range(ni): - v=W[o+b+c] - if v>=128:v-=256 - ss+=v*s*x[c] - out[r]=ss -def ln(w,b,x,o): - m=0.0 - for i in range(D):m+=x[i] - m/=D;v=0.0 - for i in range(D):t=x[i]-m;v+=t*t - v/=D;iv=1.0/math.sqrt(v+1e-5) - for i in range(D):o[i]=w[i]*(x[i]-m)*iv+b[i] -def e1(x):return x+1.0 if x>=0 else math.exp(x) -def sg(x): - if x>=0:e=math.exp(-x);return 1.0/(1.0+e) - e=math.exp(x);return e/(1.0+e) -def ge(x): - c=0.7978845608 - return x*sg(2.0*c*(x+0.044715*x*x*x)) -def sm(l,t=0.3): - m=-1e9 - for i in range(VS): - v=l[i]-bcnt[i]*2.0 - if v>m:m=v - s=0.0 - for i in range(VS): - v=l[i]-bcnt[i]*2.0 - e=math.exp((v-m)/t) - bpr[i]=e;s+=e - r=random.random()*s;c=0.0 - for i in range(VS): - c+=bpr[i] - if c>=r:return i - return VS-1 -# GLA状态更新 (单层) -def gs(e,layer,h): - b0=2+e*12;dec=SMW[e*5+2] - dqmv(b0+3,D,D,h,bq) - dqmv(b0+4,D,D,h,bk) - dqmv(b0+5,D,D,h,bv) - dqmv(b0+6,D,D,h,bgd);gc.collect() - for i in range(D):bq[i]=e1(bq[i]);bk[i]=e1(bk[i]) - for i in range(D):bgd[i]=sg(bgd[i])*dec[i] - sl=S[layer];zl=z[layer] - for i in range(D): - si=i*D;gd=bgd[i];ki=bk[i] - for j in range(D):sl[si+j]=gd*sl[si+j]+ki*bv[j] - for i in range(D):zl[i]=bgd[i]*zl[i]+bk[i] - for j in range(D):bnum[j]=0.0 - for i in range(D): - si=i*D;qi=bq[i] - for j in range(D):bnum[j]+=qi*sl[si+j] - den=1e-6 - for i in range(D):den+=bq[i]*zl[i] - iv=1.0/den - for j in range(D):by[j]=bnum[j]*iv - dqmv(b0+7,D,D,by,bout);gc.collect() -# 专家块 (残差+GLA+FFN) -def bs(e,x,layer): - b0=2+e*12 - ln(SMW[e*5],SMW[e*5+1],x,bh) - gs(e,layer,bh) - for i in range(D):x[i]+=bout[i] - ln(SMW[e*5+3],SMW[e*5+4],x,bh) - dqmv(b0+10,D,FD,bh,bff) - for i in range(FD):bff[i]=ge(bff[i]) - dqmv(b0+11,FD,D,bff,bout);gc.collect() - for i in range(D):x[i]+=bout[i] -# 路由器 (D→RD→NE) -def route(x): - dqmv(RB,D,RD,x,brh) - for i in range(RD):brh[i]=max(0.0,brh[i]+rf1b[i]) - dqmv(RB+2,RD,NE,brh,brl) - for i in range(NE):brl[i]+=rf2b[i] - bi=0;bv2=brl[0] - for i in range(1,NE): - if brl[i]>bv2:bv2=brl[i];bi=i - return bi -# 前向: gen_flag=False时跳过head(种子处理加速) -def fw(ctx,gen_flag=True): - t=min(len(ctx)-1,CT-1);ti=ctx[-1] - s0=SC[0];o0=OFF[0];s1=SC[1];o1=OFF[1] - for i in range(D): - v0=W[o0+ti*D+i] - if v0>=128:v0-=256 - v1=W[o1+t*D+i] - if v1>=128:v1-=256 - bx[i]=v0*s0+v1*s1 - gc.collect() - for i in range(D):bsum[i]+=bx[i] - bct[0]+=1 - for i in range(D):brx[i]=bsum[i]/bct[0] - ei=route(brx) - for layer in range(NL):bs(ei,bx,layer) - ln(nfw,nfb,bx,bh) - if gen_flag: - dqmv(HI,D,VS,bh,blg);gc.collect() - return blg,ei - return None,ei -# 重置状态 -def rs(): - for l in range(NL): - for i in range(D*D):S[l][i]=0.0 - for i in range(D):z[l][i]=0.0 - for i in range(D):bsum[i]=0.0 - bct[0]=0 -# 生成 -def gen(ids,n): - NL_ch=VS-1 - ids=list(ids)+[NL_ch] - sl=len(ids);c=list(ids);rs();gc.collect() - for i in range(VS):bcnt[i]=0 - uart.write("S:%s\r\n"%",".join(str(i) for i in c)) - for i in range(len(c)-1): - fw(c[:i+1],False);gc.collect() - for _ in range(n): - t0=time.ticks_ms() - lg,ei=fw(c) - nx=sm(lg) - dt=time.ticks_diff(time.ticks_ms(),t0) - uart.write("T:%d %dms E%d\r\n"%(nx,dt,ei)) - bcnt[nx]+=1 - del lg;gc.collect();c.append(nx) - uart.write("O:%s\r\n"%",".join(str(i) for i in c[sl:])) -gc.collect() -print("READY") -print("free=%d"%gc.mem_free()) -while True: - if uart.any(): - l=uart.readline() - if l: - l=l.strip() - if l[:4]==b"GEN:": - p=l[4:].split(b"|") - ids=[int(x) for x in p[0].split(b",") if x.strip()] - nn=int(p[1]) if len(p)>1 else 10 - if ids:gen(ids,nn) - sleep(50) diff --git a/bitflow_moe_weights.bin b/bitflow_moe_weights.bin deleted file mode 100644 index d1c37669de7b1cdca8bb74ca452514c56591d94c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59403 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 diff --git a/chat_moe.py b/chat_moe.py deleted file mode 100644 index e311096..0000000 --- a/chat_moe.py +++ /dev/null @@ -1,184 +0,0 @@ -""" -串口发送工具: 通过串口向 micro:bit 发送对话命令 -用法: - python chat_moe.py # 自动查找串口 - python chat_moe.py COM3 # 指定串口 -""" -import sys -import glob -import os - -try: - import serial - import serial.tools.list_ports -except ImportError: - print("[ERROR] 需要安装 pyserial:") - print(" pip install pyserial") - sys.exit(1) - - -def find_serial(): - """自动查找 micro:bit 串口""" - ports = serial.tools.list_ports.comports() - for p in ports: - # 检查是否是 micro:bit (VID:PID = 0d28:0204) - if p.vid == 0x0d28 and p.pid == 0x0204: - return p.device - # 也检查名称包含 MICROBIT 的 - if "MICROBIT" in p.description.upper(): - return p.device - return None - - -def send_command(port, text): - """发送文本并转换为ID命令""" - VOCAB_CHARS = ( - "猫狗鸟鱼猪牛马鸡虫羊兔鸭鹅" - "坐跑飞游看吃睡走听来叫爬跳唱画读做" - "在上里到" - "的是好了" - "吗什么怎哪" - "你我他她们它" - "蓝绿红黄白" - "天地水火花草树木日月星云春夏秋冬" - "大小多高远快" - "有没会不" - "人头脚手眼腿" - "垫肉书子" - "一三只两" - "热冷落开" - "自然动植物质色样颜得都" - "你好吗谢谢再见早晚安静" - "很棒爱喜欢乐伤心气" - "名字叫谁和问答应" - "聊天话今天说" - "客用" - "bit" - "\n" - ) - CH2I = {c: i for i, c in enumerate(VOCAB_CHARS)} - ctx_ids = [str(CH2I[c]) for c in text if c in CH2I] - if not ctx_ids: - print(f"[warn] 无法识别: '{text}'") - return - cmd = "GEN:" + ",".join(ctx_ids) + "|15" - print(f" 发送: {cmd}") - port.write((cmd + "\n").encode()) - - -def main(): - print("=" * 60) - print("BitFlow MoE v4 对话工具") - print("=" * 60) - - # 串口 - if len(sys.argv) > 1: - port_name = sys.argv[1] - else: - print("\n[search] 正在查找 micro:bit 串口 ...") - port_name = find_serial() - if port_name is None: - print("[ERROR] 未找到 micro:bit 串口!") - print(" 请确保:") - print(" 1. micro:bit 已通过 USB 连接") - print(" 2. main.py 已在 micro:bit 上运行") - print(" 3. 如已知串口, 可指定: python chat_moe.py COM3") - return - - print(f"\n[connect] 打开串口: {port_name} @115200") - try: - ser = serial.Serial(port_name, 115200, timeout=2) - except Exception as e: - print(f"[ERROR] 无法打开串口: {e}") - return - print(" 连接成功!") - print() - - # 等待 ready - ready = False - for _ in range(20): - if ser.in_waiting: - line = ser.readline().decode('utf-8', errors='ignore').strip() - print(f"< {line}") - if "READY" in line: - ready = True - print() - break - if not ready: - print("[warn] 未收到 READY 信号,micro:bit 可能还在启动...") - - # 常用短语列表 - phrases = [ - "你好", "你好吗", "谢谢", "再见", "早安", "晚安", - "你叫什么名字", "你喜欢什么", "你喜欢猫吗", "你是谁", - "你会什么", "你开心吗", "你在做什么", "今天好吗", - "什么会飞", "什么会跑", "什么会游", "什么吃草", - "天是什么颜色", "猫吃什么", "猫是什么", - ] - - print("=" * 60) - print("常用短语 (输入序号发送, 或直接输入文字, 输入 q 退出):") - print("=" * 60) - for i, p in enumerate(phrases): - print(f" {i:2d}. {p}") - print() - - try: - while True: - try: - query = input(">>> ").strip() - except EOFError: - break - - if query.lower() == 'q': - break - - if query == '': - continue - - # 检查是否是序号 - try: - idx = int(query) - if 0 <= idx < len(phrases): - print(f"\n 选择: {phrases[idx]}") - send_command(ser, phrases[idx]) - # 读取输出 - for _ in range(5): - if ser.in_waiting: - line = ser.readline().decode('utf-8', errors='ignore').strip() - if line.startswith('O:'): - ids = [int(x) for x in line[2:].split(',') if x.strip()] - text = "".join(VOCAB_CHARS.get(i, '?') for i in ids) - print(f"\n 回答: {text}") - print() - break - else: - print(f" {line}") - continue - except ValueError: - pass - - # 直接输入文字 - send_command(ser, query) - # 读取输出 - for _ in range(5): - if ser.in_waiting: - line = ser.readline().decode('utf-8', errors='ignore').strip() - if line.startswith('O:'): - ids = [int(x) for x in line[2:].split(',') if x.strip()] - text = "".join(VOCAB_CHARS.get(i, '?') for i in ids) - print(f"\n 回答: {text}") - print() - break - else: - print(f" {line}") - - except KeyboardInterrupt: - pass - finally: - ser.close() - print("\n[done] 已断开连接") - - -if __name__ == "__main__": - main() diff --git a/deploy_moe.py b/deploy_moe.py deleted file mode 100644 index c58a3db..0000000 --- a/deploy_moe.py +++ /dev/null @@ -1,191 +0,0 @@ -""" -BitFlow MoE v4 部署脚本 -将训练好的 int8 权重和推理代码部署到 micro:bit - -用法: - python deploy_moe.py # 自动查找 micro:bit 并部署 - python deploy_moe.py D:\\ # 指定 micro:bit 盘符 -""" -import os -import sys -import shutil -import glob - -# 文件路径 -SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) -WEIGHTS_FILE = os.path.join(SCRIPT_DIR, "bitflow_moe_weights.bin") -INFER_CODE = os.path.join(SCRIPT_DIR, "bitflow_moe.py") - -# micro:bit 上的文件名 -TARGET_WEIGHTS = "weights.bin" -TARGET_MAIN = "main.py" - - -def find_microbit(): - """自动查找 micro:bit USB 盘符""" - # Windows: 查找 MICROBIT 卷标 - for letter in "ABCDEFGHIJKLMNOPQRSTUVWXYZ": - drive = f"{letter}:\\" - if os.path.exists(drive): - # 检查是否是 micro:bit - label_path = os.path.join(drive, "DETAILS.TXT") - if os.path.exists(label_path): - try: - with open(label_path, "r") as f: - content = f.read() - if "micro:bit" in content.lower() or "V2" in content or "nRF52" in content: - return drive - except: - pass - # 也检查卷标 - vol_label = os.path.join(drive, "MICROBIT.HTM") - if os.path.exists(vol_label): - return drive - return None - - -def deploy(target_drive): - """部署文件到 micro:bit""" - target_weights = os.path.join(target_drive, TARGET_WEIGHTS) - target_main = os.path.join(target_drive, TARGET_MAIN) - - # 检查源文件 - if not os.path.exists(WEIGHTS_FILE): - print(f"[ERROR] 权重文件不存在: {WEIGHTS_FILE}") - print(" 请先运行: python train_bitflow_moe.py") - return False - - if not os.path.exists(INFER_CODE): - print(f"[ERROR] 推理代码不存在: {INFER_CODE}") - return False - - # 权重文件大小 - w_size = os.path.getsize(WEIGHTS_FILE) - print(f"\n[deploy] 部署到 micro:bit") - print(f" 盘符: {target_drive}") - print(f" 权重: {WEIGHTS_FILE} ({w_size/1024:.1f}KB)") - print(f" 代码: {INFER_CODE}") - - # 拷贝权重 - print(f"\n [1/2] 拷贝权重 -> {TARGET_WEIGHTS} ...") - try: - shutil.copy2(WEIGHTS_FILE, target_weights) - print(f" OK ({w_size/1024:.1f}KB)") - except Exception as e: - print(f" FAILED: {e}") - return False - - # 拷贝代码 (重命名为 main.py) - print(f" [2/2] 拷贝代码 -> {TARGET_MAIN} ...") - try: - shutil.copy2(INFER_CODE, target_main) - code_size = os.path.getsize(target_main) - print(f" OK ({code_size/1024:.1f}KB)") - except Exception as e: - print(f" FAILED: {e}") - return False - - # 验证 - print(f"\n[verify] 部署验证:") - if os.path.exists(target_weights): - print(f" {TARGET_WEIGHTS}: {os.path.getsize(target_weights)} bytes OK") - else: - print(f" {TARGET_WEIGHTS}: MISSING!") - return False - - if os.path.exists(target_main): - print(f" {TARGET_MAIN}: {os.path.getsize(target_main)} bytes OK") - else: - print(f" {TARGET_MAIN}: MISSING!") - return False - - total = os.path.getsize(target_weights) + os.path.getsize(target_main) - print(f"\n[done] 部署完成! 总计 {total/1024:.1f}KB") - print(f"\n micro:bit 将自动重启并运行 main.py") - print(f" 通过串口 (115200) 发送: GEN:0,1,5|20") - print(f" (ID格式: 逗号分隔的字符ID, |后为生成长度)") - print(f"\n 字符ID对照表见下方:") - return True - - -def print_vocab(): - """打印字符ID对照表""" - VOCAB_CHARS = ( - "猫狗鸟鱼猪牛马鸡虫羊兔鸭鹅" - "坐跑飞游看吃睡走听来叫爬跳唱画读做" - "在上里到" - "的是好了" - "吗什么怎哪" - "你我他她们它" - "蓝绿红黄白" - "天地水火花草树木日月星云春夏秋冬" - "大小多高远快" - "有没会不" - "人头脚手眼腿" - "垫肉书子" - "一三只两" - "热冷落开" - "自然动植物质色样颜得都" - "你好吗谢谢再见早晚安静" - "很棒爱喜欢乐伤心气" - "名字叫谁和问答应" - "聊天话今天说" - "客用" - "bit" - "\n" - ) - print(f"\n{'='*60}") - print("字符ID对照表 (用于串口通信)") - print(f"{'='*60}") - for i, c in enumerate(VOCAB_CHARS): - display = "\\n" if c == "\n" else c - print(f" {i:3d}: {display} ", end="") - if (i + 1) % 8 == 0: - print() - print() - print(f"\n常用短语ID:") - examples = { - "你好": "0,1", # 需要查实际ID - } - # 生成常用短语 - phrases = ["你好", "你好吗", "谢谢", "再见", "早安", "晚安", - "你叫什么名字", "你喜欢什么", "什么会飞", "什么会跑"] - CH2I = {c: i for i, c in enumerate(VOCAB_CHARS)} - for p in phrases: - ids = [str(CH2I[c]) for c in p if c in CH2I] - print(f" {p}: {','.join(ids)}") - print(f"\n 生成命令: GEN:|<生成长度>") - print(f" 示例: GEN:{','.join(str(CH2I[c]) for c in '你好' if c in CH2I)}|10") - - -def main(): - print("=" * 60) - print("BitFlow MoE v4 部署工具") - print("=" * 60) - - # 查找 micro:bit - if len(sys.argv) > 1: - target = sys.argv[1] - if not os.path.exists(target): - print(f"[ERROR] 指定的盘符不存在: {target}") - return - else: - print("\n[search] 正在查找 micro:bit ...") - target = find_microbit() - if target is None: - print("[ERROR] 未找到 micro:bit!") - print("\n请确保:") - print(" 1. micro:bit 已通过 USB 连接") - print(" 2. micro:bit 已出现在文件管理器中") - print(" 3. 如已知盘符, 可指定: python deploy_moe.py D:\\") - return - - # 部署 - success = deploy(target) - - if success: - print_vocab() - - -if __name__ == "__main__": - main() diff --git a/plot_training.py b/plot_training.py deleted file mode 100644 index c31f877..0000000 --- a/plot_training.py +++ /dev/null @@ -1,172 +0,0 @@ -""" -从训练输出解析数据并绘制训练过程图 -""" -import re -import matplotlib -matplotlib.use('Agg') -import matplotlib.pyplot as plt -import numpy as np - -# 设置中文字体 -plt.rcParams['font.sans-serif'] = ['Noto Sans CJK SC', 'WenQuanYi Micro Hei', 'Microsoft YaHei', 'SimHei'] -plt.rcParams['axes.unicode_minus'] = False - -# 从训练输出手动提取的10000步数据 -# 每500步打印一次 -data_raw = """ -ep=0 loss=5.8066 pred=5.2434 router=1.1062 acc=0.34 bal=1.0189 -ep=500 loss=0.4863 pred=0.4721 router=0.0053 acc=1.00 bal=1.1489 -ep=1000 loss=0.2003 pred=0.1876 router=0.0032 acc=1.00 bal=1.1169 -ep=1500 loss=0.1824 pred=0.1681 router=0.0079 acc=1.00 bal=1.0295 -ep=2000 loss=0.1486 pred=0.1371 router=0.0026 acc=1.00 bal=1.0134 -ep=2500 loss=0.1164 pred=0.1051 router=0.0006 acc=1.00 bal=1.0957 -ep=3000 loss=0.1065 pred=0.0929 router=0.0032 acc=1.00 bal=1.1952 -ep=3500 loss=0.1086 pred=0.0985 router=0.0001 acc=1.00 bal=1.0078 -ep=4000 loss=0.1040 pred=0.0936 router=0.0000 acc=1.00 bal=1.0371 -ep=4500 loss=0.1158 pred=0.1050 router=0.0001 acc=1.00 bal=1.0723 -ep=5000 loss=0.1117 pred=0.1009 router=0.0003 acc=1.00 bal=1.0723 -ep=5500 loss=0.0988 pred=0.0866 router=0.0001 acc=1.00 bal=1.2127 -ep=6000 loss=0.0888 pred=0.0780 router=0.0004 acc=1.00 bal=1.0605 -ep=6500 loss=0.1031 pred=0.0926 router=0.0000 acc=1.00 bal=1.0547 -ep=7000 loss=0.0986 pred=0.0884 router=0.0000 acc=1.00 bal=1.0137 -ep=7500 loss=0.0861 pred=0.0750 router=0.0000 acc=1.00 bal=1.1016 -ep=8000 loss=0.0940 pred=0.0837 router=0.0000 acc=1.00 bal=1.0312 -ep=8500 loss=0.0971 pred=0.0838 router=0.0002 acc=1.00 bal=1.3179 -ep=9000 loss=0.0908 pred=0.0807 router=0.0000 acc=1.00 bal=1.0137 -ep=9500 loss=0.0869 pred=0.0755 router=0.0000 acc=1.00 bal=1.1426 -ep=9999 loss=0.0863 pred=0.0759 router=0.0000 acc=1.00 bal=1.0371 -""" - -# 解析数据 -epochs = [] -losses = [] -pred_losses = [] -router_losses = [] -accuracies = [] -balance_losses = [] -qat_phase = [] - -pattern = r'ep=(\d+) loss=([\d.]+) pred=([\d.]+) router=([\d.]+) acc=([\d.]+) bal=([\d.]+)(.*)$' - -for line in data_raw.strip().split('\n'): - m = re.match(pattern, line.strip()) - if m: - ep = int(m.group(1)) - epochs.append(ep) - losses.append(float(m.group(2))) - pred_losses.append(float(m.group(3))) - router_losses.append(float(m.group(4))) - accuracies.append(float(m.group(5))) - balance_losses.append(float(m.group(6))) - qat_phase.append(' [QAT]' in m.group(7)) - -epochs = np.array(epochs) -losses = np.array(losses) -pred_losses = np.array(pred_losses) -router_losses = np.array(router_losses) -accuracies = np.array(accuracies) -balance_losses = np.array(balance_losses) - -# ========== 绘制训练过程图 ========== -fig = plt.figure(figsize=(16, 10)) -fig.suptitle('BitFlow MoE v4 训练过程 — 10,000 轮', fontsize=16, fontweight='bold', y=0.97) - -# 子图1: 总Loss -ax1 = plt.subplot(2, 3, 1) -# 找到 QAT 起始 epoch -qat_epochs = [e for e in epochs if e >= 8000] -qat_epoch_val = qat_epochs[0] if qat_epochs else 8000 -ax1.plot(epochs, losses, 'b-', linewidth=1.5, label='总损失') -ax1.axvspan(qat_epoch_val, epochs[-1], alpha=0.1, color='red', label='QAT量化阶段') -ax1.set_xlabel('训练轮次 (Epoch)') -ax1.set_ylabel('损失值') -ax1.set_title('总损失 (Total Loss)', fontsize=11) -ax1.legend(fontsize=8) -ax1.grid(True, alpha=0.3) -ax1.set_yscale('log') - -# 子图2: 预测Loss -ax2 = plt.subplot(2, 3, 2) -ax2.plot(epochs, pred_losses, 'g-', linewidth=1.5, label='预测损失') -ax2.axvspan(qat_epoch_val, epochs[-1], alpha=0.1, color='red') -ax2.set_xlabel('训练轮次 (Epoch)') -ax2.set_ylabel('损失值') -ax2.set_title('预测损失 (交叉熵)', fontsize=11) -ax2.legend(fontsize=8) -ax2.grid(True, alpha=0.3) -ax2.set_yscale('log') - -# 子图3: 路由Loss -ax3 = plt.subplot(2, 3, 3) -ax3.plot(epochs, router_losses, 'r-', linewidth=1.5, label='路由损失') -ax3.axvspan(qat_epoch_val, epochs[-1], alpha=0.1, color='red') -ax3.set_xlabel('训练轮次 (Epoch)') -ax3.set_ylabel('损失值') -ax3.set_title('路由损失 (专家选择)', fontsize=11) -ax3.legend(fontsize=8) -ax3.grid(True, alpha=0.3) -ax3.set_yscale('log') - -# 子图4: 路由准确率 -ax4 = plt.subplot(2, 3, 4) -ax4.plot(epochs, accuracies, 'purple', linewidth=1.5, marker='o', markevery=500, markersize=4) -ax4.axvspan(qat_epoch_val, epochs[-1], alpha=0.1, color='red') -ax4.set_xlabel('训练轮次 (Epoch)') -ax4.set_ylabel('准确率') -ax4.set_title('路由准确率 (专家路由)', fontsize=11) -ax4.legend(fontsize=8) -ax4.grid(True, alpha=0.3) -ax4.set_ylim([0, 1.05]) - -# 子图5: 负载均衡Loss -ax5 = plt.subplot(2, 3, 5) -ax5.plot(epochs, balance_losses, 'orange', linewidth=1.5, label='负载均衡损失') -ax5.axvspan(qat_epoch_val, epochs[-1], alpha=0.1, color='red') -ax5.set_xlabel('训练轮次 (Epoch)') -ax5.set_ylabel('损失值') -ax5.set_title('负载均衡 (专家利用率)', fontsize=11) -ax5.legend(fontsize=8) -ax5.grid(True, alpha=0.3) -ax5.set_yscale('log') - -# 子图6: 各阶段对比 (分三段) -ax6 = plt.subplot(2, 3, 6) -segments = [ - ('早期 (0-2K)', epochs[epochs<=2000], losses[epochs<=2000], 'steelblue'), - ('中期 (2K-6K)', epochs[(epochs>2000)&(epochs<=6000)], losses[(epochs>2000)&(epochs<=6000)], 'seagreen'), - ('QAT量化 (8K-10K)', epochs[epochs>=8000], losses[epochs>=8000], 'firebrick'), -] -for label, ep, lo, color in segments: - ax6.plot(ep, lo, 'o-', color=color, linewidth=1.5, markersize=4, label=label, alpha=0.7) -ax6.set_xlabel('训练轮次 (Epoch)') -ax6.set_ylabel('损失值') -ax6.set_title('分阶段对比 (早期/中期/QAT)', fontsize=11) -ax6.legend(fontsize=8) -ax6.grid(True, alpha=0.3) -ax6.set_yscale('log') - -plt.tight_layout(rect=[0, 0, 1, 0.95]) -output_path = 'c:\\Users\\Administrator\\.trae-cn\\work\\6a62468bb999696f3874e2ac\\training_analysis.png' -plt.savefig(output_path, dpi=150, bbox_inches='tight', facecolor='white') -plt.close() -print(f"[save] training_analysis.png -> {output_path}") - -# 输出关键统计 -print(f"\n关键数据点:") -print(f" 初始 loss: {losses[0]:.4f} router_acc: {accuracies[0]:.0%}") -print(f" 500 epoch: {losses[1]:.4f} router_acc: {accuracies[1]:.0%}") -print(f" 2000 epoch: {losses[np.where(epochs==2000)[0][0]]:.4f} router_acc: {accuracies[np.where(epochs==2000)[0][0]]:.0%}") -print(f" 6000 epoch: {losses[np.where(epochs==6000)[0][0]]:.4f} router_acc: {accuracies[np.where(epochs==6000)[0][0]]:.0%}") -print(f" 9999 epoch: {losses[-1]:.4f} router_acc: {accuracies[-1]:.0%}") -print(f" 最佳 loss: {losses.min():.4f} at epoch {epochs[np.argmin(losses)]}") - -# QAT 阶段 -if any(qat_phase): - qat_idx = np.where(np.array(qat_phase))[0][0] - print(f"\nQAT 量化阶段:") - print(f" QAT前(7500): {losses[np.where(epochs==7500)[0][0]]:.4f}") - print(f" QAT后(8000): {losses[np.where(epochs==8000)[0][0]]:.4f}") - print(f" QAT最终(9999): {losses[-1]:.4f}") - print(f" QAT导致loss上升: +{losses[qat_idx] - losses[qat_idx-1]:.4f} (正常,量化引入噪声)") -else: - print(f"\nQAT 量化阶段: 未检测到QAT数据") diff --git a/quickstart.md b/quickstart.md deleted file mode 100644 index 154dd05..0000000 --- a/quickstart.md +++ /dev/null @@ -1,209 +0,0 @@ -# BitFlow MoE 用户快速上手指南 - -## 一、什么是 BitFlow MoE? - -BitFlow MoE 是一个可以在 **BBC micro:bit** 上运行的微型中文语言模型。它可以: - -- 回答基础问答(你好、谢谢、你的名字) -- 进行简单推理(什么会飞、什么吃草) -- 记住事实(猫吃什么、天是什么颜色) - -## 二、硬件准备 - -### 必需 - -- **BBC micro:bit v2**(推荐 v2,nRF52833 芯片) -- **USB 数据线**(Micro-USB) -- **电脑**(Windows / macOS / Linux) - -### 可选 - -- 串口工具(PuTTY、Tera Term、minicom) -- Python 3.8+(用于训练和对话工具) - -## 三、快速部署(3 分钟) - -### 步骤 1: 下载模型文件 - -从本仓库下载: -- `bitflow_moe_weights.bin`(58KB,int8 量化权重) -- `bitflow_moe.py`(micro:bit 推理代码) - -### 步骤 2: 拷贝到 micro:bit - -将两个文件拷贝到 micro:bit 的 USB 驱动器中: - -``` -MICROBIT/ -├── weights.bin ← bitflow_moe_weights.bin 改名 -├── main.py ← bitflow_moe.py 改名 -└── ... -``` - -> **注意**:文件名必须是 `weights.bin` 和 `main.py`,不能改名! - -### 步骤 3: 按下复位键 - -按下 micro:bit 背面的 **RST** 按钮(或拔插 USB),micro:bit 会自动运行 main.py。 - -### 步骤 4: 通过串口对话 - -打开串口工具(115200 波特率),发送: - -``` -GEN:109,110|15 -``` - -回复:`你好` - -更多命令见下方 [常用短语 ID 表](#四常用短语id)。 - -## 四、常用短语 ID - -### 问候类 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 你好 | `GEN:109,110|15` | 你好 | -| 你好吗 | `GEN:109,110,111|15` | 我很好谢谢 | -| 早安 | `GEN:116,118|15` | 早安 | -| 晚安 | `GEN:117,118|15` | 晚安 | -| 再见 | `GEN:114,115|15` | 再见 | - -### 礼貌类 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 谢谢 | `GEN:113,113|15` | 不客气 | -| 你好棒 | `GEN:110,110,120|15` | 谢谢你好 | - -### 自我介绍 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 你叫什么名字 | `GEN:109,131,39,40,129,130|15` | 我叫bit | -| 你是谁 | `GEN:109,45|15` | 我是bit | - -### 喜好 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 你喜欢什么 | `GEN:109,123,124,39,40|15` | 我喜欢花 | -| 你喜欢猫吗 | `GEN:109,123,124,43|15` | 我很喜欢猫 | - -### 情感 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 你开心吗 | `GEN:109,70,71|15` | 我很开心你好 | -| 你伤心吗 | `GEN:109,126,127|15` | 我不伤心 | - -### 能力 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 你会什么 | `GEN:109,78,59|15` | 我会说话 | - -### 闲聊 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 你在做什么 | `GEN:109,60,61|15` | 我在看猫 | -| 今天好吗 | `GEN:140,60,36,37|15` | 今天很好 | - -### 动物推理 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 什么会飞 | `GEN:39,40,78,15|15` | 鸟会飞 | -| 什么会跑 | `GEN:39,40,78,14|15` | 猫会跑 | -| 什么会游 | `GEN:39,40,78,16|15` | 鱼会游 | -| 什么吃草 | `GEN:39,40,78,18|15` | 牛吃草 | - -### 事实 - -| 中文 | 命令 | 回复 | -|------|------|------| -| 天是什么颜色 | `GEN:54,35,38,39,40|15` | 天是蓝的 | -| 猫吃什么 | `GEN:43,35,18|15` | 猫吃鱼 | -| 猫是什么 | `GEN:43,35,38|15` | 猫是动物 | - -## 五、使用 Python 对话工具 - -如果你不想手动输入 ID,可以使用对话工具: - -```bash -# 安装依赖 -pip install pyserial - -# 运行对话工具(自动查找 micro:bit 串口) -python chat_moe.py -``` - -对话工具会自动: -1. 查找 micro:bit 的 USB 串口 -2. 显示常用短语菜单 -3. 你输入序号或文字 -4. 自动发送并翻译回复 - -## 六、在电脑上训练自己的模型 - -```bash -# 安装依赖 -pip install torch matplotlib - -# 训练 -python train_bitflow_moe.py - -# 训练完成后会自动: -# 1. 保存 PyTorch 权重 (bitflow_moe.pt) -# 2. 导出 int8 量化权重 (bitflow_moe_weights.bin) -# 3. 测试推理效果 -# 4. 绘制训练过程图 (training_analysis.png) -``` - -## 七、常见问题 - -### Q1: 为什么回复是一串数字? - -BitFlow MoE 输出的是**字符 ID**(0-148),不是中文。这是为了在 micro:bit 上节省内存——字符 ID 只需要 1 字节,而中文字符需要多字节。 - -你可以通过 `chat_moe.py` 自动翻译,或参考上方 ID 表手动解码。 - -### Q2: 模型回答不总是对的? - -是的。这个模型是**微型模型**,学习的数据量很小(290K tokens),词表只有 149 字符。它更像是一个"概念演示",证明在 micro:bit 上可以做语言建模。 - -### Q3: 可以扩展词表吗? - -可以。修改 `VOCAB_CHARS` 字符串即可扩展词表,但需要: -1. 增加 DIM 和 FFN_DIM(参数量会增大) -2. 可能需要更大的 micro:bit(如 ESP32) -3. 重新训练 - -### Q4: 可以用在其他单片机上吗? - -可以!本项目的推理代码是纯 Python/MicroPython,理论上可以移植到任何支持 MicroPython 的 MCU。我们提供了内存分析: - -| 平台 | RAM | 是否可用 | -|------|-----|----------| -| micro:bit v2 | 256KB (可用 ~108KB) | ✅ 刚好够用 | -| STM32F4 | 192KB | ✅ 完全够用 | -| ESP32 | 520KB | ✅ 绰绰有余 | -| Arduino Nano | 2KB | ❌ 远远不够 | - -### Q5: 推理速度很慢? - -micro:bit 的 CPU 是 64MHz,每个字符生成需要 200-500ms。这是硬件限制,无法通过软件优化大幅改善。 - -如果你需要更快的推理,可以考虑: -- 降低 DIM(32 → 24) -- 减少专家数量(3 → 1) -- 换用更强的 MCU(如 ESP32-S3) - -## 八、技术参考 - -- [架构设计文档](architecture.md) — 详细的架构分析 -- [训练过程图](training_analysis.png) — 10,000 轮训练可视化 -- [训练代码](train_bitflow_moe.py) — 完整的训练脚本 -- [推理代码](bitflow_moe.py) — micro:bit 推理实现 diff --git a/train_bitflow_moe.py b/train_bitflow_moe.py deleted file mode 100644 index 1f28b51..0000000 --- a/train_bitflow_moe.py +++ /dev/null @@ -1,775 +0,0 @@ -""" -BitFlow MoE v4: 面向 micro:bit 的混合专家微型中文对话模型 -架构: 门控线性注意力 (GLA) + 混合专家 (MoE) + int8 量化 - -v4 改进: -- 3个专家: 事实记忆(E0) + 逻辑推理(E1) + 基础问答(E2) -- 增大参数量: DIM=40, FFN=80 (~54K params, 更聪明) -- 扩展词表: +你好吗谢谢再见早晚安等基础对话字符 -- 基础问答专家: 200+条自然问答 (问候/礼貌/自我介绍/喜好/情感/能力/闲聊/天气/动物/颜色/数字) -""" -import math -import random -import torch -import torch.nn as nn -import torch.nn.functional as F - -# ---------- 配置 ---------- -VOCAB_CHARS = ( - "猫狗鸟鱼猪牛马鸡虫羊兔鸭鹅" # 动物 - "坐跑飞游看吃睡走听来叫爬跳唱画读做" # 动作 - "在上里到" # 位置/方向 - "的是好了" # 助词/语气 - "吗什么怎哪" # 疑问 - "你我他她们它" # 代词 - "蓝绿红黄白" # 颜色 - "天地水火花草树木日月星云春夏秋冬" # 自然 - "大小多高远快" # 形容词 - "有没会不" # 否定/存在/能力 - "人头脚手眼腿" # 身体 - "垫肉书子" # 物品 - "一三只两" # 数字/量词 - "热冷落开" # 状态 - "自然动植物质色样颜得都" # 补充 - "你好吗谢谢再见早晚安静" # 基础问答 (新增) - "很棒爱喜欢乐伤心气" # 情感 (新增) - "名字叫谁和问答应" # 对话用语 (新增) - "聊天话今天说" # 补充对话字符 (修复) - "客用" # 不客气/不用谢 (修复) - "bit" # 名字 (修复) - "\n" # 换行 -) -VOCAB_SIZE = len(VOCAB_CHARS) -DIM = 40 # 增大: 32 -> 40 -N_LAYER = 2 -CONTEXT = 48 -FFN_DIM = 80 # 增大: 64 -> 80 -NUM_EXPERTS = 3 # 3个专家 -ROUTER_DIM = 32 # 增大: 24 -> 32 -EPOCHS = 10000 # 增多: 8000 -> 10000 -BATCH_SIZE = 32 -LR = 3e-3 -SEED = 1337 - -QAT_START = 8000 -ROUTER_WEIGHT = 0.5 -LB_WEIGHT = 0.01 - -random.seed(SEED) -torch.manual_seed(SEED) - -CH2I = {c: i for i, c in enumerate(VOCAB_CHARS)} -I2CH = {i: c for i, c in enumerate(VOCAB_CHARS)} - -# ---------- 训练数据 ---------- - -BASE = [ - "猫坐在垫子上", "狗坐在木头上", "鸟坐在树上", "鱼在水里游", - "羊在吃草", "兔在跑", "鸭在水里游", "鹅在水里游", - "猫在跑", "狗在跑", "鸟在飞", "鱼在游", - "马在跑", "牛在走", "猪在睡", "鸡在走", - "虫在树上", "羊在走", "兔在跳", "鸭在走", "鹅在叫", - "天是蓝的", "水是绿的", "火是红的", "花是黄的", - "草是绿的", "日是红的", "月是黄的", "星是好的", "云是白的", - "春天是好的", "夏天是热的", "秋天是好的", "冬天是冷的", - "猫看狗", "狗看猫", "鸟看鱼", "猫吃鱼", "牛吃草", - "鸟吃虫", "羊吃草", "兔吃草", "鸭吃虫", "鹅吃草", - "猫在吃鱼", "狗在跑走", "鸟在唱", "虫在爬", "兔在跳", - "鸭在叫", "鹅在游", - "马是大的", "虫是小的", "马跑得快", "鸟飞得高", - "鱼游得快", "猫跳得高", "狗跑得远", - "猫有腿", "鸟有脚", "鱼没有腿", "人有手", "人有眼", - "人有脚", "猫有眼", - "春天花开了", "夏天日大了", "秋天花落了", "冬天水冷了", -] - -# Expert-0: 事实与记忆类问答 -FACT_QA = [ - "猫是什么\n猫是动物", "狗是什么\n狗是动物", "鸟是什么\n鸟是动物", - "鱼是什么\n鱼是动物", "马是什么\n马是动物", "牛是什么\n牛是动物", - "猪是什么\n猪是动物", "鸡是什么\n鸡是动物", "虫是什么\n虫是动物", - "羊是什么\n羊是动物", "兔是什么\n兔是动物", "鸭是什么\n鸭是动物", - "鹅是什么\n鹅是动物", - "花是什么\n花是植物", "草是什么\n草是植物", "树是什么\n树是植物", - "水是什么\n水是物质", "火是什么\n火是物质", "天是什么\n天是自然", - "地是什么\n地是自然", "日是什么\n日是星", "月是什么\n月是星", - "云是什么\n云是水", "人是什么\n人是动物", - "天是什么颜色\n天是蓝的", "水是什么颜色\n水是绿的", - "火是什么颜色\n火是红的", "草是什么颜色\n草是绿的", - "花是什么颜色\n花是黄的", "日是什么颜色\n日是红的", - "月是什么颜色\n月是黄的", "云是什么颜色\n云是白的", - "猫是动物吗\n猫是动物", "狗是动物吗\n狗是动物", - "鱼是动物吗\n鱼是动物", "花是植物吗\n花是植物", - "树是植物吗\n树是植物", - "天是蓝的吗\n天是蓝的", "水是绿的吗\n水是绿的", - "火是红的吗\n火是红的", "云是白的吗\n云是白的", - "猫在哪里\n猫在垫子上", "狗在哪里\n狗在木头上", - "鸟在哪里\n鸟在树上", "鱼在哪里\n鱼在水里", - "羊在哪里\n羊在草地上", "兔在哪里\n兔在草地上", - "虫在哪里\n虫在树上", - "猫吃什么\n猫吃鱼", "狗吃什么\n狗吃肉", "鸟吃什么\n鸟吃虫", - "牛吃什么\n牛吃草", "鱼吃什么\n鱼吃虫", "羊吃什么\n羊吃草", - "兔吃什么\n兔吃草", "鸭吃什么\n鸭吃虫", "鹅吃什么\n鹅吃草", - "春天是什么\n春天是好的", "夏天是什么\n夏天是热的", - "秋天是什么\n秋天是好的", "冬天是什么\n冬天是冷的", - "春天来了\n花开了", "夏天来了\n日大了", - "秋天来了\n花落了", "冬天来了\n水冷了", - "你在看什么\n我在看猫", "你在看什么\n我在看狗", - "你在看什么\n我在看鸟", "你在看什么\n我在看鱼", - "你在做什么\n我在看花", "你在做什么\n我在画猫", - "你在做什么\n我在读书", "他在做什么\n他在听鸟叫", - "她是什么\n她是花", "他是什么\n他是猫", "他是什么\n他是狗", -] - -# Expert-1: 逻辑与推理类问答 -REASONING_QA = [ - "猫是动物\n动物会跑\n猫会跑", - "狗是动物\n动物会跑\n狗会跑", - "鸟是动物\n动物会飞\n鸟会飞", - "鱼是动物\n动物会游\n鱼会游", - "马是动物\n动物会跑\n马会跑", - "牛是动物\n动物会走\n牛会走", - "猪是动物\n动物会睡\n猪会睡", - "羊是动物\n动物会走\n羊会走", - "兔是动物\n动物会跳\n兔会跳", - "鸭是动物\n动物会游\n鸭会游", - "鹅是动物\n动物会叫\n鹅会叫", - "动物有腿\n猫是动物\n猫有腿", - "动物有腿\n狗是动物\n狗有腿", - "动物有腿\n马是动物\n马有腿", - "动物有腿\n牛是动物\n牛有腿", - "动物有眼\n猫有眼", - "鱼是动物\n鱼没有腿", - "什么会跑\n猫会跑", - "什么会跑\n狗会跑", - "什么会飞\n鸟会飞", - "什么会游\n鱼会游", - "什么会游\n鸭会游", - "什么会跳\n兔会跳", - "什么会叫\n鹅会叫", - "什么会睡\n猪会睡", - "什么会走\n牛会走", - "什么会走\n羊会走", - "猫有腿\n狗有腿\n它们都有腿", - "猫会跑\n狗会跑\n它们都会跑", - "鸟有脚\n鸟会飞", - "鱼没有腿\n鱼会游", - "猫吃什么\n猫吃鱼", - "什么吃鱼\n猫吃鱼", - "什么吃草\n牛吃草", - "什么吃草\n羊吃草", - "什么吃虫\n鸟吃虫", - "什么吃虫\n鸭吃虫", - "猫是小的\n虫是小的", - "马是大的\n马跑得快", - "鸟飞得高\n鱼游得快", - "猫跳得高\n狗跑得远", -] - -# Expert-2: 基础问答/闲聊 (大幅扩展 v4: 200+条) -CHAT_QA = [ - # === 问候类 (30条) === - "你好\n你好", - "你好\n你好你好", - "你好bit\n你好", - "你好猫\n你好猫", - "你好狗\n你好狗", - "你好花\n你好花", - "你好天\n你好天", - "你好水\n你好水", - "你好火\n你好火", - "你好你好\n你好", - "bit你好\n你好bit", - "猫你好\n你好", - "你好吗\n我很好", - "你好吗\n我很好谢谢", - "你好吗\n我很好你好", - "你好吗bit\n我很好", - "bit你好吗\n我很好", - "你好了吗\n我好了", - "你好吗\n我很好和开心", - "早\n早", - "早\n早早", - "早安\n早安", - "早安bit\n早安", - "bit早安\n早安", - "晚安\n晚安", - "晚安bit\n晚安", - "再见\n再见", - "再见\n再见再见", - "再见bit\n再见", - "bit再见\n再见", - - # === 礼貌类 (18条) === - "谢谢\n不客气", - "谢谢\n不用谢", - "谢谢\n不客气你好", - "谢谢bit\n不客气", - "谢谢猫\n不客气", - "谢谢你好\n不客气", - "不客气\n谢谢", - "不用谢\n谢谢", - "你好棒\n谢谢", - "你好棒\n谢谢你好", - "你好棒\n谢谢你", - "你好棒bit\n谢谢", - "bit好棒\n谢谢", - "猫好棒\n猫很好", - "狗好棒\n狗很好", - "谢谢你\n不客气", - "你好棒\n谢谢你好bit", - "谢谢和再见\n不客气", - - # === 自我介绍 (20条) === - "你叫什么名字\n我叫bit", - "你叫什么\n我叫bit", - "你的名字\n我叫bit", - "你的名字是什么\n我叫bit", - "你是谁\n我是bit", - "你是谁\n我是猫", - "你是谁\n我是动物", - "你是bit吗\n我是bit", - "你是猫吗\n我不是猫", - "你是狗吗\n我不是狗", - "你是动物吗\n我不是动物", - "你是人吗\n我不是人", - "你是花吗\n我不是花", - "bit是谁\nbit是我", - "猫是谁\n猫是动物", - "狗是谁\n狗是动物", - "你叫什么\n我叫bit你好", - "我叫猫\n你好猫", - "我叫狗\n你好狗", - "我叫bit\n你好bit", - - # === 喜好类 (38条) === - "你喜欢什么\n我喜欢猫", - "你喜欢什么\n我喜欢狗", - "你喜欢什么\n我喜欢鸟", - "你喜欢什么\n我喜欢鱼", - "你喜欢什么\n我喜欢花", - "你喜欢什么\n我喜欢树", - "你喜欢什么\n我喜欢草", - "你喜欢什么\n我喜欢天", - "你喜欢什么\n我喜欢水", - "你喜欢什么\n我喜欢火", - "你喜欢什么\n我喜欢日", - "你喜欢什么\n我喜欢月", - "你喜欢什么\n我喜欢星", - "你喜欢什么\n我喜欢云", - "你喜欢什么\n我喜欢春天", - "你喜欢什么\n我喜欢夏天", - "你喜欢什么\n我喜欢秋天", - "你喜欢什么\n我喜欢冬天", - "你喜欢什么\n我喜欢读书", - "你喜欢什么\n我喜欢画画", - "你喜欢什么\n我喜欢聊天", - "你喜欢猫吗\n我很喜欢猫", - "你喜欢狗吗\n我很喜欢狗", - "你喜欢鸟吗\n我很喜欢鸟", - "你喜欢鱼吗\n我很喜欢鱼", - "你喜欢花吗\n我很喜欢花", - "你喜欢树吗\n我很喜欢树", - "你喜欢草吗\n我很喜欢草", - "你喜欢水吗\n我很喜欢水", - "你喜欢火吗\n我很喜欢火", - "你喜欢天吗\n我很喜欢天", - "你喜欢春天吗\n我很喜欢春天", - "你喜欢夏天吗\n我很喜欢夏天", - "你喜欢秋天吗\n我很喜欢秋天", - "你喜欢冬天吗\n我很喜欢冬天", - "你喜欢读书吗\n我很喜欢读书", - "你喜欢画画吗\n我很喜欢画画", - "你喜欢聊天吗\n我很喜欢聊天", - - # === 情感类 (22条) === - "你开心吗\n我很开心", - "你开心吗\n我很开心谢谢", - "你伤心吗\n我不伤心", - "你伤心吗\n我不伤心谢谢", - "你乐吗\n我很乐", - "你气吗\n我不气", - "你好开心\n我很开心", - "你好伤心\n我不伤心", - "我很开心\n你好", - "我很伤心\n你好", - "我很喜欢\n你好", - "我很爱你\n谢谢", - "你爱我吗\n我很爱你", - "你爱猫吗\n我很爱猫", - "你爱花吗\n我很爱花", - "猫开心吗\n猫很开心", - "狗开心吗\n狗很开心", - "鸟开心吗\n鸟很开心", - "鱼开心吗\n鱼很开心", - "bit开心吗\nbit很开心", - "你开心吗\n我很开心你好", - "你好开心吗\n我很开心", - - # === 能力问答 (23条) === - "你会什么\n我会说话", - "你会什么\n我会画画", - "你会什么\n我会读书", - "你会什么\n我会聊天", - "你会什么\n我会看花", - "你会什么\n我会看猫", - "你会什么\n我会看狗", - "你会说话吗\n我会说话", - "你会画画吗\n我会画画", - "你会读书吗\n我会读书", - "你会聊天吗\n我会聊天", - "你会跑吗\n我不会跑", - "你会飞吗\n我不会飞", - "你会游吗\n我不会游", - "你会跳吗\n我不会跳", - "你会唱吗\n我不会唱", - "你会画猫吗\n我会画猫", - "你会画狗吗\n我会画狗", - "你会画花吗\n我会画花", - "bit会什么\nbit会说话", - "bit会说话吗\nbit会说话", - "bit会聊天吗\nbit会聊天", - "你会什么\n我会说话和聊天", - - # === 在做什么 (25条) === - "你在做什么\n我在和你说话", - "你在做什么\n我在和你聊天", - "你在做什么\n我在看猫", - "你在做什么\n我在看狗", - "你在做什么\n我在看花", - "你在做什么\n我在读书", - "你在做什么\n我在画画", - "你在做什么\n我在画猫", - "你在做什么\n我在画花", - "你在做什么\n我在听鸟叫", - "你在做什么\n我在看鸟", - "你在做什么\n我在看鱼", - "你在做什么\n我在看天", - "你在做什么\n我在看水", - "谁在说话\n我在说话", - "谁在说话\n你在说话", - "谁在说话\nbit在说话", - "谁在聊天\n我在聊天", - "谁在聊天\n你在聊天", - "谁在聊天\nbit在聊天", - "你在聊天吗\n我在聊天", - "你在说话吗\n我在说话", - "bit在做什么\nbit在说话", - "bit在说话吗\nbit在说话", - "bit在聊天吗\nbit在聊天", - - # === 天气时间 (22条) === - "今天好吗\n今天很好", - "天气好吗\n天气很好", - "天好吗\n天很好", - "花好吗\n花很好", - "今天天好吗\n今天天很好", - "今天热吗\n今天很热", - "今天冷吗\n今天不冷", - "天热吗\n天很热", - "天冷吗\n天不冷", - "夏天热吗\n夏天很热", - "冬天冷吗\n冬天很冷", - "春天好吗\n春天很好", - "夏天好吗\n夏天很好", - "秋天好吗\n秋天很好", - "冬天好吗\n冬天很好", - "今天天热吗\n今天天很热", - "今天天冷吗\n今天天不冷", - "早好吗\n早很好", - "晚好吗\n晚很好", - "早安好吗\n早安很好", - "晚安好吗\n晚安很好", - "今天天气好吗\n今天天气很好", - - # === 动物闲聊 (19条) === - "猫好吗\n猫很好", - "狗好吗\n狗很好", - "鱼好吗\n鱼很好", - "鸟好吗\n鸟很好", - "虫好吗\n虫很好", - "马好吗\n马很好", - "牛好吗\n牛很好", - "猪好吗\n猪很好", - "羊好吗\n羊很好", - "兔好吗\n兔很好", - "鸭好吗\n鸭很好", - "鹅好吗\n鹅很好", - "猫好吗\n猫是好的", - "狗好吗\n狗是好的", - "花好吗\n花是好的", - "天好吗\n天是好的", - "水好吗\n水是好的", - "猫好吗\n猫很好谢谢", - "狗好吗\n狗很好谢谢", - - # === 颜色喜好 (18条) === - "你喜欢什么颜色\n我喜欢蓝的", - "你喜欢什么颜色\n我喜欢红的", - "你喜欢什么颜色\n我喜欢绿的", - "你喜欢什么颜色\n我喜欢黄的", - "你喜欢什么颜色\n我喜欢白的", - "你喜欢蓝的吗\n我很喜欢蓝的", - "你喜欢红的吗\n我很喜欢红的", - "你喜欢绿的吗\n我很喜欢绿的", - "你喜欢黄的吗\n我很喜欢黄的", - "你喜欢白的吗\n我很喜欢白的", - "天是蓝的吗\n天是蓝的", - "水是绿的吗\n水是绿的", - "火是红的吗\n火是红的", - "云是白的吗\n云是白的", - "花是黄的吗\n花是黄的", - "草是绿的吗\n草是绿的", - "日是红的吗\n日是红的", - "月是黄的吗\n月是黄的", - - # === 数字/量词 (11条) === - "一只猫\n一只猫", - "一只狗\n一只狗", - "一只鸟\n一只鸟", - "一只鱼\n一只鱼", - "两只猫\n两只猫", - "两只狗\n两只狗", - "三只鸟\n三只鸟", - "三只猫\n三只猫", - "一只猫好吗\n猫很好", - "一只狗好吗\n狗很好", - "三只鸟好吗\n鸟很好", - - # === 组合对话 (12条) === - "你好和再见\n你好再见", - "你好猫和狗\n你好猫你好狗", - "你喜欢猫和狗吗\n我很喜欢猫和狗", - "你喜欢花和树吗\n我很喜欢花和树", - "你喜欢天和水吗\n我很喜欢天和水", - "猫和狗好吗\n猫和狗都很好", - "花和草好吗\n花和草都很好", - "天和水好吗\n天和水都很好", - "春天和秋天好吗\n春天和秋天都很好", - "你和bit好吗\n我和bit都很好", - "你好和谢谢\n你好谢谢", - "你好再见谢谢\n你好再见不客气", -] - -# 分别构建数据 -FACT_TEXT = ("\n".join(BASE) + "\n") * 20 + "\n".join(FACT_QA) * 40 -REASON_TEXT = "\n".join(REASONING_QA) * 80 -CHAT_TEXT = "\n".join(CHAT_QA) * 80 - -FACT_DATA = torch.tensor([CH2I[c] for c in FACT_TEXT if c in CH2I], dtype=torch.long) -REASON_DATA = torch.tensor([CH2I[c] for c in REASON_TEXT if c in CH2I], dtype=torch.long) -CHAT_DATA = torch.tensor([CH2I[c] for c in CHAT_TEXT if c in CH2I], dtype=torch.long) -DATA = torch.cat([FACT_DATA, REASON_DATA, CHAT_DATA]) - -print(f"[data] fact={FACT_DATA.numel()} reason={REASON_DATA.numel()} chat={CHAT_DATA.numel()} total={DATA.numel()}") -print(f"[data] base={len(BASE)} fact_qa={len(FACT_QA)} reasoning_qa={len(REASONING_QA)} chat_qa={len(CHAT_QA)}") - -all_chars = set("".join(BASE) + "\n".join(FACT_QA) + "\n".join(REASONING_QA) + "\n".join(CHAT_QA)) -missing = [c for c in VOCAB_CHARS if c not in all_chars and c != '\n'] -unused = [c for c in all_chars if c not in CH2I] -if missing: - print(f"[warn] vocab chars not in training data: {missing}") -if unused: - print(f"[warn] training chars not in vocab (will be filtered): {unused}") -print(f"[vocab] size={VOCAB_SIZE}") - - -# ---------- GLA ---------- -class GLA(nn.Module): - def __init__(self, dim): - super().__init__() - self.q = nn.Linear(dim, dim, bias=False) - self.k = nn.Linear(dim, dim, bias=False) - self.v = nn.Linear(dim, dim, bias=False) - self.g = nn.Linear(dim, dim, bias=False) - self.o = nn.Linear(dim, dim, bias=False) - self.log_decay = nn.Parameter(torch.zeros(dim)) - - def forward(self, x): - B, T, D = x.shape - q = F.elu(self.q(x)) + 1 - k = F.elu(self.k(x)) + 1 - v = self.v(x) - gate = torch.sigmoid(self.g(x)) - decay = torch.sigmoid(self.log_decay) - - S = torch.zeros(B, D, D, device=x.device) - z = torch.zeros(B, D, device=x.device) - outputs = [] - for t in range(T): - g_t = gate[:, t] * decay - S = g_t.unsqueeze(-1) * S + k[:, t].unsqueeze(-1) * v[:, t].unsqueeze(1) - z = g_t * z + k[:, t] - num = torch.bmm(q[:, t].unsqueeze(1), S).squeeze(1) - den = (q[:, t] * z).sum(-1, keepdim=True) + 1e-6 - y = num / den - outputs.append(y) - y = torch.stack(outputs, 1) - return self.o(y) - - -class BitFlowBlock(nn.Module): - def __init__(self, dim): - super().__init__() - self.norm1 = nn.LayerNorm(dim) - self.attn = GLA(dim) - self.norm2 = nn.LayerNorm(dim) - self.ff1 = nn.Linear(dim, FFN_DIM, bias=False) - self.ff2 = nn.Linear(FFN_DIM, dim, bias=False) - - def forward(self, x): - x = x + self.attn(self.norm1(x)) - h = self.norm2(x) - h = self.ff2(F.gelu(self.ff1(h), approximate='tanh')) - x = x + h - return x - - -# ---------- MoE ---------- -class Router(nn.Module): - def __init__(self, dim, num_experts, router_dim=ROUTER_DIM): - super().__init__() - self.fc1 = nn.Linear(dim, router_dim) - self.fc2 = nn.Linear(router_dim, num_experts) - - def forward(self, x): - x = x.mean(dim=1) - x = F.relu(self.fc1(x)) - return self.fc2(x) - - -class BitFlowMoE(nn.Module): - def __init__(self, num_experts=NUM_EXPERTS): - super().__init__() - self.tok = nn.Embedding(VOCAB_SIZE, DIM) - self.pos = nn.Embedding(CONTEXT, DIM) - self.experts = nn.ModuleList([ - BitFlowBlock(DIM) for _ in range(num_experts) - ]) - self.router = Router(DIM, num_experts) - self.norm_f = nn.LayerNorm(DIM) - self.head = nn.Linear(DIM, VOCAB_SIZE, bias=False) - self.num_experts = num_experts - - n = sum(p.numel() for p in self.parameters()) - print(f"[model] BitFlow MoE v3 params={n} ({n/1024:.1f}K) experts={num_experts} D={DIM} FFN={FFN_DIM}") - - def forward(self, idx, labels=None): - B, T = idx.shape - pos = torch.arange(T) - x = self.tok(idx) + self.pos(pos)[None] - gate_logits = self.router(x) - - if labels is not None: - outputs = torch.zeros_like(x) - for i in range(self.num_experts): - mask = (labels == i) - if mask.any(): - idx_mask = torch.where(mask)[0] - for _ in range(N_LAYER): - x[idx_mask] = self.experts[i](x[idx_mask]) - outputs[idx_mask] = x[idx_mask] - x = outputs - else: - expert_idx = gate_logits.argmax(dim=-1) - outputs = torch.zeros_like(x) - for i in range(self.num_experts): - mask = (expert_idx == i) - if mask.any(): - idx_mask = torch.where(mask)[0] - for _ in range(N_LAYER): - x[idx_mask] = self.experts[i](x[idx_mask]) - outputs[idx_mask] = x[idx_mask] - x = outputs - - x = self.norm_f(x) - return self.head(x), gate_logits - - -# ---------- 数据采样 ---------- -DATASETS = [FACT_DATA, REASON_DATA, CHAT_DATA] - -def get_batch(bs=BATCH_SIZE): - xs, ys, labels = [], [], [] - for _ in range(bs): - # 均匀采样 3 个专家 - r = random.random() - if r < 0.40: - data, label = FACT_DATA, 0 - elif r < 0.70: - data, label = REASON_DATA, 1 - else: - data, label = CHAT_DATA, 2 - i = random.randint(0, data.numel() - CONTEXT - 2) - xs.append(data[i:i+CONTEXT]) - ys.append(data[i+1:i+CONTEXT+1]) - labels.append(label) - return torch.stack(xs), torch.stack(ys), torch.tensor(labels, dtype=torch.long) - - -def apply_qat(model): - with torch.no_grad(): - for name, p in model.named_parameters(): - if p.requires_grad: - scale = p.abs().max() / 127.0 + 1e-8 - q = torch.clamp((p / scale).round(), -128, 127) * scale - p.copy_(q) - - -# ---------- 训练 ---------- -def main(): - model = BitFlowMoE(num_experts=NUM_EXPERTS) - opt = torch.optim.AdamW(model.parameters(), lr=LR, weight_decay=0.01) - sched = torch.optim.lr_scheduler.CosineAnnealingLR(opt, EPOCHS) - model.train() - - best_loss = float('inf') - - for ep in range(EPOCHS): - if ep >= QAT_START: - apply_qat(model) - - x, y, labels = get_batch() - logits, gate_logits = model(x, labels=labels) - - pred_loss = F.cross_entropy(logits.reshape(-1, VOCAB_SIZE), y.reshape(-1)) - router_loss = F.cross_entropy(gate_logits, labels) - gate_probs = F.softmax(gate_logits, dim=-1) - avg_usage = gate_probs.mean(dim=0) - balance_loss = NUM_EXPERTS * (avg_usage * avg_usage).sum() - - loss = pred_loss + ROUTER_WEIGHT * router_loss + LB_WEIGHT * balance_loss - - if torch.isnan(loss) or torch.isinf(loss): - print(f"[warn] NaN/Inf at ep={ep}, skipping") - opt.zero_grad() - continue - - opt.zero_grad() - loss.backward() - torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) - opt.step() - sched.step() - - if ep % 500 == 0 or ep == EPOCHS - 1: - qat_tag = " [QAT]" if ep >= QAT_START else "" - with torch.no_grad(): - pred_expert = gate_logits.argmax(dim=-1) - router_acc = (pred_expert == labels).float().mean().item() - print(f"[train] ep={ep:4d} loss={loss.item():.4f} " - f"pred={pred_loss.item():.4f} router={router_loss.item():.4f} " - f"acc={router_acc:.2f} bal={balance_loss.item():.4f}{qat_tag}") - if loss.item() < best_loss: - best_loss = loss.item() - - model.eval() - print(f"\n[best] loss={best_loss:.4f}") - - test_model(model) - torch.save(model.state_dict(), "bitflow_moe.pt") - print("\n[save] bitflow_moe.pt") - - try: - export_int8(model) - except Exception: - import traceback - print("[ERROR] export failed:") - traceback.print_exc() - - -def test_model(model): - import traceback - try: - seeds = [ - # 基础问答 (Expert-2) - "你好", "你好吗", "谢谢", "再见", "你叫什么名字", - "你喜欢什么", "你喜欢猫吗", "你好棒", "你是谁", - "你会什么", "你开心吗", "早安", "今天好吗", - "你在做什么", "猫好吗", "你喜欢什么颜色", - # 事实类 (Expert-0) - "猫是什么", "猫在做什么", "猫吃什么", "天是什么颜色", - # 推理类 (Expert-1) - "什么会飞", "什么会跑", "什么会游", "什么吃草", - ] - NL = CH2I['\n'] - for seed in seeds: - ctx = [CH2I[c] for c in seed if c in CH2I] - if not ctx: - continue - ctx.append(NL) - seed_len = len(ctx) - - with torch.no_grad(): - x = torch.tensor([ctx[-CONTEXT:]], dtype=torch.long) - _, gate_logits = model(x, labels=None) - expert_idx = gate_logits.argmax(dim=-1).item() - gate_probs = F.softmax(gate_logits[0], dim=-1) - - with torch.no_grad(): - for _ in range(20): - x = torch.tensor([ctx[-CONTEXT:]], dtype=torch.long) - logits, _ = model(x, labels=None) - probs = F.softmax(logits[0, -1] / 0.3, dim=-1) - nxt = torch.multinomial(probs, 1).item() - ctx.append(nxt) - gen_ids = ctx[seed_len:] - gen = "".join(I2CH[i] for i in gen_ids) - answer = gen.split("\n")[0] if "\n" in gen else gen - - probs_str = " ".join(f"{gate_probs[i].item():.2f}" for i in range(NUM_EXPERTS)) - print(f" Q: {seed} [E{expert_idx} | {probs_str}]") - print(f" A: {answer}") - print() - except Exception: - print("[ERROR] generation failed:") - traceback.print_exc() - - -def export_int8(model): - import struct - state = model.state_dict() - tensors = [] - names = [] - for name, p in state.items(): - if name.endswith('.log_decay'): - val = torch.sigmoid(p).cpu() - else: - val = p.cpu() - tensors.append(val) - names.append(name) - - quant_data = bytearray() - scales = [] - lengths = [] - for t in tensors: - t_flat = t.flatten() - abs_max = t_flat.abs().max().item() - if abs_max < 1e-8: - scale = 1.0 - else: - scale = abs_max / 127.0 - q = torch.clamp((t_flat / scale).round(), -128, 127).to(torch.int8) - quant_data.extend(q.numpy().tobytes()) - scales.append(scale) - lengths.append(len(q)) - - with open("bitflow_moe_weights.bin", "wb") as f: - nt = len(tensors) - f.write(struct.pack('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

Dg6NvUino5o^M3GD+=)OKFZpLl06zg%B9(T4J5V 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�m>7g6lZ)nF@KtbW;o|EH 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 diff --git a/verify_moe_v4.py b/verify_moe_v4.py deleted file mode 100644 index 4c1d034..0000000 --- a/verify_moe_v4.py +++ /dev/null @@ -1,306 +0,0 @@ -""" -PC端模拟器: 验证 bitflow_moe.py 的推理逻辑与 PyTorch 模型一致 -模拟 micro:bit 上的 int8 解量化 + GLA + MoE + 采样 全流程 -""" -import struct, math, random, sys - -# ========== 加载 int8 权重 ========== -with open("bitflow_moe_weights.bin", "rb") as f: - nt = struct.unpack('= 128: v -= 256 - r[j] = v * s - return r - -SMW = [] -for e in range(NE): - b0 = 2 + e * 12 - SMW.append(dqS(b0)) # norm1.w - SMW.append(dqS(b0 + 1)) # norm1.b - SMW.append(dqS(b0 + 2)) # log_decay - SMW.append(dqS(b0 + 8)) # norm2.w - SMW.append(dqS(b0 + 9)) # norm2.b - -rf1b = dqS(RB + 1) -rf2b = dqS(RB + 3) -nfw = dqS(NB) -nfb = dqS(NB + 1) - -# ========== 融合解量化+矩阵乘 ========== -def dqmv(i, ni, no, x, out): - s = SC[i]; o = OFF[i] - for r in range(no): - ss = 0.0; b = r * ni - for c in range(ni): - v = W[o + b + c] - if v >= 128: v -= 256 - ss += v * s * x[c] - out[r] = ss - -def mvW(w, ni, no, x, out): - for r in range(no): - ss = 0.0; b = r * ni - for c in range(ni): - ss += w[b + c] * x[c] - out[r] = ss - -def ln(w, b, x, o): - m = sum(x) / D - v = sum((x[i] - m) ** 2 for i in range(D)) / D - iv = 1.0 / math.sqrt(v + 1e-5) - for i in range(D): - o[i] = w[i] * (x[i] - m) * iv + b[i] - -def e1(x): - return x + 1.0 if x >= 0 else math.exp(x) - -def sg(x): - if x >= 0: - e = math.exp(-x); return 1.0 / (1.0 + e) - e = math.exp(x); return e / (1.0 + e) - -def ge(x): - c = 0.7978845608 - return x * sg(2.0 * c * (x + 0.044715 * x * x * x)) - -def sm(l, t=0.3): - m = -1e9 - for i in range(VS): - v = l[i] - bcnt[i] * 2.0 - if v > m: m = v - s = 0.0 - for i in range(VS): - v = l[i] - bcnt[i] * 2.0 - e = math.exp((v - m) / t) - bpr[i] = e; s += e - r = random.random() * s; c = 0.0 - for i in range(VS): - c += bpr[i] - if c >= r: return i - return VS - 1 - -# ========== 状态 ========== -S = [[0.0] * (D * D) for _ in range(NL)] -z = [[0.0] * D for _ in range(NL)] -bx = [0.0] * D; bh = [0.0] * D -bq = [0.0] * D; bk = [0.0] * D -bv = [0.0] * D; bgd = [0.0] * D -bnum = [0.0] * D; by = [0.0] * D -bout = [0.0] * D; bff = [0.0] * FD -bpr = [0.0] * VS; bcnt = [0] * VS -brh = [0.0] * RD; brl = [0.0] * NE -blg = [0.0] * VS -bsum = [0.0] * D; brx = [0.0] * D; bct = [0] - -# ========== GLA ========== -def gs(e, layer, h): - b0 = 2 + e * 12; dec = SMW[e * 5 + 2] - dqmv(b0 + 3, D, D, h, bq) - dqmv(b0 + 4, D, D, h, bk) - dqmv(b0 + 5, D, D, h, bv) - dqmv(b0 + 6, D, D, h, bgd) - for i in range(D): - bq[i] = e1(bq[i]); bk[i] = e1(bk[i]) - for i in range(D): - bgd[i] = sg(bgd[i]) * dec[i] - sl = S[layer]; zl = z[layer] - for i in range(D): - si = i * D; gd = bgd[i]; ki = bk[i] - for j in range(D): - sl[si + j] = gd * sl[si + j] + ki * bv[j] - for i in range(D): - zl[i] = bgd[i] * zl[i] + bk[i] - for j in range(D): - bnum[j] = 0.0 - for i in range(D): - si = i * D; qi = bq[i] - for j in range(D): - bnum[j] += qi * sl[si + j] - den = 1e-6 - for i in range(D): - den += bq[i] * zl[i] - iv = 1.0 / den - for j in range(D): - by[j] = bnum[j] * iv - dqmv(b0 + 7, D, D, by, bout) - -def bs(e, x, layer): - b0 = 2 + e * 12 - ln(SMW[e * 5], SMW[e * 5 + 1], x, bh) - gs(e, layer, bh) - for i in range(D): - x[i] += bout[i] - ln(SMW[e * 5 + 3], SMW[e * 5 + 4], x, bh) - dqmv(b0 + 10, D, FD, bh, bff) - for i in range(FD): - bff[i] = ge(bff[i]) - dqmv(b0 + 11, FD, D, bff, bout) - for i in range(D): - x[i] += bout[i] - -def route(x): - dqmv(RB, D, RD, x, brh) - for i in range(RD): - brh[i] = max(0.0, brh[i] + rf1b[i]) - dqmv(RB + 2, RD, NE, brh, brl) - for i in range(NE): - brl[i] += rf2b[i] - bi = 0; bv2 = brl[0] - for i in range(1, NE): - if brl[i] > bv2: - bv2 = brl[i]; bi = i - return bi, brl[:] - -def fw(ctx, gen_flag=True): - t = min(len(ctx) - 1, CT - 1); ti = ctx[-1] - s0 = SC[0]; o0 = OFF[0]; s1 = SC[1]; o1 = OFF[1] - for i in range(D): - v0 = W[o0 + ti * D + i] - if v0 >= 128: v0 -= 256 - v1 = W[o1 + t * D + i] - if v1 >= 128: v1 -= 256 - bx[i] = v0 * s0 + v1 * s1 - # 累加运行均值 (匹配训练时router的x.mean(dim=1)) - for i in range(D): bsum[i] += bx[i] - bct[0] += 1 - for i in range(D): brx[i] = bsum[i] / bct[0] - ei, gate = route(brx) - for layer in range(NL): - bs(ei, bx, layer) - ln(nfw, nfb, bx, bh) - if gen_flag: - dqmv(HI, D, VS, bh, blg) - return blg, ei, gate - return None, ei, gate - -def rs(): - for l in range(NL): - for i in range(D * D): - S[l][i] = 0.0 - for i in range(D): - z[l][i] = 0.0 - for i in range(D): - bsum[i] = 0.0 - bct[0] = 0 - -def gen(ids, n): - NL_ch = VS - 1 - ids = list(ids) + [NL_ch] - sl = len(ids); c = list(ids); rs() - for i in range(VS): - bcnt[i] = 0 - # 种子处理 - for i in range(len(c) - 1): - fw(c[:i + 1], False) - # 生成 - expert_names = ["事实", "推理", "问答"] - for _ in range(n): - lg, ei, gate = fw(c) - nx = sm(lg) - bcnt[nx] += 1 - c.append(nx) - gen_ids = c[sl:] - gen = "".join(I2CH.get(i, '?') for i in gen_ids) - answer = gen.split("\n")[0] if "\n" in gen else gen - return answer, ei - -# ========== 测试 ========== -seeds = [ - "你好", "你好吗", "谢谢", "再见", "你叫什么名字", - "你喜欢什么", "你喜欢猫吗", "你好棒", "你是谁", - "你会什么", "你开心吗", "早安", "今天好吗", - "你在做什么", "猫好吗", "你喜欢什么颜色", - "猫是什么", "猫在做什么", "猫吃什么", "天是什么颜色", - "什么会飞", "什么会跑", "什么会游", "什么吃草", -] - -print("=" * 60) -print("PC模拟器验证 (模拟micro:bit int8推理)") -print("=" * 60) - -correct = 0; total = 0 -for seed in seeds: - ctx = [CH2I[c] for c in seed if c in CH2I] - if not ctx: - continue - random.seed(42) # 固定随机种子便于复现 - answer, ei = gen(ctx, 20) - expert_names = ["事实", "推理", "问答"] - print(f"Q: {seed:12s} [E{ei}={expert_names[ei]}]") - print(f"A: {answer}") - print() - total += 1 - # 简单验证: 答案非空且包含相关字符 - if answer and len(answer) > 0: - correct += 1 - -print(f"\n结果: {correct}/{total} 有效输出") - -# 内存估算 -mem_w = len(W) -mem_S = NL * D * D * 4 -mem_z = NL * D * 4 -mem_buf = (9 * D + FD + VS + VS + RD + NE + VS + D + D) * 4 # +bsum, brx -mem_SMW = NE * 5 * D * 4 -mem_small = (RD + NE + D + D) * 4 # rf1b, rf2b, nfw, nfb -mem_lists = 3 * nt * 8 # LEN, SC, OFF as Python lists -total_mem = mem_w + mem_S + mem_z + mem_buf + mem_SMW + mem_small + mem_lists -print(f"\n内存估算 (micro:bit):") -print(f" W (int8权重): {mem_w:>6d} B = {mem_w/1024:.1f}KB") -print(f" S (GLA状态): {mem_S:>6d} B = {mem_S/1024:.1f}KB") -print(f" z (归一化): {mem_z:>6d} B = {mem_z/1024:.1f}KB") -print(f" 缓冲区: {mem_buf:>6d} B = {mem_buf/1024:.1f}KB") -print(f" SMW (小权重): {mem_SMW:>6d} B = {mem_SMW/1024:.1f}KB") -print(f" 路由/norm_f: {mem_small:>6d} B = {mem_small/1024:.1f}KB") -print(f" LEN/SC/OFF: {mem_lists:>6d} B = {mem_lists/1024:.1f}KB") -print(f" 总计: {total_mem:>6d} B = {total_mem/1024:.1f}KB") -print(f" micro:bit可用: ~108KB (128KB-20KB解释器)") -print(f" 余量: {108*1024 - total_mem:>6d} B = {(108*1024 - total_mem)/1024:.1f}KB")