From 6e7de6d86bf6fb7dcf21749436b871b82aa66c2e Mon Sep 17 00:00:00 2001 From: kangxii <842755173@qq.com> Date: Mon, 1 Dec 2025 16:12:47 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20add=20submission=20for=20team=20?= =?UTF-8?q?=E7=89=9B=E9=A9=AC=E6=8C=A3=E5=8A=B3=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 "2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" diff --git "a/2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" "b/2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" new file mode 100644 index 00000000..0be4e186 --- /dev/null +++ "b/2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" @@ -0,0 +1,170 @@ +多模态推理优化说明 +一、背景与目标 + +本仓库主要针对 MindNLP + MindSpore 下的多模态大模型(以 Qwen2-VL / Janus Pro 为主)进行推理侧优化,目标是: + +在 不改变模型行为与精度 的前提下, + +降低端到端推理延迟、提升吞吐, + +并尽量 降低显存占用、清理冗余实现,为后续维护和扩展打基础。 + +所有改动集中在: + +mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py + +mindnlp/transformers/models/llama/modeling_llama.py + +mindnlp/transformers/generation/utils.py + +llm/inference/janus_pro/janus/models/siglip_vit.py 及相关预处理逻辑等文件中。 + +二、整体优化思路概览 + +从整体上看,patch 主要围绕以下几个方向展开: + +注意力核心算子加速(Flash Attention) + +在 mindnlp/core/nn/functional.py 中封装 FlashAttention 调用,统一在 LLaMA / Qwen2-VL / Vision 模块中复用。 + +在满足条件时优先走 NPU 侧 flash_attention_score / prompt_flash_attention 等内核,替代原来的 matmul + softmax 实现。 + +针对 GQA(Grouped Query Attention) 做了专门适配,确保 num_heads 与 num_key_value_heads 不一致时仍可走加速路径。 + +RoPE / MRoPE(旋转位置编码)优化 + +将 RoPE 的实现统一收敛到 mops.rotary_position_embedding,减少 Python 端的张量算子堆叠。 + +区分语言侧、视觉侧、多模态 MRoPE 的用法,避免重复计算 cos/sin,尽可能在 batch 级别重用。 + +重构多模态 position_ids 与 mrope_position_deltas 的构造过程,使用 mint.reshape / mint.unsqueeze / 向量化操作替代复杂的嵌套 flatten 与 for 循环。 + +KV Cache 与生成流程优化 + +清理 generation/utils.py 中与 StaticCache 相关的逻辑,避免强制将 cache_implementation 置为 "static",保持与当前 MindNLP 版本的兼容。 + +在 prefill / decode 阶段仅构造最小必要的 attention_mask 和 cache_position,减少重复大张量创建。 + +LLaMA / Qwen2-VL 内部对 past_key_values 的使用更严格区分 “长度信息” 和 “真实缓存”,尽量减少无谓 concat/copy。 + +多模态预处理与视觉管线优化 + +重构 Janus Pro VLM 中文本 + 图像 embeddings 的拼接逻辑, +使用一次 nonzero() 找到 image placeholder 的连续区间,然后做 left | image_embeds | right 的单次拼接,替代多个切片与 scatter。 + +为视觉编码增加简单的 缓存策略(LRU 风格),重复图像在 batch 内不重复前向。 + +在 SigLIP ViT 以及 Processor 中,将图像网格、patch index、image_token_mask 等逻辑前移到预处理阶段,并使用 @mindspore.jit / mint 向量化算子替代 Python for 循环。 + +内存与 dtype 管理 + +推理主路径统一使用 float16 / bfloat16,只有在 RMSNorm 等归一化/统计阶段短暂提升到 float32,然后再 cast 回来。 + +在 repeat_kv 等高频函数中使用 mindspore.mint.repeat_interleave 等原生算子,代替 unsqueeze + broadcast_to + reshape 的组合,既简化代码也减少潜在中间张量。 + +统一使用 bool 类型的 mask,与底层内核预期保持一致,避免隐式 cast 与额外算子。 + +工程清理与可维护性 + +删除了大量 print / time.time() 形式的调试代码,不污染日志也不影响性能。 + +使用 F.rms_norm 替换手写 RMSNorm,减少自实现算子带来的维护成本。 + +LLaMA、Qwen2-VL、Janus Pro 之间的接口风格进一步统一,以方便后续 pipeline 集成。 + +三、关键改动细节 +1. 注意力加速(FlashAttention) + +涉及文件: + +mindnlp/core/nn/functional.py + +mindnlp/transformers/models/llama/modeling_llama.py + +mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py + +Qwen2-VL Vision / Janus Pro Vision 模块 + +主要思路: + +在 functional.py 中封装统一的 FlashAttention 调用入口: + +当 is_causal=True 时,利用内核自带的因果 mask(sparse_mode=3),避免显式构造大尺寸 S × S 矩阵。 + +当启用 GQA 且满足 NPU 内核约束时,调用 mops.prompt_flash_attention,正确处理 num_heads 与 num_key_value_heads 不匹配的情况。 + +对 LLaMA / Qwen2-VL 的自注意力层: + +保留原始 SDPA 分支作为 回退路径,在静态图限制或 shape 不满足 Flash 内核需求时自动退回。 + +去掉对 attn_weights 过度的 dtype upcast,再 cast 回来的逻辑,减少无意义的 cast。 + +视觉侧 VisionAttention: + +最终版本中使用 nn.functional.flash_attention,显式设置 dropout_p=0.0,符合推理场景。 + +对于视觉序列的块对角 mask,尽可能在外部预生成 / 简化,而不是在高频路径中重复构造。 + +2. RoPE / MRoPE 与位置编码 + +语言侧 RoPE: + +将 (q * cos + rotate_half(q) * sin) 的 Python 表达式改为 mops.rotary_position_embedding(q, cos, sin)。 + +保证 LLaMA 与 Qwen2-VL 在 RoPE 行为上一致,且减少算子数目和 dtype 反复转换。 + +视觉侧 RoPE: + +apply_rotary_pos_emb_vision 改为接受预先计算好的 (cos, sin),由 Vision 模型统一计算并下发。 + +内部对 dtype 做一次性处理:frequencies 强制为 float32,计算后再 cast 回原始 dtype,避免在循环中多次 cast。 + +多模态 MRoPE: + +重写 Qwen2-VL 中多模态位置编码逻辑: + +使用 mint.reshape、mint.flatten 等 vectorized 操作生成三维网格 index(t/h/w); + +合并到统一的 position_ids 和 mrope_position_deltas 中。 + +对每条样本记录 rope delta,使得语言 token 与视觉 token 的相对位置保持一致,长文本+多图场景下更稳定。 + +3. KV Cache 与生成流程 + +涉及文件: + +mindnlp/transformers/generation/utils.py + +mindnlp/transformers/models/llama/modeling_llama.py + +mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py + +主要改动: + +不再强制 generation_config.cache_implementation = "static",避免与当前框架版本的 StaticCache 行为冲突。 + +在 generate 流程中: + +更精细地管理 past_key_values 的生命周期与 shape,只在必要时扩展缓存。 + +尽量在 batch 维度重用 attention_mask 与 cache_position,减少循环内部的大张量创建。 + +在模型 forward 中: + +利用 past_seen_tokens 等预计算值,避免多次从 cache 中推导长度。 + +K/V 拼接尽量使用 view / narrow 类算子,降低内存拷贝量。 + +4. 多模态预处理与视觉管线 + +Janus Pro VLM: + +将原来分步的 inputs_embeds 替换逻辑整理为三段:left | image_embeds | right 一次 concat,形状逻辑更清晰,算子数量更少。 + +对重复图像引入简单的缓存机制(按 image 标识缓存视觉 embeddings),避免在同 batch 或多轮对话中重复前向。 + +SigLIP ViT 与 Processor: + +将 patch 位置、grid index、image token 位置等从模型内部迁移到 Processor/工具函数中,减少图像前向阶段 Python 端参与。 + +对 image_token_mask、image_seq_mask 提供 @mindspore.jit 的向量化实现,彻底去掉逐样本 / 逐 token 的 Python for 循环。 \ No newline at end of file From de3dcdbb4d4cc587dc2e8eae4654305edf96fc0d Mon Sep 17 00:00:00 2001 From: kangxii <842755173@qq.com> Date: Mon, 1 Dec 2025 18:04:01 +0800 Subject: [PATCH 2/4] refactor: move team folder to MultiModal --- .../README.md" | 77 ++++++++ .../README.md" | 170 ------------------ 2 files changed, 77 insertions(+), 170 deletions(-) create mode 100644 "2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" delete mode 100644 "2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" diff --git "a/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" "b/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" new file mode 100644 index 00000000..cb284dd3 --- /dev/null +++ "b/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" @@ -0,0 +1,77 @@ +# 队伍:牛马挣劳务 + +## 一、Qwen2-VL / Janus Pro 多模态推理优化说明 + +本仓库主要针对 **MindNLP + MindSpore** 下的多模态大模型(以 **Qwen2-VL / Janus Pro** 为主)进行推理侧优化,目标是: + +- 在 **不改变模型行为与精度** 的前提下, +- **降低端到端推理延迟**、**提升吞吐**, +- 并尽量 **降低显存占用、清理冗余实现**,为后续维护和扩展打基础。 + +所有改动集中在: + +- `mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py` +- `mindnlp/transformers/models/llama/modeling_llama.py` +- `llm/inference/janus_pro/janus/models/*` 及相关预处理逻辑 + +等文件中。 + +--- + +## 二、整体优化思路概览 + +主要针对 **Prefill 时延、Decode 时延、峰值显存占用** 三方面的优化展开: + +1. **Prefill 时延** + + Prefill 时延主要是输入到产生第一个 token 的时间,可以看作「预处理 + 图像前向 + 文本编码」整体耗时。 + + deepseek-ai/Janus-Pro-7B: + - 在deepseek-ai/Janus-Pro-7B当中,Prefill时延瓶颈主要来源于预处理部分。详细参考llm/inference/janus_pro/janus/models/processing_vlm.py。 + 本人采用了一种一种笨笨的办法,通过[JIT装饰器](https://www.mindspore.cn/docs/zh-CN/r2.6.0/api_python/mindspore/mindspore.jit.html)加速操作。JIT装饰器主要作用是可以针对相同shape下的多个算子一起下发,节约时间。一定要是相同shape,否则将会重新编译,编译时长可能大于JIT能节约的时间。通过填充无用数据构造成相同shape后,再将无用数据剔除,还原原本shape的操作,可以将编译时间丢到warm-up里,后面正式进行推理时则节约了时间。具体收益不记得了,但是收益较大。 + + Qwen/Qwen2-VL-2B-Instruct: + - 在Qwen/Qwen2-VL-2B-Instruct当中,Prefill时延瓶颈主要来源于视觉部分。详细参考mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py。 + 通过Profiler工具可以观察到,有一个Conv3D的算子相当的耗时,将nn.Conv3d替换为mindspore.mint.nn.Conv3d能大大减少耗时,收益较大。 + - 另外一部分瓶颈来源于**VisionAttention**的计算。通过**flash_attention_score**融合算子可以大大减少Prefill时延,收益较大。 + ```python + output = mops.flash_attention_score(query, key, value, head_num=head_num, input_layout='BSND', + real_shift=None, padding_mask=None, attn_mask=attn_mask, + scalar_value=scale_factor, keep_prob=1 - dropout_p, pre_tokens=2147483647, + next_tokens=2147483647, inner_precise=0, + drop_mask=None, prefix=None, actual_seq_qlen=None, actual_seq_kvlen=None, + sparse_mode=sparse_mode) + ``` + - 对于VisionAttention的attn_mask加一个判断,如果要构造一个没有掩码的mask,则直接将mask设为None。收益较小。 + +2. **Decode 时延** + + Decode 时延主要指生成阶段「每步新增一个 token」的平均耗时,瓶颈通常在注意力计算、KV Cache 管理及 mask 构造。 + + deepseek-ai/Janus-Pro-7B: + - 在deepseek-ai/Janus-Pro-7B当中,Decode时延瓶颈主要来源于apply_rotary_pos_emb。但可惜在这里用rotary_position_embedding融合算子会导致mismatch,所以deepseek-ai/Janus-Pro-7B的decode优化较少。详细参考mindnlp/transformers/models/llama/modeling_llama.py。 + - 针对apply_rotary_pos_emb,将q和k一起进行rotary_pos_emb有一丢丢收益,不大。 + ```python + qk = mindspore.mint.cat((q, k), dim=0) + qk_embed = mindspore.mint.mul(qk, cos) + mindspore.mint.mul(rotate_half(qk), sin) + q_embed, k_embed = mindspore.mint.split(qk_embed, 1, 0) + return q_embed, k_embed + ``` + - 将repeat_kv通过repeat_interleave融合算子替代。 + - 有很多可以使用mint替换ops,有一些有收益。很难估计,但收益都比较小,积少成多。 + + Qwen/Qwen2-VL-2B-Instruct: + - 在Qwen/Qwen2-VL-2B-Instruct当中,Decode时延瓶颈主要来源于Qwen2RMSNorm、apply_rotary_pos_emb_vision等部分。详细参考mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py。 + - 用融合算子rotary_position_embedding替代原有rotary_pos_emb逻辑。 + - 将repeat_kv通过repeat_interleave融合算子替代。 + - 将apply_mrope_mask操作从Qwen2VLAttention.forward丢到Qwen2VLModel.forward进行,避免做N层重复运算。 + - 在Qwen2VLModel里增加对Prefill和decode阶段的判断,避免在decode阶段进行_prepare_4d_causal_attention_mask_with_cache_position操作。 + - 有很多可以使用mint替换ops,有一些有收益。很难估计,但收益都比较小,积少成多。 +3. **峰值显存占用** + + 峰值显存主要由 KV Cache、注意力中间结果以及多模态 embedding 组成。 + 为降低峰值显存,本次优化仅在Qwen/Qwen2-VL-2B-Instruct优化成功: + - **将VisionAttention当中的softmax去掉提升精度**:通过**flash_attention_score**融合算子也可以。 +## 三、总结 +改动较多,主要列举了收益较大的改动,其余改动见文件所示。未一一列举请多多包涵。 + diff --git "a/2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" "b/2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" deleted file mode 100644 index 0be4e186..00000000 --- "a/2025-Ascend-Innovation-Contest/S1/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" +++ /dev/null @@ -1,170 +0,0 @@ -多模态推理优化说明 -一、背景与目标 - -本仓库主要针对 MindNLP + MindSpore 下的多模态大模型(以 Qwen2-VL / Janus Pro 为主)进行推理侧优化,目标是: - -在 不改变模型行为与精度 的前提下, - -降低端到端推理延迟、提升吞吐, - -并尽量 降低显存占用、清理冗余实现,为后续维护和扩展打基础。 - -所有改动集中在: - -mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py - -mindnlp/transformers/models/llama/modeling_llama.py - -mindnlp/transformers/generation/utils.py - -llm/inference/janus_pro/janus/models/siglip_vit.py 及相关预处理逻辑等文件中。 - -二、整体优化思路概览 - -从整体上看,patch 主要围绕以下几个方向展开: - -注意力核心算子加速(Flash Attention) - -在 mindnlp/core/nn/functional.py 中封装 FlashAttention 调用,统一在 LLaMA / Qwen2-VL / Vision 模块中复用。 - -在满足条件时优先走 NPU 侧 flash_attention_score / prompt_flash_attention 等内核,替代原来的 matmul + softmax 实现。 - -针对 GQA(Grouped Query Attention) 做了专门适配,确保 num_heads 与 num_key_value_heads 不一致时仍可走加速路径。 - -RoPE / MRoPE(旋转位置编码)优化 - -将 RoPE 的实现统一收敛到 mops.rotary_position_embedding,减少 Python 端的张量算子堆叠。 - -区分语言侧、视觉侧、多模态 MRoPE 的用法,避免重复计算 cos/sin,尽可能在 batch 级别重用。 - -重构多模态 position_ids 与 mrope_position_deltas 的构造过程,使用 mint.reshape / mint.unsqueeze / 向量化操作替代复杂的嵌套 flatten 与 for 循环。 - -KV Cache 与生成流程优化 - -清理 generation/utils.py 中与 StaticCache 相关的逻辑,避免强制将 cache_implementation 置为 "static",保持与当前 MindNLP 版本的兼容。 - -在 prefill / decode 阶段仅构造最小必要的 attention_mask 和 cache_position,减少重复大张量创建。 - -LLaMA / Qwen2-VL 内部对 past_key_values 的使用更严格区分 “长度信息” 和 “真实缓存”,尽量减少无谓 concat/copy。 - -多模态预处理与视觉管线优化 - -重构 Janus Pro VLM 中文本 + 图像 embeddings 的拼接逻辑, -使用一次 nonzero() 找到 image placeholder 的连续区间,然后做 left | image_embeds | right 的单次拼接,替代多个切片与 scatter。 - -为视觉编码增加简单的 缓存策略(LRU 风格),重复图像在 batch 内不重复前向。 - -在 SigLIP ViT 以及 Processor 中,将图像网格、patch index、image_token_mask 等逻辑前移到预处理阶段,并使用 @mindspore.jit / mint 向量化算子替代 Python for 循环。 - -内存与 dtype 管理 - -推理主路径统一使用 float16 / bfloat16,只有在 RMSNorm 等归一化/统计阶段短暂提升到 float32,然后再 cast 回来。 - -在 repeat_kv 等高频函数中使用 mindspore.mint.repeat_interleave 等原生算子,代替 unsqueeze + broadcast_to + reshape 的组合,既简化代码也减少潜在中间张量。 - -统一使用 bool 类型的 mask,与底层内核预期保持一致,避免隐式 cast 与额外算子。 - -工程清理与可维护性 - -删除了大量 print / time.time() 形式的调试代码,不污染日志也不影响性能。 - -使用 F.rms_norm 替换手写 RMSNorm,减少自实现算子带来的维护成本。 - -LLaMA、Qwen2-VL、Janus Pro 之间的接口风格进一步统一,以方便后续 pipeline 集成。 - -三、关键改动细节 -1. 注意力加速(FlashAttention) - -涉及文件: - -mindnlp/core/nn/functional.py - -mindnlp/transformers/models/llama/modeling_llama.py - -mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py - -Qwen2-VL Vision / Janus Pro Vision 模块 - -主要思路: - -在 functional.py 中封装统一的 FlashAttention 调用入口: - -当 is_causal=True 时,利用内核自带的因果 mask(sparse_mode=3),避免显式构造大尺寸 S × S 矩阵。 - -当启用 GQA 且满足 NPU 内核约束时,调用 mops.prompt_flash_attention,正确处理 num_heads 与 num_key_value_heads 不匹配的情况。 - -对 LLaMA / Qwen2-VL 的自注意力层: - -保留原始 SDPA 分支作为 回退路径,在静态图限制或 shape 不满足 Flash 内核需求时自动退回。 - -去掉对 attn_weights 过度的 dtype upcast,再 cast 回来的逻辑,减少无意义的 cast。 - -视觉侧 VisionAttention: - -最终版本中使用 nn.functional.flash_attention,显式设置 dropout_p=0.0,符合推理场景。 - -对于视觉序列的块对角 mask,尽可能在外部预生成 / 简化,而不是在高频路径中重复构造。 - -2. RoPE / MRoPE 与位置编码 - -语言侧 RoPE: - -将 (q * cos + rotate_half(q) * sin) 的 Python 表达式改为 mops.rotary_position_embedding(q, cos, sin)。 - -保证 LLaMA 与 Qwen2-VL 在 RoPE 行为上一致,且减少算子数目和 dtype 反复转换。 - -视觉侧 RoPE: - -apply_rotary_pos_emb_vision 改为接受预先计算好的 (cos, sin),由 Vision 模型统一计算并下发。 - -内部对 dtype 做一次性处理:frequencies 强制为 float32,计算后再 cast 回原始 dtype,避免在循环中多次 cast。 - -多模态 MRoPE: - -重写 Qwen2-VL 中多模态位置编码逻辑: - -使用 mint.reshape、mint.flatten 等 vectorized 操作生成三维网格 index(t/h/w); - -合并到统一的 position_ids 和 mrope_position_deltas 中。 - -对每条样本记录 rope delta,使得语言 token 与视觉 token 的相对位置保持一致,长文本+多图场景下更稳定。 - -3. KV Cache 与生成流程 - -涉及文件: - -mindnlp/transformers/generation/utils.py - -mindnlp/transformers/models/llama/modeling_llama.py - -mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py - -主要改动: - -不再强制 generation_config.cache_implementation = "static",避免与当前框架版本的 StaticCache 行为冲突。 - -在 generate 流程中: - -更精细地管理 past_key_values 的生命周期与 shape,只在必要时扩展缓存。 - -尽量在 batch 维度重用 attention_mask 与 cache_position,减少循环内部的大张量创建。 - -在模型 forward 中: - -利用 past_seen_tokens 等预计算值,避免多次从 cache 中推导长度。 - -K/V 拼接尽量使用 view / narrow 类算子,降低内存拷贝量。 - -4. 多模态预处理与视觉管线 - -Janus Pro VLM: - -将原来分步的 inputs_embeds 替换逻辑整理为三段:left | image_embeds | right 一次 concat,形状逻辑更清晰,算子数量更少。 - -对重复图像引入简单的缓存机制(按 image 标识缓存视觉 embeddings),避免在同 batch 或多轮对话中重复前向。 - -SigLIP ViT 与 Processor: - -将 patch 位置、grid index、image token 位置等从模型内部迁移到 Processor/工具函数中,减少图像前向阶段 Python 端参与。 - -对 image_token_mask、image_seq_mask 提供 @mindspore.jit 的向量化实现,彻底去掉逐样本 / 逐 token 的 Python for 循环。 \ No newline at end of file From 5ad644aadb6d42bf52c37afa52cc280bef931c54 Mon Sep 17 00:00:00 2001 From: Hongzunhei <100507349+Hongzunhei@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:07:35 +0800 Subject: [PATCH 3/4] Add files via upload --- .../patch.zip" | Bin 0 -> 143477 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/patch.zip" diff --git "a/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/patch.zip" "b/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/patch.zip" new file mode 100644 index 0000000000000000000000000000000000000000..f96dde145d7f44d6b3d8e7b7475ce93383decb6d GIT binary patch literal 143477 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

g5NPAkeH7mlp7#J*7RDmT$=v@PCIg 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�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%0AbQ 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 Date: Thu, 4 Dec 2025 13:44:33 +0800 Subject: [PATCH 4/4] Optimize performance and memory usage in models Optimized prefill and decode latencies, reduced peak memory usage, and improved performance metrics for Qwen/Qwen2-VL-2B-Instruct and deepseek-ai/Janus-Pro-7B models. --- .../README.md" | 155 +++++++++++++++--- 1 file changed, 133 insertions(+), 22 deletions(-) diff --git "a/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" "b/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" index cb284dd3..d12b8192 100644 --- "a/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" +++ "b/2025-Ascend-Innovation-Contest/S1/MultiModal/\347\211\233\351\251\254\346\214\243\345\212\263\345\212\241/README.md" @@ -22,52 +22,147 @@ 主要针对 **Prefill 时延、Decode 时延、峰值显存占用** 三方面的优化展开: -1. **Prefill 时延** +### 1. **Prefill 时延** Prefill 时延主要是输入到产生第一个 token 的时间,可以看作「预处理 + 图像前向 + 文本编码」整体耗时。 - deepseek-ai/Janus-Pro-7B: +#### deepseek-ai/Janus-Pro-7B: - 在deepseek-ai/Janus-Pro-7B当中,Prefill时延瓶颈主要来源于预处理部分。详细参考llm/inference/janus_pro/janus/models/processing_vlm.py。 本人采用了一种一种笨笨的办法,通过[JIT装饰器](https://www.mindspore.cn/docs/zh-CN/r2.6.0/api_python/mindspore/mindspore.jit.html)加速操作。JIT装饰器主要作用是可以针对相同shape下的多个算子一起下发,节约时间。一定要是相同shape,否则将会重新编译,编译时长可能大于JIT能节约的时间。通过填充无用数据构造成相同shape后,再将无用数据剔除,还原原本shape的操作,可以将编译时间丢到warm-up里,后面正式进行推理时则节约了时间。具体收益不记得了,但是收益较大。 - Qwen/Qwen2-VL-2B-Instruct: +#### Qwen/Qwen2-VL-2B-Instruct: - 在Qwen/Qwen2-VL-2B-Instruct当中,Prefill时延瓶颈主要来源于视觉部分。详细参考mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py。 通过Profiler工具可以观察到,有一个Conv3D的算子相当的耗时,将nn.Conv3d替换为mindspore.mint.nn.Conv3d能大大减少耗时,收益较大。 - 另外一部分瓶颈来源于**VisionAttention**的计算。通过**flash_attention_score**融合算子可以大大减少Prefill时延,收益较大。 ```python - output = mops.flash_attention_score(query, key, value, head_num=head_num, input_layout='BSND', - real_shift=None, padding_mask=None, attn_mask=attn_mask, - scalar_value=scale_factor, keep_prob=1 - dropout_p, pre_tokens=2147483647, - next_tokens=2147483647, inner_precise=0, - drop_mask=None, prefix=None, actual_seq_qlen=None, actual_seq_kvlen=None, - sparse_mode=sparse_mode) + attn_weights = ops.matmul(q, k.swapaxes(1, 2)) / math.sqrt(self.head_dim) + attn_weights = attn_weights + attention_mask + attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=mindspore.float32).to(q.dtype) + attn_output = ops.matmul(attn_weights, v) + attn_output = attn_output.swapaxes(0, 1) + attn_output = attn_output.reshape(seq_length, -1) + attn_output = self.proj(attn_output) ``` - - 对于VisionAttention的attn_mask加一个判断,如果要构造一个没有掩码的mask,则直接将mask设为None。收益较小。 + 替换为 + ```python + q = apply_rotary_pos_emb_vision(q.unsqueeze(0), rotary_pos_emb) / self.scale + attn_out = F.scaled_dot_product_attention_vision( + q, + k, + v, + scale=float(1.0 /self.scale), + attn_mask=attn_mask, + is_causal=False, + dropout_p=0.0, + ) + ``` + - 用融合算子rotary_position_embedding替代原有rotary_pos_emb逻辑,收益不错。 + - apply_rotary_pos_emb_vision里的部分计算可以丢去Qwen2VisionTransformerPretrainedModel一次算完直接调用,避免重复运算,收益不错。 + ```python + def apply_rotary_pos_emb_vision(tensor: mindspore.Tensor, freqs: mindspore.Tensor) -> mindspore.Tensor: + orig_dtype = tensor.dtype + tensor = tensor.float() + cos = freqs.cos() + sin = freqs.sin() + cos = cos.unsqueeze(1).tile((1, 1, 2)).unsqueeze(0).float() + sin = sin.unsqueeze(1).tile((1, 1, 2)).unsqueeze(0).float() + output = (tensor * cos) + (rotate_half(tensor) * sin) + output = output.to(orig_dtype) + return output + ``` + 替换为 + ```python + def apply_rotary_pos_emb_vision(tensor: mindspore.Tensor, freqs: mindspore.Tensor) -> mindspore.Tensor: + #丢到Qwen2VisionTransformerPretrainedModel去一次算法,直接传递,避免重复计算 + cos, sin = freqs + y = mops.rotary_position_embedding( + tensor, cos, sin, mode=0 + ) + return y + ``` + - 对于VisionAttention的attn_mask加一个判断,如果要构造一个没有掩码的mask,则直接将mask设为None。收益较小。 -2. **Decode 时延** +### 2. **Decode 时延** Decode 时延主要指生成阶段「每步新增一个 token」的平均耗时,瓶颈通常在注意力计算、KV Cache 管理及 mask 构造。 - deepseek-ai/Janus-Pro-7B: +#### deepseek-ai/Janus-Pro-7B: - 在deepseek-ai/Janus-Pro-7B当中,Decode时延瓶颈主要来源于apply_rotary_pos_emb。但可惜在这里用rotary_position_embedding融合算子会导致mismatch,所以deepseek-ai/Janus-Pro-7B的decode优化较少。详细参考mindnlp/transformers/models/llama/modeling_llama.py。 - - 针对apply_rotary_pos_emb,将q和k一起进行rotary_pos_emb有一丢丢收益,不大。 - ```python + - 针对apply_rotary_pos_emb,将q和k一起进行rotate_half有一丢丢收益,不是很大。 + ```python + q_embed = (q * cos) + (rotate_half(q) * sin) + k_embed = (k * cos) + (rotate_half(k) * sin) + ``` + 替换为 + ```python qk = mindspore.mint.cat((q, k), dim=0) qk_embed = mindspore.mint.mul(qk, cos) + mindspore.mint.mul(rotate_half(qk), sin) - q_embed, k_embed = mindspore.mint.split(qk_embed, 1, 0) + q_embed, k_embed = mindspore.mint.split(qk_embed,1,0) + ``` + 替换为 + ```python + def apply_rotary_pos_emb(q, k, cos, sin, position_ids=None, unsqueeze_dim=1): + cos = cos.unsqueeze(unsqueeze_dim) + sin = sin.unsqueeze(unsqueeze_dim) + qk = mindspore.mint.cat((q, k), dim=0) + qk_embed = mindspore.mint.mul(qk, cos) + mindspore.mint.mul(rotate_half(qk), sin) + q_embed, k_embed = mindspore.mint.split(qk_embed,1,0) return q_embed, k_embed - ``` - - 将repeat_kv通过repeat_interleave融合算子替代。 + ``` + - 将repeat_kv通过repeat_interleave融合算子替代,小收益。 - 有很多可以使用mint替换ops,有一些有收益。很难估计,但收益都比较小,积少成多。 - Qwen/Qwen2-VL-2B-Instruct: +#### Qwen/Qwen2-VL-2B-Instruct: - 在Qwen/Qwen2-VL-2B-Instruct当中,Decode时延瓶颈主要来源于Qwen2RMSNorm、apply_rotary_pos_emb_vision等部分。详细参考mindnlp/transformers/models/qwen2_vl/modeling_qwen2_vl.py。 - - 用融合算子rotary_position_embedding替代原有rotary_pos_emb逻辑。 - - 将repeat_kv通过repeat_interleave融合算子替代。 - - 将apply_mrope_mask操作从Qwen2VLAttention.forward丢到Qwen2VLModel.forward进行,避免做N层重复运算。 + - 将repeat_kv通过repeat_interleave融合算子替代,小收益。 + ```python + def repeat_kv(hidden_states: mindspore.Tensor, n_rep: int) -> mindspore.Tensor: + """ + This is the equivalent of ops.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch, + num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim) + """ + batch, num_key_value_heads, slen, head_dim = hidden_states.shape + if n_rep == 1: + return hidden_states + hidden_states = hidden_states[:, :, None, :, :].broadcast_to((batch, num_key_value_heads, n_rep, slen, head_dim)) + return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim) + ``` + 替换为 + ```python + def repeat_kv(hidden_states: mindspore.Tensor, n_rep: int) -> mindspore.Tensor: + if n_rep == 1: + return hidden_states + return mindspore.mint.repeat_interleave(hidden_states, n_rep, dim=1) + ``` + - 用融合算子rotary_position_embedding替代原有rotary_pos_emb逻辑,收益不错。 + - 将mrope_section计算cos和sin的操作从Qwen2VLAttention.forward丢到Qwen2VLModel.forward进行,避免做N层重复运算,收益有点大。 + ```python + def apply_multimodal_rotary_pos_emb(q, k, cos, sin, mrope_section, unsqueeze_dim=1): + mrope_section = mrope_section * 2 + cos = ops.cat([m[i % 3] for i, m in enumerate(ops.split(cos, mrope_section, dim=-1))], dim=-1).unsqueeze( + unsqueeze_dim + ) + sin = ops.cat([m[i % 3] for i, m in enumerate(ops.split(sin, mrope_section, dim=-1))], dim=-1).unsqueeze( + unsqueeze_dim + ) + + q_embed = (q * cos) + (rotate_half(q) * sin) + k_embed = (k * cos) + (rotate_half(k) * sin) + return q_embed, k_embed + ``` + 替换为 + ```python + def apply_multimodal_rotary_pos_emb(q, k, cos, sin): + """ + #上面通过mrope_section计算cos和sin的操作丢到了Qwen2VLModel.forward进行,避免重复计算 + q_embed = mops.rotary_position_embedding(q, cos, sin, mode=0) + k_embed = mops.rotary_position_embedding(k, cos, sin, mode=0) + + return q_embed, k_embed + ``` - 在Qwen2VLModel里增加对Prefill和decode阶段的判断,避免在decode阶段进行_prepare_4d_causal_attention_mask_with_cache_position操作。 - 有很多可以使用mint替换ops,有一些有收益。很难估计,但收益都比较小,积少成多。 -3. **峰值显存占用** +### 3. **峰值显存占用** 峰值显存主要由 KV Cache、注意力中间结果以及多模态 embedding 组成。 为降低峰值显存,本次优化仅在Qwen/Qwen2-VL-2B-Instruct优化成功: @@ -75,3 +170,19 @@ ## 三、总结 改动较多,主要列举了收益较大的改动,其余改动见文件所示。未一一列举请多多包涵。 +### 最终收益 +| model_name | memory_reserved | memory_allocated | avg_prefill_latency | avg_decode_latency | +| :--- | :--- | :--- | :--- | :--- | +| Qwen2-VL-2B-Instruct | 6.442450944 | 4.919912448 | 0.20503008365631104 | 0.03944935798645019 | +| Janus-Pro-7B | 17.179869184 | 15.473135616 | 0.13761675357818604 | 0.03764990329742432 | + + +### 评测结果 + +| 评测指标 | 平均得分 | +|---------|---------| +| 峰值显存得分 | 116.6667 | +| Prefill时延得分 | 425.9434 | +| Decode时延得分 | 227.8361 | +| **总分** | **256.8154** | +