Qwen2.5 学习 Wiki
NOTES

每个模块的具体功能

输入是模型 manifest 和 GGUF;输出是可复用的 tokenizer/tensor 资产目录。

Qwen2.5/05_Module_Functions_CN.md 2026-07-13 约 5 分钟阅读

A. 模型资产模块

1

找到本地 GGUF blob,读取模型 metadata 和 tensor 目录。

2

将 tokenizer 词表、token 类型、merge 规则和 chat template 导出为可检索文件。

3

按 GGUF 数据偏移把每个 tensor 的原始量化 payload 复制为独立 BIN。

4

写出每项资产的大小和 SHA-256 的 manifest。

输入是模型 manifest 和 GGUF;输出是可复用的 tokenizer/tensor 资产目录。

B. tokenizer 打包模块

1

tokens.jsonl 变成按 token id 排列的 index 与 byte payload。

2

将 merge 文本变成 A53 可顺序读取的 16 字节记录。

3

建立 byte-to-token、merge pair 和 special token 索引。

4

将六类 section 写入单一 Q25TOKRT image。

5

由 C API 将 image 映射为 bundle viewencode view

输入是导出的 tokenizer;输出是 Q25TOKRT 和对它的只读 C view。

C. Host 参考计算模块

1

读取原始量化块并按 GGML 类型反量化。

2

计算 embedding、RMSNorm、Q/K/V 投影、RoPE、attention、MLP、final norm、lm_head 的选定范围或完整 forward。

3

对固定 prompt/token ids 写出中间向量、logits、top-k 和 JSON manifest。

4

从同一份数据裁剪 HLS kernel 所需的输入行和期望输出。

输入是 tensor payload 和 token ids;输出是 golden JSON 与 HLS fixture。

D. HLS/PL 算子模块

算子族算法范围数据类型/尺寸输出
embedding/RMSNormlookup、归一化、选定 top1 bridgeF32、Q8_0hidden/normalized vector 或候选分数
QKV/RoPEnorm、Q/K/V 线性投影、旋转位置编码SmolLM2:576 hidden,Q5_0/Q5_1Q/K/V 向量
attentionmasked softmax、V 加权求和最多 8 token,64 维 headprobabilities、context vector、checksum
MLPnorm、gate/up、SiLU、down、residualSmolLM2:576 到 1536 到 576residual output
quant matvec选定行或 row tile 的反量化 dotQ4_K/Q5_K/Q6_K/Q8_0 或 int8partial/dot 输出
lm_head量化行 scoring、top-kQ8_0 或 int8 页token id 与分数

每个 kernel 只处理传入的 DDR 缓冲区和控制寄存器。kernel 间不存在通过 UART 自动串联的调用。

E. PS/A53 模块

1

启动时可选地从编译期给定地址打开 Q25TOKRT

2

从 UART0 或 UART1 读取一行命令,同时向两个 UART 发送响应。

3

保存 token prompt、文本 prompt、当前模型名称和 tokenizer image 状态。

4

TEXT_PROMPT 使用 BPE image 或逐字节 fallback,打印 token ids。

5

TEXT_GENERATE 组合已有 token 与固定 " ok" 后缀,解码并打印文本。

6

将 P4 的三个新命令转交 q25_p4_runtime_dispatch

F. 板级执行模块

1

生成或收集 XSA、BSP、ELF、SD payload、runtime image。

2

为 board run 建立报告目录和步骤日志。

3

可从指定 COM 端口采集 UART transcript,也可接受已有 transcript 文件。

4

检查 NL_INFONL_PROMPT_IDSNL_GENERATENL_RESULT_IDSTEXT_PROMPTTEXT_GENERATETEXT_RESULT 等标记。

5

归档 transcript、构建物、manifest 与验证结果。

G. 产物验证模块

验证对象方式输出
tokenizer/tensor 文件size 与 SHA-256manifest 条目
tensor 导出逐文件大小与 SHA-256export verification JSON
HLS fixturemanifest 中的输入与期望值CSim/cosim/csynth 日志
UART transcript必需协议标记和模板/synthetic 标记uart_transcript_validation.json
board archive归档目录与步骤记录archive verification 结果