LLM ENGINEERING NOTES
把复杂概念,
拆成清晰的术语。
一份持续生长的 LLM 技术词典。用简洁解释、公式与代码,连接概念和工程实践。
INDEX
全部术语
按中文标题排序
- 服务可靠性、Backpressure 与 ObservabilityServing Reliability / Backpressure / Observability / Metrics / Distributed Tracing用有界流控、幂等终止和资源所有权不变量限制慢客户端与取消竞态的影响,再用低基数指标、请求级 trace 和结构化日志定位 SLO、排队、GPU 与清理问题。
- 模型加载、Safetensors 与 Checkpoint ShardingModel Loading / Safetensors / Checkpoint Sharding / Memory Mapping用索引把参数名定位到分片文件,校验格式、完整性、shape 与 dtype,再经 CPU staging 或直接切片把每个 device/rank 所需权重放入最终布局;文件可 mmap 不等于模型已零成本 lazy load。
- 缩放点积注意力Scaled Dot-Product Attention / SDPA用缩放后的 Query-Key 点积形成位置权重,再对 Value 做加权求和;它定义 attention 数学语义,不等同于某个特定 fused kernel 或 backend。
- 投机解码Speculative Decoding / Speculative Sampling让较便宜的 draft 模型提出多个候选,再由 target 模型一次并行验证;精确采样用接受概率与拒绝校正分布保持 target 分布,同时尝试减少 target 的串行调用次数。
- 推理 Benchmark、容量模型与 ProfilerBenchmark Methodology / Memory Capacity Model / Profiler / NVTX / Goodput在先验证输出语义一致的前提下,明确 workload、计时边界、同步、warmup、统计量与内存口径,再用 profiler 解释而非替代测量,并以 SLO goodput 连接微基准和服务结果。
- 推理量化基础Quantization / Weight-only Quantization / W8A8用 scale、可选 zero point 与明确粒度把浮点权重或激活映射到低位宽表示;它可能降低存储和带宽,但只有真实低位宽 kernel 消费该表示时才可能兑现性能收益。
- 张量并行Tensor Parallelism / TP将单个算子的权重和计算切分到多个设备,让每个设备只承担同一次前向传播的一部分。
- 自回归推理、Prefill 与 DecodeAutoregressive Inference / Prefill / Decode自回归生成先用 prefill 并行处理完整输入并建立 KV Cache,再用 decode 每步消费一个已选 token、追加状态并产生下一个 token 的 logits。
- All-Reduce全归约 / AllReduce对所有 rank 的同形张量做逐元素归约,并把相同的完整结果返回给通信组中的每个 rank。
- Attention Sink 与 Streaming KV CacheAttention Sink / StreamingLLM / Sink Cache在固定容量 KV 中永久保留少量序列起始 tokens,并让其余容量滚动保存最近历史,使长时流式解码维持 sink+window attention;它改变可见上下文且可能需要 RoPE key 重旋转,不等价于完整 causal attention。
- Backend Dispatch 与 FallbackBackend Selection / Kernel Dispatch / Fallback Path根据 device、dtype、shape、layout、mask 与运行时配置,把同一高层算子语义派发到可用 backend 和具体 kernel;条件不满足时可能退回通用路径或直接报错。
- Beam Search、约束解码与 Tree/Self SpeculationBeam Search / Constrained Decoding / Grammar Decoding / Tree-based Speculation / Self-SpeculationBeam Search 在多条序列间保留高累计分候选,约束解码按状态屏蔽非法 next tokens,tree/self speculation 则先构造共享前缀候选图再由目标模型验证;三者的正确性目标与状态成本不同。
- Chunked Prefill 与 PreemptionChunked Prefill / Preemption / KV Recompute / KV Swap把长 prompt prefill 拆进多个调度轮次以控制单轮预算;容量或优先级压力下再通过重算或换出暂停请求,换取公平性与可服务性,但不消除总计算、传输和状态恢复成本。
- Continuous Batching 与核心指标Continuous Batching / Iteration-Level Scheduling / In-Flight Batching在每个 decode iteration 重新组成 active batch,让新请求进入、完成请求立即退出并复用 KV/计算槽位;它提高利用率的同时改变 queue、TTFT、TPOT、吞吐与公平性。
- CUDA Graph 与 Launch OverheadCUDA Graph / Graph Replay / Kernel Launch Overhead捕获固定依赖关系、shape 与内存地址的一组 CUDA 工作,并用一次低开销 replay 重放,主要减少 CPU launch 与框架调度成本,而不是让捕获内的 GEMM 获得同比例算力提升。
- FlashAttention 与 SDPA BackendFlashAttention / Online Softmax / SDPA Backend通过分块读取 Q/K/V 并用 online softmax 维护逐行归一化状态,减少 attention 中间矩阵的 HBM 读写;它保持 dense attention 语义,但可用性与性能取决于实际 backend 和 kernel 条件。
- GEMM、GEMV、dtype 与算术强度Matrix Multiplication / Arithmetic Intensity / Roofline Model用矩阵 shape、数据类型和每字节可复用的 FLOPs 判断 Transformer 线性层更可能受算力、显存带宽还是启动开销限制,而不是仅按算子名称猜测性能。
- GPTQ、AWQ、SmoothQuant 与 FP8 的方法边界GPTQ / AWQ / SmoothQuant / FP8GPTQ/AWQ 主要面向低比特 weight-only 的误差补偿与显著通道保护,SmoothQuant 通过等价通道缩放把 activation outlier 难度迁移到权重,FP8 则是浮点格式与 scaling/累加体系;名称不能替代具体 checkpoint、kernel 和校准配置。
- GPU 互联拓扑与通信成本GPU Topology / NVLink / NVSwitch / PCIe / InfiniBand / RDMA / NUMA把 rank placement 与实际 GPU、CPU socket、PCIe/NVLink/NVSwitch、NIC 和跨节点路径对应起来;collective payload 相同并不代表链路 hop、争用、带宽与延迟相同。
- GPU Runtime:Stream、Event、Fusion 与 torch.compileCUDA Stream / CUDA Event / Kernel Fusion / torch.compile / Caching Allocator用 stream 排列设备工作、event 建立跨 stream 依赖,再通过 fusion/编译减少中间读写与 launch;allocator 管理 storage 复用,这些机制互相关联但各自不改变模型语义。
- Kernel Backend、Triton Blocking 与 Persistent KernelKernel Backend / Triton Blocking / Persistent Kernel / CUTLASS / FlashInfer把已定义的算子语义映射为适合特定 shape、dtype、layout 与硬件的 GPU 实现;blocking 决定每个程序处理的数据块,persistent kernel 则让有限的常驻程序循环消费多个工作单元。
- KV 缓存KV Cache / Key-Value Cache在自回归推理中跨 decode step 持久保存各层历史 token 的 Key 与 Value,避免重复投影历史前缀,但新 Query 仍须读取并关注全部可见历史位置。
- KV Cache 量化KV Cache Quantization / FP8 KV Cache / Int8 KV Cache用低位宽 payload 与配套 scale/metadata 存储历史 K/V,降低容量和 decode 读取带宽;真实收益取决于量化粒度、误差、packing 与消费 kernel,而不是只把公式中的字节数替换。
- KV Offload 与 Prefill/Decode DisaggregationKV Offload / KV Swap / Prefill/Decode Disaggregation / P/D DisaggregationKV Offload 在 GPU 与 CPU/远端层级间迁移请求状态以换取 GPU 容量,P/D Disaggregation 则让 prefill 与 decode 由不同 workers 承担并交接 KV;两者把显存压力转成传输、排队与一致性成本。
- Logits、Softmax 与基础采样Logits / Temperature / Top-k Sampling / Top-p Sampling将模型最后位置的未归一化 vocabulary scores 经过稳定 softmax 与可选截断,得到下一个 token 的概率分布并进行 greedy 或随机选择。
- MHA、MQA 与 GQAMulti-Head Attention / Multi-Query Attention / Grouped-Query Attention三种 Query head 与 Key/Value head 参数共享方式;它们保持多 Query heads,但用不同的 KV head 数权衡模型质量、KV Cache 容量与 decode 读取带宽。
- MoE Router、Expert Parallel 与 All-to-AllMixture of Experts / MoE / Expert Parallelism / All-to-All用 router 为每个 token 选择少量 experts,再把 token 派发到拥有这些 experts 的 ranks、执行局部 expert 计算并组合回原顺序;它减少每 token 激活的参数量,但引入路由不均衡和两次数据交换。
- Multi-head Latent AttentionMLA / Multi-head Latent Attention将可压缩的内容 Key/Value 路径降到低维 latent,并把位置编码保留在解耦路径;decode 通过矩阵吸收直接对 latent 打分与加权,从而减少每 token 缓存而不把 MLA 简化成更少 KV heads。
- Multi-LoRA Serving 与 Adapter 隔离Multi-LoRA Serving / LoRA Serving / Adapter Batching / Multi-Tenant Adapters在共享 base model 上按请求选择低秩 adapter,并在同一 iteration 中分组或用专用 kernel 应用不同增量;它降低每租户完整权重复制,但 adapter identity 必须进入 batch、cache、加载和隔离协议。
- Multi-Token PredictionMTP / Multi-Token Prediction在训练中让辅助模块预测多个未来 token;推理时这些模块可提出候选,但是否一次提交多个 token 仍取决于独立的 target verification 与接受协议。
- PagedAttentionPaged Attention / 分页注意力用每条序列的 block table 将连续逻辑 KV 位置映射到可非连续、可共享的物理 KV blocks,使服务端按块分配缓存并控制碎片,而不改变 attention 数学语义。
- Prefix CachePrefix Caching / Automatic Prefix Caching / KV Cache Reuse在不同请求之间复用相同 token prefix 已计算的 KV blocks;安全命中依赖 token ids、模型状态、位置语义与 block 身份,而不是原始字符串相似。
- Rank、Process Group 与集合通信Collective Communication / All-Gather / Reduce-Scatter / Process Group在一个明确的 process group 内,让各 rank 按同一 collective 顺序复制、拼接、归约或切分 tensor;语义决定输出 shape 与所有权,Ring/Tree/NCCL/Gloo 则是实现层。
- Request Lifecycle、Streaming、Cancellation 与 TimeoutRequest Lifecycle / Streaming Detokenization / Cancellation / Timeout / Backpressure把一次生成请求从解析、tokenization、排队与 admission,推进到 prefill/decode/流式输出,并让完成、停止、取消、超时和错误都经过可幂等的资源回收与终态上报。
- RoPE、Position Interpolation、NTK-aware 与 YaRNRotary Position Embedding / RoPE / Position Interpolation / Dynamic NTK Scaling / NTK-aware Scaling / YaRN / RoPE ScalingRoPE 按位置旋转 Query/Key 的二维通道对;PI、NTK-aware 与 YaRN 用不同频率计划扩展位置范围,但必须与训练分布、prefill/decode 的 KV 状态和 backend 配置一致。
- Scheduler Budget 与 Admission ControlScheduler Budget / Admission Control / Token Budget / KV Block Reservation在每个 iteration 的计算/token 预算与全局 KV block 容量内决定哪些请求进入、prefill 多少、哪些 decode 前进;保守 reservation 降低 preemption,乐观 overcommit 提高利用率但必须处理未来增长。
- Sequence、Context、Pipeline 与 Expert ParallelSequence Parallelism / Context Parallelism / Pipeline Parallelism / Expert Parallelism分别沿 token activation、attention context、层深度与 expert 集合划分工作;四者的 tensor 所有权、通信位置和负载不变量不同,不能用“多卡并行”笼统替代。
- Sliding Window Attention 与截断 KV CacheSliding Window Attention / Local Attention / Windowed KV Cache让位置 i 只关注最近 W 个可见 tokens,并在模型语义允许时丢弃更早 K/V,使单层 decode 读取量与缓存容量由上下文长度 T 改为窗口上限 W;它不是 RoPE scaling 或分页管理。
- Tokenizer、Chat Template 与 Special TokensTokenization / Chat Template / Special Tokens将原始消息按确定的模板变成 token id 序列;模型长度、停止条件、KV/Prefix Cache 身份和计费都以这条序列而非原始字符串为边界。
- Transformer Block:RMSNorm、SwiGLU 与词表投影Transformer Block / RMSNorm / SwiGLU / Embedding / Vocabulary Projection把 token embedding 变成 hidden states,并在每层用归一化、attention、门控 MLP 与残差更新,最后投影到 vocabulary logits;这些组件定义模型数学,不等同某个 fused kernel。