wangzhaode / llm-export

llm-export can export llm model to onnx.
Apache License 2.0
187 stars 21 forks source link

为什么我导出的模型onnx。网络结构和权重是分开存储的 #24

Closed DY-TL closed 7 months ago

DY-TL commented 7 months ago

执行命令 python llm_export.py --path ../Qwen-VL-Chat/ --export --onnx_path /tmp/qwen-onnx --export_visual

结果模型结构和参数权重是分开存储到多个文件的 image

wangzhaode commented 7 months ago

--export参数会把整个llm模型导出为一个onnx模型,也就是一个计算图;onnx是使用protobuf存储的,文件大小超过2GB时会将权重分开存储; 如果你不想分开存储的话可以使用--export_split,这会把llm划分成多个小模型导出,权重不会分开存储;

DY-TL commented 7 months ago

拆成多个小模型加载的时候该怎么加载呢

wangzhaode commented 7 months ago

看下llm的计算逻辑,看下 LLM.forward 函数

DY-TL commented 7 months ago

是加载多个进来,然后前一个小模型(BLOCK)推理的结果作为下一个小模型(block)的输入吗,

wangzhaode commented 7 months ago

是加载多个进来,然后前一个小模型(BLOCK)推理的结果作为下一个小模型(block)的输入吗,

是的,顺序大概是 embedding -> loop(block) -> lm

DY-TL commented 7 months ago

好的,我试试,多谢

wangzhaode commented 7 months ago

ok

DY-TL commented 7 months ago

Qwen-VL-chat的embedding层和visual层带参数文件大小应该也超过2G吧,这种情况有其他办法避免结构和权重分开存吗