这里记录对 multimodal/minivLLM/ 的静态审计结果。
审计日期:2026-06-07。审计方法:静态文件读取 + AST/正则分析,未 import 引擎运行。
实际引擎目录是 minivLLM/,不移动、不修改。
| # | 模块 | 文件 | 状态 | 备注 |
|---|---|---|---|---|
| 1 | tokenizer(嵌入层) | layers/numpy/embedding.py | 已实现且可运行 | LMHead 依赖未设置的 context |
| 2 | model loader | model/qwen3.pyvalidate_model.py | 已实现且可运行 | Qwen3(cfg) 可构造;HF 权重映射正确 |
| 3 | attention(MHA/GQA) | layers/numpy/attention.py | 已实现但不确定正确 | Attn 类本身正确,但 Qwen3Attn 调用传参不匹配 B1 |
| 4 | causal mask | attention.py 行 19-31 | 已实现且可运行 | 有 decode 场景局限说明 |
| 5 | RoPE | layers/numpy/rope.py | 已实现且可运行 | get_rope() 带 LRU 缓存 |
| 6 | KV cache | core/kv_cache.py | 已实现但不确定正确 | contiguous buffer;无 forward 引用 未接线 |
| 7 | prefill | - | 部分实现 | 无 prefill/decode 分叉 |
| 8 | decode | - | 部分实现 | 暴力逐 token 全序列重算 |
| 9 | sampling | - | 部分实现 | 仅 argmax |
| 10 | scheduler | - | 未实现 | 无调度/无 batching |
| 11 | paged attention | - | 未实现 | 仅有脚手架字段 休眠 |
| 12 | activation | activation.py | 已实现且可运行 | SiluAndMul 正确,但 Qwen3FFN 未用 |
| 13 | norm | norm.py | 已实现且可运行 | RMSNorm + residual 融合 |
| 14 | linear | linear.py | 已实现且可运行 | 简单 nn.Linear 包装 |
| 15 | FFN | model/qwen3.py | 已实现但不完整 | act_fn = None B2 |
| 16 | decoder layer | model/qwen3.py | 部分实现 | 依赖有 bug 的子组件 |
| 17 | 模型顶层 | model/qwen3.py | 已实现且可运行 | 结构正确 |
| 18 | config | config.py | 已实现且可运行 | 含 paged attention 预留字段 |
model/qwen3.py 行 50-56:Qwen3Attn.__init__ 调用 Attn(...) 时传入了 S=self.head_dim 和 is_decode=True,但 Attn.__init__ 的签名是 Attn(num_heads, head_dim, num_kv_heads, is_causal=True),不包含 S 和 is_decode。
构造时直接 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 未引用。
core/kv_cache.py 中的 KVCache 类是 contiguous buffer,不是 paged attention。
全仓库无任何 KVCache 的 forward 引用,它是 dead code。
当前推理是 O(n²) 的 full-sequence attention。
utils/context.py 中的 set_context() 从未被调用。
block_tables、slot_mapping 等 paged attention 字段处于默认零值状态。
代码库中无 scheduler、无 request queue、无 batching。
validate_model.py 只演示单序列推理。
minivLLM/ ├── minivllm/ │ ├── config.py # 引擎配置 │ ├── core/kv_cache.py # KV 缓存(未接线) │ ├── layers/numpy/ # 算子层(6 个文件) │ ├── model/qwen3.py # Qwen3 模型实现 │ └── utils/context.py # 全局上下文(休眠) ├── validate_model.py # 验证脚本 └── scripts/ # 辅助脚本