English | 中文
一个高效的大语言模型导出工具,能够将 LLM 模型导出为 ONNX 和 MNN 格式,支持量化优化和多模态模型。
- 🚀 动态形状支持:优化原始代码,支持动态输入形状
- 🚀 模型优化:减少常量部分,提升推理性能
- 🚀 自动优化:集成 OnnxSlim 优化 ONNX 模型,性能提升约 5% (感谢 @inisis)
- 🚀 LoRA 支持:支持 LoRA 权重的合并/分离导出
- 🚀 量化技术:支持 AWQ、GPTQ、HQQ 等多种量化方法
- 🚀 多模态支持:支持文本、图像、音频等多模态模型
- 🚀 推理框架:提供 MNN 和 ONNX 推理代码
# 从 PyPI 安装(推荐)
pip install llmexport
# 从 GitHub 安装最新版本
pip install git+https://github.com/wangzhaode/llm-export@master
# 本地开发安装
git clone https://github.com/wangzhaode/llm-export
cd llm-export
pip install -e .
# 使用 Hugging Face CLI
huggingface-cli download Qwen/Qwen2.5-1.5B-Instruct --local-dir Qwen2.5-1.5B-Instruct
# 或使用 ModelScope(国内用户推荐)
modelscope download Qwen/Qwen2.5-1.5B-Instruct --local_dir Qwen2.5-1.5B-Instruct
# 文本对话测试
llmexport --path Qwen2.5-1.5B-Instruct --test "你好,请介绍一下你自己"
# 多模态测试(图像+文本)
llmexport --path Qwen2-VL-2B-Instruct --test "<img>image_url</img>描述一下这张图片"
# 导出为 ONNX 格式
llmexport --path Qwen2.5-1.5B-Instruct --export onnx
# 导出为 MNN 格式(默认 4bit 量化)
llmexport --path Qwen2.5-1.5B-Instruct --export mnn
# 自定义量化参数
llmexport --path Qwen2.5-1.5B-Instruct --export mnn --quant_bit 8 --quant_block 128
- ONNX 导出:使用
--export onnx
导出为 ONNX 格式 - MNN 导出:使用
--export mnn
导出为 MNN 格式 - 模型优化:默认启用 OnnxSlim 优化,使用
--onnx_slim
显式启用
- 量化位数:
--quant_bit 4/8
(默认 4bit) - 量化块大小:
--quant_block 64/128
(默认 64) - LM Head 量化:
--lm_quant_bit
单独设置输出层量化 - 对称量化:
--sym
启用对称量化(无零点)
- AWQ 量化:
--awq
启用 AWQ 量化 - HQQ 量化:
--hqq
启用 HQQ 量化 - GPTQ 量化:
--gptq_path
加载 GPTQ 量化模型 - Smooth 量化:
--smooth
启用 Smooth 量化
- LoRA 合并:
--lora_path
指定 LoRA 权重路径 - LoRA 分离:
--lora_split
分离导出 LoRA 权重
- 视觉量化:
--visual_quant_bit
、--visual_quant_block
设置视觉模块量化 - 视觉对称:
--visual_sym
视觉模块对称量化
- 详细输出:
--verbose
显示详细日志 - 性能评估:
--ppl
获取所有 token 的 logits - 自定义输出:
--dst_path
指定输出目录(默认./model
)
参数 | 类型 | 说明 |
---|---|---|
--path |
必需 | 模型路径,支持本地目录或 Hugging Face 模型 ID |
--export |
可选 | 导出格式:onnx 或 mnn |
--test |
可选 | 测试查询字符串 |
--dst_path |
可选 | 输出目录(默认 ./model ) |
--verbose |
开关 | 显示详细日志 |
参数 | 默认值 | 说明 |
---|---|---|
--quant_bit |
4 | 量化位数(4 或 8) |
--quant_block |
64 | 量化块大小(0 表示通道级量化) |
--lm_quant_bit |
同 quant_bit |
LM Head 层量化位数 |
--visual_quant_bit |
模型相关 | 视觉模块量化位数 |
--visual_quant_block |
模型相关 | 视觉模块量化块大小 |
参数 | 说明 |
---|---|
--awq |
启用 AWQ 量化 |
--hqq |
启用 HQQ 量化 |
--smooth |
启用 Smooth 量化 |
--sym |
启用对称量化(无零点) |
--visual_sym |
视觉模块对称量化 |
参数 | 说明 |
---|---|
--lora_path |
LoRA 权重路径 |
--lora_split |
分离导出 LoRA 权重 |
参数 | 说明 |
---|---|
--tokenizer_path |
分词器路径(默认使用 --path ) |
--gptq_path |
GPTQ 量化模型路径 |
--mnnconvert |
本地 MNNConvert 路径 |
--onnx_slim |
启用 ONNX-Slim 优化 |
--ppl |
获取所有 token 的 logits |
--seperate_embed |
分离嵌入层以避免量化 |
--calib_data |
校准数据路径 |
目前支持以下模型类型:
- Qwen 系列:Qwen2.5、Qwen2、Qwen1.5、Qwen-VL 等
- LLaMA 系列:Llama-3.2、Llama-3、Llama-2 等
- ChatGLM 系列:ChatGLM4、ChatGLM3、ChatGLM2 等
- Baichuan 系列:Baichuan2-7B-Chat 等
- Yi 系列:Yi-6B-Chat 等
- 其他:InternLM、DeepSeek、Phi、Gemma、TinyLlama 等
- 视觉模型:Qwen2-VL、Qwen2.5-VL、Llama-3.2-Vision、InternVL 等
- 音频模型:Qwen2-Audio、Qwen2.5-Omni 等
- 文本嵌入:bge-large-zh、gte-multilingual 等
我们提供了已经优化的模型下载:
- Hugging Face:taobao-mnn
- ModelScope:MNN
部分热门模型:
模型 | Hugging Face | ModelScope |
---|---|---|
DeepSeek-R1-1.5B-Qwen | Q4_1 | Q4_1 |
Qwen2.5-0.5B-Instruct | Q4_1 | Q4_1 |
Qwen2.5-1.5B-Instruct | Q4_1 | Q4_1 |
GPT-OSS-20B | Q4_1 | Q4_1 |
Qwen3-4B-Instruct-2507 | Q4_1 | Q4_1 |
更多模型请查看完整列表。
本项目采用 MIT 许可证。