推理显存计算
发表于|更新于|LLM
|浏览量:
推理显存计算
推理所需显存 = 模型参数部分 + 激活参数部分 + KVCache 部分
- 模型参数部分 = 模型参数量 × 精度系数
- 激活参数部分 = 激活参数量 × 精度系数
- KVCache 部分 = 并发数 ×(输入 Token 数 + 输出 Token 数)× 2(K 和 V)× 层数 × hidden_size × 精度系数
参考资料:模型显存计算逻辑
文章作者: xhj
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
相关推荐
2025-11-19
大模型推理中的动态图与静态图解析
在大模型推理领域中,图模式(graph mode)中的动态图和静态图是什么意思? 好的,这是一个在大模型推理和深度学习框架中非常核心的概念。我会用尽可能清晰的方式解释动态图和静态图的区别、原理以及它们在大模型推理中的权衡。 核心思想:何时构建计算图?想象一下,你的模型(比如一个Transformer)是由许多层(如线性层、注意力机制、激活函数等)组成的。这些层之间的数据流动和计算关系可以表示为一个计算图。 动态图 和 静态图 最根本的区别就在于这个计算图的构建时机和执行方式。 1. 动态图定义:边定义,边执行。 在动态图模式下,计算图是在代码运行时动态生成的。你每执行一行定义操作的代码(例如 z = x + y),这个操作就立即被执行,并且计算图也会实时地扩展一个节点。 类比:这就像Python的交互式解释器。你输入一行命令,它立刻给你返回结果。 技术特点 直观易懂:代码的执行流程和标准的Python程序完全一致,便于调试。你可以使用 print 语句、断点等所有熟悉的调试工具来检查任何一个中间变量的值。 灵活性高:因为图是动态的,所以你可以轻松使用Python的控制流,如 ...
2025-08-14
qwen3_vl_video_cudagraph_implementation
Qwen3-VL 视频模态 Full CUDA Graph 支持实现基于 PR #35963(已合入 main),在其图像 CUDA Graph 支持的基础上,扩展实现视频模态的 Full CUDA Graph 支持。 修改文件总览 文件 改动类型 说明 vllm/v1/worker/gpu/mm/encoder_cudagraph_defs.py 数据结构扩展 新增多模态配置字段和状态字段 vllm/v1/worker/gpu/mm/encoder_cudagraph.py 核心逻辑扩展 per-modality budget 管理、自动模态检测、时序帧约束检查 vllm/model_executor/models/interfaces.py 协议扩展 新增 get_encoder_cudagraph_num_seqs 方法 vllm/model_executor/models/qwen3_vl.py 模型实现 为所有协议方法添加视频支持 tests/v1/cudagraph/test_encoder_cudagraph.py 测试更新 适配新的多模...
2025-10-07
vLLM 多模态推理|ViT 性能优化
vLLM 多模态推理|ViT 性能优化一、引言在多模态处理的 Pipeline 中,ViT(Vision Transformer)和 DiT(Diffusion Transformer)是最常见的处理模块。其中,ViT 在多模态模型中的角色类似于自然语言建模中的 Tokenizer 组件,负责对图像进行视觉特征编码,产出图像的特征序列,只不过 ViT 的编码过程本身也采用了 Transformer 模型结构。 目前,以 vLLM 和 SGLang 为首的开源推理框架针对纯语言模型的特性和优化已愈发完善,而随着多模态模型的快速发展,涌现出了诸如 VL、Omni、TTS 以及 Diffusion 等各式各样的多模态模型,这些开源推理框架针对多模态理解和生成的推理技术还有待完善。 本文将以 vLLM 为例,分享我在工作中学习并积累到的一些针对 ViT 模块的性能优化手段。 二、多模态推理概述2.1 多模态模型的分类目前,根据模型输入和输出所支持的模态,多模态模型可以分为: 多模态理解模型:输入为“文本/图像/视频/音频”,输出为“文本”,模型的任务是理解...
2025-08-05
Qwen2.5-VL_1
Qwen2.5-VL 差异对比Qwen2_5_VLForConditionalGeneration__init__()123456789101112131415161718192021222324252627282930# vllmself.use_data_parallel = multimodal_config.mm_encoder_tp_mode == "data"if multimodal_config.get_limit_per_prompt( "image") or multimodal_config.get_limit_per_prompt("video"): attn_backend_override = ( multimodal_config.mm_encoder_attn_backend if multimodal_config is not None else None ) self.visual = Qwen2_5_VisionTr...
2025-11-13
vLLM5.md
一、引言目前,在大模型推理领域中,Guided Decoding 技术广泛用于生成一些特定格式的输出,如:SQL、JSON 等。本文将基于 vLLM 以及 Outlines 后端,深入解析 Guided Decoding 背后的技术原理。 二、什么是 Guided Decoding?一般来说,LLM 的输出通常是一段符合人类表达习惯的文本序列,这让我们可以利用 LLM 来回答问题或是创作内容。然而,当我们需要 LLM 的输出符合特定的格式(如:JSON、SQL、正则表达式等)时——例如希望 LLM 根据我们的需求生成查询数据库的 SQL 语句,通过微调的方法通常很难达到我们预期的效果。这时,就需要用到 Guided Decoding 技术,它可以通过影响模型输出层的 Logits 分布(施加 Mask 过滤不满足要求的 Token)来达到规范模型输出格式的效果。 🌰 举个例子: 我们可以向 LLM 输入一个 Prompt 以及对应的格式数据: 12345678910111213141516171819# Guided decoding by JSON using Pydanti...
2025-10-01
AI训练&推理常用依赖库
AI 训练 & 推理常用依赖库PyTorchtorch…… torchaudiotorchaudio 是 PyTorch 官方用于处理音频数据和进行音频相关深度学习任务的工具包,提供了音频数据的加载和保存、频谱分析、预训练的音频模型(支持音频分类、语音识别等任务)、与 PyTorch 的数据集和数据加载器集成等功能。 torchaudio.load() 是 torchaudio 库中的一个函数,用于加载音频文件并返回音频数据及其采样率。它可以方便地将音频文件加载到 PyTorch 的张量中,以便进行后续的音频处理和深度学习任务。 具体功能包括: 读取音频文件:支持多种音频格式(如 WAV、MP3 等); 返回数据和采样率:返回两个值:音频信号的张量表示(通常是浮点数)和音频的采样率(Hz),方便后续处理和分析。 torchaudio.functional.resample(y, orig_freq=xxx, new_freq=xxx) 是用于对音频信号进行重采样的函数。该函数适用于需要调整音频采样率的场景,如匹配不同音频源的采样频率或准备音频数据以供模型训练。 具体功...