mPLUG模型体验
多模态预训练模型mPLUG是建立在千万图文数据预训练的基础上,小编就想探究下模型是不是真的都学会了吗?最近文本生成图像模型DALLE和扩散模型开始如火如荼根据文本生成各种想象的图片,小编就想对于这些生成出来的图片,视觉问答模型mPLUG还可以正确回答吗?会不会因为没见过类似的样本就没有办法回答呀?
小编先尝试了对大名鼎鼎的DALLE生成的图像进行问答,DALLE是OpenAI放出的文本生成图像模型,取名DALL-E,是为了向艺术家萨尔瓦多-达利(Salvador Dali )和皮克斯的机器人WALL-E致敬。测试之后,看看下面的结果,连艺术家dali都能识别出来,不愧是见多识广,知识也太渊博了!
### from modelscope.msdatasets import MsDataset # from icecream import ic dataset = MsDataset.load('vqa_trial', subset_name='vqa_trial', split="test") print(dataset[0]) def resize_img(img): # set the base width of the result basewidth = 300 # determining the height ratio wpercent = (basewidth/float(img.size[0])) hsize = int((float(img.size[1])*float(wpercent))) # resize image and save img = img.resize((basewidth,hsize), Image.ANTIALIAS) return img resize_img(dataset[0]['image']).show()
### from PIL import Image from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks model_id = 'damo/mplug_visual-question-answering_coco_large_en' pipeline_vqa = pipeline(Tasks.visual_question_answering, model=model_id) for item in dataset: input_vqa = { 'image': item['image'], 'question': item['question'], } answer = pipeline_vqa(input_vqa) resize_img(item['image']).show() print('Q: ' + item['question']) print('A: ' + answer['text'])
同时小编也拿了ModelScope上的文生图模型进行测试,测试结果如下:
可以看到视觉问答模型mPLUG具有非常强的泛化能力,针对各种生成的图片,各个不同领域的来源,即便对于生成的一些开放域的不是很清晰的图片,都能回答正确。这就是训练了千万次,理解了视觉特征之后,达到了“无招胜有招”,实际测试中就可以融会贯通!
小编也整理好了代码,方便大家尝试。
结语
市面上有好多号称“用户上手简单”,“一步到位”,“傻瓜式”,但是真的,如果不懂两三行代码,没有一些机器学习基础,不趟几次浑水,是真的没办法上手的。浅草才能没马蹄,ModelScope真的做到了,一步即可体验,所见即所得,没有任何的冗余,如丝般顺滑的的在线体验。
到这里就结束了,赶紧上ModelScope一键体验超人类的视觉问答模型,一键直达:https://www.modelscope.cn/models/damo/mplug_visual-question-answering_coco_large_en/summary。