Closed DY-TL closed 7 months ago
--export
参数会把整个llm模型导出为一个onnx模型,也就是一个计算图;onnx是使用protobuf存储的,文件大小超过2GB时会将权重分开存储;
如果你不想分开存储的话可以使用--export_split
,这会把llm划分成多个小模型导出,权重不会分开存储;
拆成多个小模型加载的时候该怎么加载呢
看下llm的计算逻辑,看下 LLM.forward
函数
是加载多个进来,然后前一个小模型(BLOCK)推理的结果作为下一个小模型(block)的输入吗,
是加载多个进来,然后前一个小模型(BLOCK)推理的结果作为下一个小模型(block)的输入吗,
是的,顺序大概是 embedding -> loop(block) -> lm
好的,我试试,多谢
ok
Qwen-VL-chat的embedding层和visual层带参数文件大小应该也超过2G吧,这种情况有其他办法避免结构和权重分开存吗
执行命令
python llm_export.py --path ../Qwen-VL-Chat/ --export --onnx_path /tmp/qwen-onnx --export_visual
结果模型结构和参数权重是分开存储到多个文件的![image](https://github.com/wangzhaode/llm-export/assets/73345901/6851207e-58b5-4495-bc73-701a5fc420e0)