导出LLaMA等LLM模型为onnx

通过onnx模型可以在支持onnx推理的推理引擎上进行推理,从而可以将LLM部署在更加广泛的平台上面。此外还可以具有避免pytorch依赖,获得更好的性能等优势。

这篇博客(大模型LLaMa及周边项目(二) - 知乎)进行了llama导出onnx的开创性的工作,但是依赖于侵入式修改transformers库,比较不方便。

这里本人实现了避免侵入式修改transformers库导出LLM为ONNX方法,代码库为:

https://github.com/luchangli03/export_llama_as_onnx/tree/main

可以在这个基础上进行简单修改从而导出其他模型,例如百川,Qwen等模型。当前已经加入了对Qwen的导出支持。

该方案优点是无需侵入式修改transformers代码,缺点是你需要提前了解各个模型的输入,相关shape和dtype。

导出的llama decoder会存在if算子,但是经过符号shape推导和设置相应的符号shape到onnx模型value_info,然后经过onnxsim可以完全去掉。也可以考虑修改llama定义代码去掉if。优化前后:

相关推荐
码以致用16 分钟前
DeerFlow Memory架构
人工智能·ai·架构·agent
ting945200018 分钟前
从零构建大模型实战:数据处理与 GPT-2 完整实现
人工智能
学点程序21 分钟前
Manifest:帮个人 AI Agent 降低模型成本的开源路由器
人工智能·开源
可观测性用观测云28 分钟前
观测云 x AI Agent:运维智能化的范式跃迁实践
人工智能
数数科技的数据干货30 分钟前
ThinkingAI携手华为云,共建企业级AI Agent平台Agentic Engine
人工智能·ai·华为云·agent
人工智能AI技术32 分钟前
春招急救:7天面试突击方案
人工智能
2603_9547083142 分钟前
如何确保微电网标准化架构设计流程的完整性?
网络·人工智能·物联网·架构·系统架构
小小AK1 小时前
钉钉与金蝶云星空无缝集成方案
大数据·人工智能·钉钉
不停喝水1 小时前
【AI+Cursor】 告别切图仔,拥抱Vibe Coding: AI + Cursor 开启多模态全栈新纪元 (1)
前端·人工智能·后端·ai·ai编程·cursor
水如烟1 小时前
孤能子视角:AI智能原理,“所有智能,都是茧房里的耦合“,以及人的主场
人工智能