Papers

已有引擎审计 - minivLLM 文本推理引擎

这里记录对 multimodal/minivLLM/ 的静态审计结果。 审计日期:2026-06-07。审计方法:静态文件读取 + AST/正则分析,未 import 引擎运行。 实际引擎目录是 minivLLM/,不移动、不修改。

1. 模块状态总览

8
已实现且可运行
3
已实现但不确定正确
3
部分实现
2
未实现
2
阻塞 Bug
#模块文件状态备注
1tokenizer(嵌入层)layers/numpy/embedding.py已实现且可运行LMHead 依赖未设置的 context
2model loadermodel/qwen3.py
validate_model.py
已实现且可运行Qwen3(cfg) 可构造;HF 权重映射正确
3attention(MHA/GQA)layers/numpy/attention.py已实现但不确定正确Attn 类本身正确,但 Qwen3Attn 调用传参不匹配 B1
4causal maskattention.py 行 19-31已实现且可运行有 decode 场景局限说明
5RoPElayers/numpy/rope.py已实现且可运行get_rope() 带 LRU 缓存
6KV cachecore/kv_cache.py已实现但不确定正确contiguous buffer;无 forward 引用 未接线
7prefill-部分实现无 prefill/decode 分叉
8decode-部分实现暴力逐 token 全序列重算
9sampling-部分实现仅 argmax
10scheduler-未实现无调度/无 batching
11paged attention-未实现仅有脚手架字段 休眠
12activationactivation.py已实现且可运行SiluAndMul 正确,但 Qwen3FFN 未用
13normnorm.py已实现且可运行RMSNorm + residual 融合
14linearlinear.py已实现且可运行简单 nn.Linear 包装
15FFNmodel/qwen3.py已实现但不完整act_fn = None B2
16decoder layermodel/qwen3.py部分实现依赖有 bug 的子组件
17模型顶层model/qwen3.py已实现且可运行结构正确
18configconfig.py已实现且可运行含 paged attention 预留字段

2. 阻塞项(Blockers)

B1 - Qwen3Attn → Attn 参数不兼容 TypeError

model/qwen3.py 行 50-56:Qwen3Attn.__init__ 调用 Attn(...) 时传入了 S=self.head_dimis_decode=True,但 Attn.__init__ 的签名是 Attn(num_heads, head_dim, num_kv_heads, is_causal=True),不包含 Sis_decode。 构造时直接 TypeError,引擎无法实例化。

B2 - Qwen3FFN.act_fn = None TypeError

model/qwen3.py 行 87:self.act_fn = None # TODO: SilU and MUL gate。 Forward 时 self.act_fn(gate_up) 触发 TypeError: 'NoneType' object is not callable。 正确的 SiluAndMul 实现在 activation.py 中,但 Qwen3FFN 未引用。

B3 - KV Cache 未被引擎接线 未接线

core/kv_cache.py 中的 KVCache 类是 contiguous buffer,不是 paged attention。 全仓库无任何 KVCache 的 forward 引用,它是 dead code。 当前推理是 O(n²) 的 full-sequence attention。

B4 - Context 脚手架未被调用 休眠

utils/context.py 中的 set_context() 从未被调用。 block_tablesslot_mapping 等 paged attention 字段处于默认零值状态。

B5 - 无调度器

代码库中无 scheduler、无 request queue、无 batching。 validate_model.py 只演示单序列推理。

3. 目录结构

minivLLM/
├── minivllm/
│   ├── config.py          # 引擎配置
│   ├── core/kv_cache.py   # KV 缓存(未接线)
│   ├── layers/numpy/      # 算子层(6 个文件)
│   ├── model/qwen3.py     # Qwen3 模型实现
│   └── utils/context.py   # 全局上下文(休眠)
├── validate_model.py      # 验证脚本
└── scripts/               # 辅助脚本

4. 相关笔记

5. 审计结果文件