Skip to content

学习日志

进度总览

模块状态笔记
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 新初始化 APIgguf_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 版本

困惑与突破

(记录学习过程中的困惑点和突破时刻)

笔记

(记录关键发现和心得)