导出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。优化前后:

相关推荐
猿人谷17 小时前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
说了很好18 小时前
PyTorch从零搭建DDPM:时间嵌入+UNet网络+扩散调度完整复现
人工智能
Bigfish_coding18 小时前
前端转agent-【python】-06 长期记忆(向量数据库 + 嵌入)
人工智能
小林ixn18 小时前
别再手写Prompt了!用AI Loop实现自动化自我迭代,效率提升10倍
人工智能·自动化运维
说了很好18 小时前
逐行注释DDPM源码:正向加噪、逆向去噪、MSE损失全流程复现
人工智能
Dilee18 小时前
Spring AI 1.1.7 接入 MCP:Filesystem Server 最小 Demo
人工智能·后端
Token炼金师18 小时前
大模型推理超参数原理详解
人工智能
Token炼金师18 小时前
大模型训练超参数:从Loss曲面到收敛策略的底层逻辑
人工智能
后端小肥肠18 小时前
Skill 囤了一堆却用不起来?我用 Codex 写了个整理神器
人工智能·agent
魏祖潇18 小时前
从"会聊天"到"能干活":用 OpenCode 给自己找个 AI 搭子
人工智能