實測!最新端側(cè)全模態(tài)大模型Megrez-3B-Omni 精華
模型概述
Megrez-3B-Omni是由無問芯穹研發(fā)的端側(cè)全模態(tài)理解模型,基于無問大語言模型Megrez-3B-Instruct擴展,同時具備圖片、文本、音頻三種模態(tài)數(shù)據(jù)的理解分析能力,具體模型參數(shù)如下表所示。
Megrez-3B-Omni在并未犧牲模型的文本處理能力的前提下,在三個模態(tài)上相較于同等參數(shù)模型,均取得較好的效果。
圖源:https://internvl.github.io/blog/2024-12-05-InternVL-2.5/
注意:下面的文本、圖像、語音評測均基于https://huggingface.co/spaces/Infinigence/Megrez-3B-Omni
文本測試
依舊老三樣,看看是否可以解決。
- 9?.9和9.11誰大的問題
正確,回答十分簡潔,因此又追問了一下為什么,回答的很好,解釋思路也有點奇特,是按照數(shù)值范圍來比較的。 - 用水來兌水,得到的是濃水還是稀水
正確,理解的問題的關(guān)鍵,水兌水,還是水。 - 小紅有2個兄弟,3個姐妹,那么小紅的兄弟有幾個姐妹
錯誤,沒有理解小紅是女生,當然這道題本身也有爭議,很多人都說應該分開討論,分別討論小紅是男生和女生的情況。不過有意思的是,他先回答的是1,最后又糾正成3。從文本的評測榜單上來看,Megrez-3B-Omni在數(shù)學上還是有一些欠缺的。但話說回來,3B模型對于數(shù)學還是精力有限,太難的問題還是推薦大家用32B以上的模型。 - 那道倫理、生物、數(shù)學問題
這道題算是比較難的了,雖然沒回答對,但是可以看出安全對齊的還是不錯的,想了解這道題,見??一道涉及數(shù)學、生物、倫理的AI測試題,來測測各家大模型的推理能力??
其他問題,大家自測吧,我整體的體驗效果還不錯,對于小參數(shù)模型來說,還是不錯的。
圖像測試
- 測試一下單圖片信息抽取功能
input:誰(姓名)幾點出發(fā),從哪兒到哪兒,并且花了多少錢
結(jié)果:正確 - 測試一下單圖片信息抽取+計算功能
input:請逐步詳細分析,告訴我在中文數(shù)據(jù)和英文數(shù)據(jù)分別占比是多少,并且告訴我總和 - 結(jié)果:正確
- 測試一下單圖片理解功能
input:請逐步詳細分析,這張圖片里是有兩只狗,對嗎
結(jié)果:一開始說是,但后面又答對了,說一只貓一只狗。 - 測試一下單圖片手寫ORC功能
input:請逐步詳細分析,輸出圖片中的文字內(nèi)容
結(jié)果:輸出結(jié)果丟字了,官方也說了OCR場景下開啟采樣可能會引入語言模型幻覺導致的文字變化,可考慮關(guān)閉采樣進行推理,但關(guān)閉采樣可能引入模型復讀 - 測試一下單圖片表格結(jié)構(gòu)化輸出
input:識別圖片中表格內(nèi)容,并以結(jié)構(gòu)化格式輸出
結(jié)果:正確,不過我這里貼的是簡單表,復雜表的話,效果不好。當然好像現(xiàn)在復雜表的識別,模態(tài)大模型包括4o的效果都不好。
當前版本模型暫時不支持多圖,就沒測試,內(nèi)部消息說下一版本會支持多圖和視頻(這一版本模型訓練時多圖數(shù)據(jù)沒加太多)。
此外篇幅有限,更多的能力大家自己測測看看吧。
語音測試
- 語音轉(zhuǎn)文本
結(jié)果:正確 - 語音問答
結(jié)果正確,可以理解語音內(nèi)容
我在電腦端,音頻測試有點麻煩,就簡單測了幾個,其他語音內(nèi)容大家就自己測試吧。
Web-Search部分
其實讓我感興趣的還有一個web-search方案,里面還是有一些細節(jié)內(nèi)容的,并不是一個簡單的RAG總結(jié)項目。比如:工程中會增加一步摘要過程,去除無效的網(wǎng)頁信息,并將內(nèi)容cache下來,以便提高模型回復效果等。
Github: https://github.com/infinigence/InfiniWebSearch
項目是基于Megrez-3B-Instruct模型,進行的web-search搭建,做了一些適配Search的專項訓練,
- 模型調(diào)用Search Tool的時機挺準確的。做過相關(guān)內(nèi)容的同學一定知道,模型在Search工具調(diào)用上很容易出現(xiàn)一直調(diào)用工具的情況,但實際上一些日常問題是不需要調(diào)用搜索引擎的,大模型可以直接回答甚至效果更好。
- 多輪對話的理解不錯。我們也知道多輪對話理解是大模型的強項,但在帶檢索的過程當然,就需要模型對整個對話有很好的理解能力。
- 當然給出帶ref格式的輸出內(nèi)容,這個部分是模型針對性訓練后才用的能力。
看他的工程,里面還是有很多有意思的細節(jié)內(nèi)容,并不是一個簡單的RAG總結(jié)項目。比如:工程中會增加一步摘要過程,去除無效的網(wǎng)頁信息,并將內(nèi)容cache下來,以便提高模型回復效果等。
Github: https://github.com/infinigence/InfiniWebSearch
項目的整體流程如下圖所示,
- 判斷是調(diào)用工具回答還是大模型直接回答
- 若調(diào)用工具回答則對用戶Query改寫,生成相應的搜索關(guān)鍵詞
- 通過查詢Query獲取相關(guān)的網(wǎng)頁文本內(nèi)容
- 根據(jù)Query和各個網(wǎng)頁內(nèi)容生成對應的summary,無關(guān)網(wǎng)頁或者內(nèi)容會以“無相關(guān)信息”替代
- 在根據(jù)summary和Query終結(jié)生成答案。
SUMMARY_PROMPT_TEMPLATE = (
'從信息中總結(jié)能夠回答問題的相關(guān)內(nèi)容,要求簡明扼要不能完全照搬原文。直接返回總結(jié)不要說其他話,如果沒有相關(guān)內(nèi)容則返回"無相關(guān)內(nèi)容", 返回內(nèi)容為中文。\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:其他詳細內(nèi)容自己去看Github,比如摘要字數(shù)、關(guān)注的對話輪等等。
本文轉(zhuǎn)載自 ??NLP工作站??,作者: 劉聰NLP
