当前位置: 首页 > news >正文

CANN Alpamayo-R1智驾优化

Alpamayo-R1 智驾VLA模型推理昇腾迁移-性能优化说明

【免费下载链接】cann-recipes-embodied-intelligence本项目针对具身智能业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-embodied-intelligence

本文档总结了Alpamayo-R1模型在昇腾NPU上的优化策略:

1. Flash Attention (FA) 替换

优化说明

本样例使用torch_npu内置的npu_fusion_attention融合算子替换源代码中的小算子实现,npu_fusion_attention详细可见Ascend社区文档。

实现方式

在模型配置中设置以下参数,会调用torch_npu内置的npu_fusion_attention融合算子:

config.attn_implementation = 'flash_attention_2'

优化位置

  • 文件:src/alpamayo_r1/models/base_model.py
  • 修改:在模型初始化时设置attention实现方式

2. Transformers库中布尔索引优化

优化说明

原始实现中使用了布尔索引操作,效率较低。通过优化索引计算逻辑,避免不必要的布尔运算和类型转换。

实现方式

原始实现:

if image_features is not None and inputs_embeds[special_image_mask].numel() != image_features.numel():

优化后实现:创建了独立的patched_get_placeholder_mask函数,优化了image和video token的mask生成逻辑:

if image_features is not None: n_masked_elements = special_image_mask.sum().item() if n_masked_elements != image_features.numel(): raise ValueError( f"Image features and image tokens do not match: tokens: {n_image_tokens}, features {image_features.shape[0]}" )

优化位置

  • 新增文件:src/alpamayo_r1/qwen_patches/qwen3vl_optimization.py
  • 新增:patched_get_placeholder_mask函数
  • 新增:apply_qwen3vl_patches()函数用于应用patch

3. RmsNorm算子优化

优化说明

本样例使用torch_npu内置的npu_rms_norm融合算子替换源代码中的小算子实现,npu_rms_norm详细可见Ascend社区文档。在src/alpamayo_r1/models/action_in_proj.pyRmsNorm类中使能npu_rms_norm融合算子:

实现方式

原始实现:

def _norm(self, x): """Normalize the input tensor.""" return x * torch.rsqrt(x.pow(2).mean(-1, keepdim=True) + self.eps) def forward(self, x): """Normalize the input tensor.""" output = self._norm(x.float()).type_as(x) return output * self.weight

优化后实现:

def forward(self, x): input_dtype = x.dtype weight_dtype = self.weight.dtype if input_dtype != weight_dtype: weight_dtype = self.weight.to(input_dtype) else: weight = self.weight # npu_rms_norm returns output = torch_npu.npu_rms_norm(x, weight, self.eps)[0] return output

优化位置

  • 文件:src/alpamayo_r1/models/action_in_proj.py
  • 类:RmsNorm
  • 修改:使用torch_npu.npu_rms_norm替换原始实现

4. ADD算子优化:使用融合算子torch.addcmul

优化说明

在扩散模型的积分过程中遇到了x = x + dt * v这样的操作。使用昇腾NPU提供的融合算子torch.addcmul,可以将加法和乘法融合为一个算子,减少计算步骤和内存访问。

实现方式

原始实现:

x = x + dt * v

优化后实现:

x = torch.addcmul(x, dt, v)

优化位置

  • 文件:src/alpamayo_r1/diffusion/flow_matching.py
  • 函数:flow_matching_euler积分步进
  • 修改:使用torch.addcmul替换原始的加法和乘法组合

5. Concat优化:预分配+索引赋值

优化说明

在处理多特征拼接时,原始实现使用torch.cat进行多次拼接,这会导致多次内存分配和数据拷贝。优化方案是预先分配完整大小的tensor,然后通过索引直接赋值,避免拼接操作。

实现方式

原始实现:

action_feats = torch.cat([s(x[:, :, i]) for i, s in enumerate(self.sinus)], dim=-1) timestep_feats = self.timestep_fourier_encoder(timesteps[..., -1]) timestep_feats = timestep_feats.repeat(1, T, 1) x = torch.cat((action_feats, timestep_feats), dim=-1)

优化后实现:

batch_feats = torch.empty(B, T, self.num_input_feats, device=x.device, dtype=x.dtype) offset = 0 for i, s in enumerate(self.sinus): feat = s(x[:, :, i]) batch_feats[:, :, offset:offset+feat.size(-1)] = feat offset += feat.size(-1) timestep_feats = self.timestep_fourier_encoder(timesteps[..., -1]) batch_feats[:, :, offset:] = timestep_feats.repeat(1, T, 1) x = batch_feats

优化位置

  • 文件:src/alpamayo_r1/models/action_in_proj.py
  • 类:PerWaypointActionInProjV2
  • 方法:forward
  • 修改:预分配batch_feats,使用索引赋值替代torch.cat

优化总结

优化项优化类型主要技术性能收益
FA替换注意力优化torch_npu.npu_fusion_attention降低显存、提升速度、支持更长序列
Index算子替换算子优化优化布尔索引逻辑减少冗余计算、提升索引效率
RmsNorm优化算子融合torch_npu.npu_rms_norm减少kernel launch、优化内存访问
ADD算子优化算子融合torch.addcmul减少内存读写、减少kernel launch
Slice+Concat优化内存优化预分配+索引赋值减少内存分配和拷贝、提升缓存效率

【免费下载链接】cann-recipes-embodied-intelligence本项目针对具身智能业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-embodied-intelligence

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/782724/

相关文章:

  • 2026法治教育展厅怎么做?未成年法治教育展厅展馆设计 - 新闻快传
  • 微信立减金闲置率近五成,教你合规盘活你的支付权益 - 团团收购物卡回收
  • CANN算子库GeGluV3算子
  • Kubernetes存储深度解析与实践
  • nvm安装node的目录
  • 职场人的「深夜困境」:为什么我选择用AI社交平台倾诉
  • 湖州黄金回收怎么选?6 大品牌覆盖吴兴 / 南浔 / 德清 / 长兴 / 安吉,免费上门 + 实时金价 + 当场结款 - 金掌柜黄金回收
  • 江阴黄金回收认准这 6 家!7 街道 10 乡镇全覆盖,上门秒结无套路 - 金掌柜黄金回收
  • CANN多模态推理拉起架构设计
  • 五大数据采集服务平台深度测评:从全网公开数据到 AI 专用数据集
  • CANN/sip Strmm三角矩阵乘法
  • 20万奖金!昇腾 Model‑Agent 模型适配大赛邀你来战
  • 学生党 Obsidian 同步最省心方案:坚果云官方插件 Nutstore Sync 完整教程 - nut-king
  • 墨观|水性凹版油墨行业资讯:法规收紧与技术突破并行,规模化量产成竞争分水岭
  • 从视频中智能提取PPT:5分钟快速上手教程
  • 透明计费与用量预警,Taotoken如何帮助个人开发者控制预算
  • Kubernetes监控与可观测性深度解析与实践
  • Video DownloadHelper CoApp终极指南:从零开始轻松下载网络视频
  • 重庆桥梁加固行业深度测评:四大企业实力对比与选择指南 - 新闻快传
  • 亨得利高端腕表服务最新公告:2026年质保升级至24个月、官方辟谣汇总与全国直营服务体系权威解读 - 亨得利腕表维修中心
  • 生态与文明:无中心与有中心的辩证 ——论智能体如何在多样性中凝聚方向
  • FPGA与DDR2 SDRAM接口设计实战指南
  • 混合专家MoE没你想的那么玄乎:拆开GPT-4和DeepSeek V4的核心架构
  • Tekla 图纸还在人工调?一个项目浪费几十小时,自动调图到底能省多少时间
  • 目前卡号2326沃尔玛卡回收应对方式(共四种) - 猎卡回收公众号
  • 宜兴黄金回收大揭秘!5 街道 13 镇全上门,价高秤准,绝不套路 - 金掌柜黄金回收
  • 2026年西安旧房改造公司哪家好 适配各类旧房场景 售后完善有保障 - 深度智识库
  • 智码 AICoder 全功能体验:Claude Code / Codex / Gemini CLI 一处管 + 多账号切换 + MCP + vibe coding + 移动端伴侣
  • CANN/atvoss幂运算接口
  • 瓶包装生产线推广别再瞎投广告:这几个渠道更有效 - 品牌推荐大师