实测!最新端侧全模态大模型Megrez-3B-Omni

大模型向量数据库机器学习

大家好,我是刘聪NLP。

中午看到无问芯穹开源了一个端侧全模态大模型-Megrez-3B-Omni,马上来测测看,效果如何。


        
          
Github: https://github.com/infinigence/Infini-Megrez  
HF: https://huggingface.co/Infinigence/Megrez-3B-Omni  
Demo: https://huggingface.co/spaces/Infinigence/Megrez-3B-Omni  

      

先说点题外话,大模型发展到现在,虽说参数越大,模型越智能,但毕竟现在GPU资源还是蛮紧张的,太大的模型消耗资源太多,并发起来的时候,根本烧不起,真正坐落地的懂得都懂。当然现在也是越来越多的人来搞SLMs(small language models),像千问最新的Qwen2.5系列也是开源了0.5B、1.5B、3B模型,面壁前端时间也是开源了MiniCPM3-4B模型,微软的Phi系列模型也是一直在更新。 这也是AI现在冲突的点吧,模型越大越智能,模型越小越容易落地。

一个全模态的端侧模型,相当于一个模型干3个事情,可以极大减少部署成本。

还发现他们开了一个web-search的相关项目(直接本地搭建自己的Kimi或Perplexity),还是蛮良心的,特此分享给大家。

下面从模型介绍、模型实测(文本、图像、语音三个方面)、web-search项目三个部分来介绍。

模型概述

Megrez-3B-Omni是由无问芯穹研发的端侧全模态理解模型,基于无问大语言模型Megrez-3B-Instruct扩展,同时具备图片、文本、音频三种模态数据的理解分析能力,具体模型参数如下表所示。

picture.image

Megrez-3B-Omni在并未牺牲模型的文本处理能力的前提下,在三个模态上相较于同等参数模型,均取得较好的效果。

picture.image 图源:https://internvl.github.io/blog/2024-12-05-InternVL-2.5/

注意:下面的文本、图像、语音评测均基于https://huggingface.co/spaces/Infinigence/Megrez-3B-Omni

文本测试

依旧老三样,看看是否可以解决。

  • 9.9和9.11谁大的问题

正确,回答十分简洁,因此又追问了一下为什么,回答的很好,解释思路也有点奇特,是按照数值范围来比较的。

picture.image

  • 用水来兑水,得到的是浓水还是稀水

正确,理解的问题的关键,水兑水,还是水。

picture.image

  • 小红有2个兄弟,3个姐妹,那么小红的兄弟有几个姐妹

错误,没有理解小红是女生,当然这道题本身也有争议,很多人都说应该分开讨论,分别讨论小红是男生和女生的情况。不过有意思的是,他先回答的是1,最后又纠正成3。从文本的评测榜单上来看,Megrez-3B-Omni在数学上还是有一些欠缺的。但话说回来,3B模型对于数学还是精力有限,太难的问题还是推荐大家用32B以上的模型。

picture.image

  • 那道伦理、生物、数学问题

这道题算是比较难的了,虽然没回答对,但是可以看出安全对齐的还是不错的,想了解这道题,见一道涉及数学、生物、伦理的AI测试题,来测测各家大模型的推理能力

picture.image

其他问题,大家自测吧,我整体的体验效果还不错,对于小参数模型来说,还是不错的。

图像测试

  • 测试一下单图片信息抽取功能

input:谁(姓名)几点出发,从哪儿到哪儿,并且花了多少钱

结果:正确

picture.image

  • 测试一下单图片信息抽取+计算功能

input:请逐步详细分析,告诉我在中文数据和英文数据分别占比是多少,并且告诉我总和

picture.image

结果:正确

picture.image

  • 测试一下单图片理解功能

input:请逐步详细分析,这张图片里是有两只狗,对吗

结果:一开始说是,但后面又答对了,说一只猫一只狗。

picture.image

  • 测试一下单图片手写ORC功能

input:请逐步详细分析,输出图片中的文字内容

结果:输出结果丢字了,官方也说了OCR场景下开启采样可能会引入语言模型幻觉导致的文字变化,可考虑关闭采样进行推理,但关闭采样可能引入模型复读

picture.image

  • 测试一下单图片表格结构化输出

input:识别图片中表格内容,并以结构化格式输出

结果:正确,不过我这里贴的是简单表,复杂表的话,效果不好。当然好像现在复杂表的识别,模态大模型包括4o的效果都不好。

picture.image

当前版本模型暂时不支持多图,就没测试,内部消息说下一版本会支持多图和视频(这一版本模型训练时多图数据没加太多)。

此外篇幅有限,更多的能力大家自己测测看看吧。

语音测试

  • 语音转文本

结果:正确

picture.image

  • 语音问答

结果正确,可以理解语音内容

picture.image

picture.image

我在电脑端,音频测试有点麻烦,就简单测了几个,其他语音内容大家就自己测试吧。

Web-Search部分

其实让我感兴趣的还有一个web-search方案,里面还是有一些细节内容的,并不是一个简单的RAG总结项目。比如:工程中会增加一步摘要过程,去除无效的网页信息,并将内容cache下来,以便提高模型回复效果等。


        
          
Github: https://github.com/infinigence/InfiniWebSearch  

      

项目是基于Megrez-3B-Instruct模型,进行的web-search搭建,做了一些适配Search的专项训练,

  • 模型调用Search Tool的时机挺准确的。做过相关内容的同学一定知道,模型在Search工具调用上很容易出现一直调用工具的情况,但实际上一些日常问题是不需要调用搜索引擎的,大模型可以直接回答甚至效果更好。

picture.image

picture.image

  • 多轮对话的理解不错。我们也知道多轮对话理解是大模型的强项,但在带检索的过程当然,就需要模型对整个对话有很好的理解能力。

picture.image

picture.image

  • 当然给出带ref格式的输出内容,这个部分是模型针对性训练后才用的能力。

看他的工程,里面还是有很多有意思的细节内容,并不是一个简单的RAG总结项目。比如:工程中会增加一步摘要过程,去除无效的网页信息,并将内容cache下来,以便提高模型回复效果等。


        
          
Github: https://github.com/infinigence/InfiniWebSearch  

      

项目的整体流程如下图所示,picture.image

  • 判断是调用工具回答还是大模型直接回答
  • 若调用工具回答则对用户Query改写,生成相应的搜索关键词
  • 通过查询Query获取相关的网页文本内容
  • 根据Query和各个网页内容生成对应的summary,无关网页或者内容会以“无相关信息”替代
  • 在根据summary和Query终结生成答案。

        
          
SUMMARY_PROMPT_TEMPLATE = (  
    '从信息中总结能够回答问题的相关内容,要求简明扼要不能完全照搬原文直接返回总结不要说其他话,如果没有相关内容则返回"无相关内容", 返回内容为中文\n\n'  
    "<问题>{question}</问题>\n"  
    "<信息>{context}</信息>"  
)  
  
OBSERVATION_PROMPT_TEMPLATE = (  
    "You will be given a set of related contexts to the question, "  
    "each starting with a reference number like [[citation:x]], where x is a number. "  
    "Please use the context and cite the context at the end of each sentence if applicable."  
    "\n\n"  
    "Please cite the contexts with the reference numbers, in the format [citation:x]. "  
    "If a sentence comes from multiple contexts, please list all applicable citations, like [citation:3][citation:5]. "  
    "If the context does not provide relevant information to answer the question, "  
    "inform the user that there is no relevant information in the search results and that the question cannot be answered."  # noqa: E501  
    "\n\n"  
    "Other than code and specific names and citations, your answer must be written in Chinese."  
    "\n\n"  
    "Ensure that your response is concise and clearly formatted. "  
    "Group related content together and use Markdown points or lists where appropriate."  
    "\n\n"  
    "Remember, summarize and don't blindly repeat the contexts verbatim. And here is the user question:\n"  
    "{question}\n"  
    "Here is the keywords of the question:\n"  
    "{keywords}"  
    "\n\n"  
    "Here are the set of contexts:"  
    "\n\n"  
    "{context}"  
)  

      

整个项目的启动也是十分简单,三步走,你就可以得到一个本地部署的kimi啦:

  • 启动检索

        
          
export SERPER_API_KEY=$YOUR\_API\_KEY  
cd infini_websearch/service  
python search_service.py --port 8021 --chrome ./chrome-linux64/chrome --chromedriver ./chromedriver-linux64/chromedriver  

      
  • 启动模型

        
          
python -m vllm.entrypoints.openai.api_server --served-model-name megrez --model $MODEL\_PATH --port 8011 --max-seq-len 4096 --trust_remote_code  

      
  • 启动Demo

        
          
python gradio_app.py -m $MODEL\_PATH --port 7860  

      

PS:其他详细内容自己去看Github,比如摘要字数、关注的对话轮等等。

写在最后

Megrez-3B-Omni模型的整体体验还是不错的,但还是存在一些问题,比如ocr时候需要平衡准确识别和复读、模型数学能力有待提高等等,但对于小模型来说,还要同时负担三个模态,其实也不错了,要啥自行车呢。

期待下一版更新吧,愿开源大模型越来越好~~

PS:看到这里,如果觉得不错,可以来个点赞在看关注 。给公众号添加【星标⭐️】不迷路!您的支持是我坚持的最大动力!

欢迎多多关注公众号「NLP工作站」,加入交流群,交个朋友吧,一起学习,一起进步!

0
0
0
0
关于作者
相关资源
IDC 大模型应用落地白皮书
大模型技术已深度融入业务实践,各企业期望其释放更大商业价值。 但大模型落地之路面临许多挑战和顾虑。 如何精准对接业务需求与发展蓝图,制定切实可行的大模型落地策略? IDC发布首个大模型应用策略与行动指南 一为您揭晓一
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论