ChatGLM6B是目前国内使用最多的大模型了。之前必须在英伟达的显卡上跑。
现在支持AMD显卡和手机,中国人厉害
虽然还是比较慢,但是好歹可以跑了。
实测AMD显卡跑的还是比较快的,手机速度目前还惨不忍睹。期待作者继续优化
项目地址https://github.com/wangzhaode/ChatGLM-MNN
impl
GPU CPU
CPU only
MNN
0.292
0.877
Pytorch
out of memory
1.344
优化过程该项目将模型ChatGLM-6B转换到MNN并使用C 进行推理。 在实现上做了如下优化:
对其中的词表做了部分删减,删除了模型中未使用的前20000个图片词;将vocab, embedding, lm_head的大小从150528缩小到130528;Embedding操作调用次数较少,使用fseek, fread加载的方式降低内存;lm_head操作为[num, 4096] @ [4096, 130528],转换为[130528, 4096] @ [4096, 1];原模型对显存要求较高;将模型按层拆分成28个模型,可以根据用户显存大小动态将计算任务分配给GPU和CPU,充分利用GPU与CPU内存与算力; 即使小显存显卡也可以加速生成。针对端侧设备可以逐次加载计算,2G内存的Android设备也可以执行推理(速度较慢)。现已提供ONNX导出方法和模型,可以使用其他框架部署;点击下载相关文章
猜你喜欢