11,964
社区成员




**MindSpore Transformers**(MindFormers)是一个全面支持大模型训练、微调、评估和部署的开源套件。它提供了业界领先的Transformer预训练模型,并结合MindSpore的并行技术,支持从单卡到大规模集群的无缝切换。通过模块化设计,用户可以轻松定制训练流程和优化策略,快速实现高效的模型训练和推理。无论是个人开发还是大规模部署,MindFormers都能提供强大的支持,助力AI研发的快速推进。
**CogVLM2** 是智谱开发的多模态理解系列大模型,该系列中包含了图文理解以及视频理解大模型。**cogvlm2-llama3-chat-19B** 作为图片理解大模型,在诸如 TextVQA、DocVQA 等多个基准测试中取得了显著的提升。目前该模型支持**8K序列长度**、**支持最高 1344 \* 1344 的图像分辨率**以及**提供支持中英文的开源模型版本**等功能。
通过本经验帖,再参考官方文档,你可以将CogVLM-19B-Image部署下来并且完成一些部署的优化,是它能够一次部署多次推理,提高推理效率
基础模型使用参考官方教程 docs/model_cards/cogvlm2_image.md · MindSpore/mindformers - Gitee.com 基本环境准备参考官方给出的环境依赖,下载使用官方提供的镜像
*过程*: 参考官方教程下载权重和依赖 构建如图所示的代码结构
由于CogVLM2基于Llama3开发,需要在Llama官网申请Llama3的访问权限以便下载权重和分词器。
在使用云服务器下载Mindspore和Pytorch环境,用于将torch的CogVLM2权重转换为Mindspore的.ckpt格式
将准备的分词器与权重上传到租用的长春AI算力中心ModelArts裸金属服务器Atlas 800T A2上尝试运行CogVLM2 更新固件和驱动满足mindformers1.3.0的运行要求,详细教程链接参考
安装驱动教程:https://www.hiascend.com/document/detail/zh/quick-installation/24.0.RC1/quickinstg_train/800_9000A2/quickinstg_800_9000A2_006.html 注:如果不进行驱动和固件的升级更新,在模型推理时会出现算子报错的问题 在完成基础的环境准备后运行推理指令可以进行推理
python run_mindformer.py \
--config configs/cogvlm2/predict_cogvlm2_image_llama3_chat_19b.yaml \
--run_mode predict \
--predict_data "/root/picture/test1.png" "analyze if there are any security concerns" \
--modal_type image text \
--load_checkpoint /root/test/cogvlm2-image-llama3-chat.ckpt
得到推理效果如图所示,可见推理效果很好,回答内容丰富而精确
*推理优化:*
我们将mindformers进行了服务化部署,实现了一次加载多次推理,提供了serve的推理模式,提高了推理服务的效率主要做出的修改是在run_mindformers.py文件中对main函数的修改,新加一个elif判断是否为serve模式,将trainer加载模型提取到逻辑判断以外,是运行的时候可以循环使用加载好的
另外,mindspore支持缓存编译文件,再需要多次推理的场景下可以进行推理优化
详细做法是在CogVLM-19B-Image的配置文件中predict_cogvlm2_image_llama3_chat_19b.yaml中的context参数enable_compile_cache使网络生成编译文件,后续推理模型的时候可以在不改变代码的情况下复用,大大减少了推理时间