Appearance
学习日志
进度总览
| 模块 | 状态 | 笔记 |
|---|---|---|
| 01 项目概览与构建系统 | ⬜ 未开始 | |
| 02 GGML 张量库基础 | ⬜ 未开始 | |
| 03 GGML 后端与硬件抽象 | ⬜ 未开始 | |
| 04 模型加载与 GGUF 格式 | ⬜ 未开始 | |
| 05 分词与词表 | ⬜ 未开始 | |
| 06 Transformer 推理图 | ⬜ 未开始 | |
| 07 KV Cache 与批处理 | ⬜ 未开始 | |
| 08 采样、量化与部署 | ⬜ 未开始 |
2026-06-07
上游同步:214 commits, GGML 0.13.1
将 vendor/llama.cpp 子模块从 328874d05 (b9310) 更新至 98d5e8ba8 (b9544)。
关键变更:
新模型架构
- DeepSeek V3.2 — 新增
LLM_ARCH_DEEPSEEK32,引入 DeepSeek Sparse Attention (DSA) lightning indexer,配备专用 KV cache 类型llama_kv_cache_dsa - Gemma 4 — 支持
Gemma4ForCausalLM架构及 Gemma 4 Vision 多模态 - Mellum — 全新模型家族,含专用转换脚本
- EXAONE 4.5 — 支持 GQA mmproj、视觉标记
- Step3.7-Flash — 新增转换支持
- Talkie-1930-13B — 新模型架构
- Granite Multilingual Embeddings R2 — 嵌入模型支持
- MiniCPM5 — 新增 tokenizer 支持
- LFM2.5-8B-A1B — 新增 tokenizer 和 chat template
推理与注意力
- Flash Attention f16 mask — KQ mask 从 float 改为模板化,支持 f16,大幅节省 VRAM
llm_graph_input_mtp— MTP 推理图的新输入类型基础设施- Qwen 3.5 MTP post-norm — 使用后归一化隐藏状态进行 MTP
- StepFun 3.5 MTP — 单层 MTP 支持
- n_outputs_max — context 参数限制最大输出数,节省 VRAM
KV Cache
- TP 量化 KV cache — Tensor Parallel 现支持量化 KV cache
- SWA checkpoint 优化 — 保存状态时仅写入未屏蔽的 cell,减少 I/O
- hparams.n_layer_all — 重构层计数,区分总层数与 KV 层数
Server/API
/v1/chat/completions/input_tokens— 新 API:仅计数 token 不执行完整推理- 实时推理中断 —
POST /v1/chat/completions/control可中断正在进行的推理 - SSE ping interval — 防止长生成时连接断开
- HTTP ETags — 支持 FNV-hash 缓存
后端
- CUDA — PDL 修复(竞态条件、PTX 版本检查)、AMD MFMA MMQ 路由、量化 KV cache 预分配
- Metal — 远程分配器心跳从 500ms 降至 5ms、GLU kernel 模板化支持 f16/f32
- Vulkan — BF16 Flash Attention、FWHT Intel shmem、NVIDIA cooperative matrix decode
- WebGPU — FlashAttention 重构 + MMVQ 路径
- SYCL — 多列 MMVQ、Flash-attention Q4_1/Q5_0/Q5_1、虚拟内存池
- OpenCL — Q5_0/Q5_1 支持、GATED_DELTA_NET、flat gemv 大 batch 优化
- Hexagon — 通用算子融合框架(RMS_NORM+MUL)、Q4_1 MUL_MAT
量化与转换
- FP8 → Q8 转换 — convert 工具新增 FP8 源到 Q8_0 的转换路径
- Mistral3 NVFP4 — 模型加载时正确附加权重 scale
分词
- WPM lowercase normalizer — WordPiece 分词器支持小写归一化
- jina-embeddings-v2-base-zh — 新增 whitespace 预分词 tokenizer
废弃
llama_set_warmup— 标记为废弃(对 MoE 模型导致额外图重分配)
2025-05-25
上游同步:124 commits, GGML 0.13.0
将 vendor/llama.cpp 子模块从 1867a0c69 (gguf-v0.19.0-160) 更新至 328874d05 (b9310-20)。
关键变更:
- 统一入口 —
app/llama.cpp提供llama可执行文件,通过子命令分发(serve/cli/bench/quantize/...) - GGML 0.13.0 — 版本从 0.12.0 升级
- GGUF 新初始化 API —
gguf_init_from_callback()和gguf_init_from_buffer()支持网络流、加密存储、内存缓冲区 - HybridDNA 分词器 — Carbon-3B 模型的混合 BPE + DNA k-mer 分词
- NVFP4 量化 — NVIDIA 特定 4-bit 浮点量化格式
- 后端采样 — Top-K 可在 GPU 上执行,优化 MTP 推测解码的 D2H 传输
- CUDA fwht — 快速 Walsh-Hadamard 变换
- 量化 LUT 并行化 — 启动时查找表初始化并行执行
- FFN MUL_MAT 标记 —
ffn_latent张量正确标记为 MUL_MAT 操作
2025-05-18
今日摘要
初始化学习笔记站点,开始 llama.cpp 源码学习之旅。
计划
- 阅读 llama.cpp README 和 CMakeLists.txt
- 理解项目整体架构
- 从源码编译 CPU 版本
困惑与突破
(记录学习过程中的困惑点和突破时刻)
笔记
(记录关键发现和心得)