vllm 优化之 PagedAttention 源码解读 【2024-12-06】总结了 vllm 的 pagedattention 内核设计和动态分配、管理 kv cache 内存的模块流程,难点主要有三个:一个是 block_tables 的创建和管理,以及 gpu 设备在指定模型上的可分配的内存 blocks 的计算,最后就是 pagedattention 内核代码中相关线程索引和偏移的计算怎么改成基于 block_tables 的形式,这都需要反复阅读理解代码才能得到清晰的理解。
vllm 优化之 cuda_graph 详解 【2024-12-05】cuda graph 解决了可能存在的所有 CPU 开销的来源:如用户编写的逻辑、PyTorch 调度逻辑、内存分配开销以及 GPU 驱动/内核开销(静态图优势)。
LLaVA 系列模型结构详解 【2024-11-28】多模态大模型 MLLM 架构通常都是 LLM + 视觉编码器 + 映射层的组合。本文详细总结了 LLaVA 系列多模态模型的模型结构,以及视觉编码器如何支持高分辨率输入图像。
温度系数与 top-p 采样策略详解 【2024-11-24】本文先详细介绍了 LLM 采样时 Temperature 温度系数的作用,然后简单介绍了常见采样策略的基本原理,最后详细描述了 top-p 采样算法的原理和实现步骤,并给出代码实现,以及针对每行代码做出了极为详细的解释。
masked-attention 算法详解 【2024-11-10】Casual Mask 机制的本质是为了构建下三角的注意力分数矩阵,从而实现因果模型只关注当前 token 与之前 token 的注意力关系,而不理会它与后续 token 的关系,即只"看"当前及前面的 tokens。