File size: 3,656 Bytes
f664f3f e14a9b6 f664f3f e14a9b6 f664f3f e14a9b6 f664f3f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | # Omni 开发文档
> Omni — 把 MiniMind / MiniMind-V / MiniMind-O 三套代码融合成一个按模态分层(文本 / 视觉 / 全模态)的训练 + 推理框架。面向**学习与面试**的模块化开发文档。
## 仓库结构
```
docs/ ↔ src/
├── architecture/ # 概念总览(入口,非代码模块)
├── core/ ↔ src/core/ 纯 Transformer 组件
├── models/ ↔ src/models/ lm / vlm / vam 模型拼装
├── multimodal/ ↔ src/encoders/ + src/projectors/ 多模态编码与投影
├── training/ ↔ src/dataset/ + src/trainers/ + src/utils/ 训练相关
├── serve/ ↔ src/serve/ 实时语音会话
└── interview/ # 面试速查(学习辅助)
```
## 文档导航
### 架构(概念入口)
| 文档 | 说明 |
| --- | --- |
| [架构总览](architecture/overview.md) | 能力分层设计、模型能力矩阵、前向数据流、训练入口、关键设计取舍 |
### core/(基础组件)
| 文档 | 说明 |
| --- | --- |
| [组件索引](core/index.md) | 与模态无关的纯 Transformer 组件总览 |
| [RMSNorm](core/norm.md) | RMSNorm 实现与数值技巧 |
| [RoPE](core/rope.md) | 旋转位置编码(含 YaRN)、`repeat_kv` |
| [Attention](core/attention.md) | 带 QK-Norm + GQA 的注意力 |
| [MLP / MoE](core/mlp.md) | SwiGLU FFN 与 MoE 前馈 |
| [Block](core/block.md) | Pre-Norm Transformer 块、MoE 可插拔 |
### models/(模型拼装)
| 文档 | 说明 |
| --- | --- |
| [模型索引](models/index.md) | `lm` / `vlm` / `vam` 三子包拼装、继承链、共享主干 |
| [LM](models/lm.md) | 纯文本主干 `LM` + `LMForCausalLM` |
| [VLM](models/vlm.md) | 文本 + 图像(SigLIP 编码器 + 视觉投影) |
| [VAM](models/vam.md) | 文本 + 图像 + 语音,`TalkerModule` 双 head |
### multimodal/(多模态)
| 文档 | 说明 |
| --- | --- |
| [多模态索引](multimodal/index.md) | 编码器 + 投影器、模态对齐范式 |
### training/(训练)
| 文档 | 说明 |
| --- | --- |
| [训练索引](training/index.md) | 数据集 + 训练脚本 + 工具 |
| [Trainers](training/trainers.md) | 各 trainer 模块概览与通用训练循环 |
| [配置与命令行](training/config-and-cli.md) | YAML 配置驱动训练、`apply_config` 机制 |
### serve/(实时语音会话)
| 文档 | 说明 |
| --- | --- |
| [服务索引](serve/index.md) | `SileroVAD` / `RealtimeSession` 端到端语音链路 |
### 面试速查
| 文档 | 说明 |
| --- | --- |
| [面试准备](interview/面试速查.md) | 高频问题 + 一句话答法,按主题组织 |
## 类名
| 类 | 说明 |
| --- | --- |
| `LM` | 纯文本主干 |
| `LMForCausalLM` | 文本模型(含 lm_head + 生成) |
| `LMConfig` | 文本模型配置 |
| `VLM` | 文本 + 视觉多模态 |
| `VAM` | 全模态(文本 + 视觉 + 语音) |
| `VAMConfig` | 全模态配置 |
| `model_type = "omni"` | LM 架构 ID |
| `model_type = "omni-v"` | VLM 架构 ID |
| `model_type = "omni-o"` | VAM 架构 ID |
包结构(已扁平化,无 `omni` 中间层):
```
src/
├── core/ # 纯组件:norm / rope / attention / mlp / block
├── models/ # lm / vlm / vam 三个子包(config + model)
├── dataset/ # 每类一个文件的数据集
├── encoders/ # vision / audio 编码器
├── projectors/ # 视觉/音频桥接层
├── serve/ # 实时语音会话
├── trainers/ # lm / vlm / vam 训练脚本
└── utils/ # training / distributed / checkpoint / multimodal
```
|