Megrez-3B-Omni:無(wú)問(wèn)芯穹端側(cè)全模態(tài)大模型技術(shù)剖析與應(yīng)用指南
在人工智能領(lǐng)域,技術(shù)的創(chuàng)新不斷推動(dòng)著行業(yè)的發(fā)展。前段時(shí)間,無(wú)問(wèn)芯穹發(fā)布的Megrez-3B-Omni模型引起了廣泛關(guān)注,它作為全球首款端側(cè)全模態(tài)理解開源模型,為智能設(shè)備的交互體驗(yàn)帶來(lái)了全新的變革。本文將對(duì)Megrez-3B-Omni進(jìn)行詳細(xì)介紹,包括項(xiàng)目概述、技術(shù)特點(diǎn)、性能優(yōu)勢(shì)、應(yīng)用場(chǎng)景、快速使用以及項(xiàng)目地址等,希望能幫助讀者更好地了解這一創(chuàng)新技術(shù)。
一、項(xiàng)目概述
Megrez-3B-Omni是由無(wú)問(wèn)芯穹發(fā)布的全球首款端側(cè)全模態(tài)理解開源模型。它支持圖片、音頻和文本三種模態(tài)的數(shù)據(jù)處理,參數(shù)量達(dá)30億,主干網(wǎng)絡(luò)參數(shù)僅2.3B,卻在精度上超越了14B模型,并在推理速度上領(lǐng)先同級(jí)模型300%。該模型專為手機(jī)、平板等端側(cè)設(shè)備進(jìn)行了優(yōu)化,旨在實(shí)現(xiàn)圖像、音頻和文本三種模態(tài)數(shù)據(jù)的無(wú)縫融合,讓用戶在端側(cè)設(shè)備上就能享受到更加智能、便捷的交互體驗(yàn)。
二、技術(shù)特點(diǎn)
1、創(chuàng)新的架構(gòu)設(shè)計(jì):采用多層多頭注意力機(jī)制,能夠更好地捕捉不同模態(tài)數(shù)據(jù)中的長(zhǎng)程依賴關(guān)系,提高模型的理解能力和泛化能力。同時(shí),將圖像、音頻和文本三種不同模態(tài)的數(shù)據(jù)進(jìn)行深度融合,自動(dòng)學(xué)習(xí)不同模態(tài)數(shù)據(jù)之間的關(guān)聯(lián)和轉(zhuǎn)換,從而實(shí)現(xiàn)更加準(zhǔn)確和全面的理解,跨模態(tài)的信息整合能力是傳統(tǒng)單一模態(tài)模型所無(wú)法比擬的。
2、高效的模型優(yōu)化:運(yùn)用模型剪枝、量化等技術(shù),減少模型的大小和計(jì)算量,同時(shí)保持其精度和泛化能力,使其能夠在資源受限的設(shè)備上運(yùn)行,如智能手機(jī)、嵌入式系統(tǒng)等。此外,還采用了先進(jìn)的訓(xùn)練算法,如分布式訓(xùn)練、自適應(yīng)學(xué)習(xí)率調(diào)整等,可加速模型的收斂速度,提高訓(xùn)練效率,并減少過(guò)擬合的風(fēng)險(xiǎn)。同時(shí),采用遷移學(xué)習(xí)、元學(xué)習(xí)等技術(shù),能更快地適應(yīng)新的應(yīng)用場(chǎng)景和任務(wù)需求。
3、先進(jìn)的模態(tài)處理:在圖像理解方面,利用Siglip-400m技術(shù),將圖像轉(zhuǎn)化為易于理解的token,在OpenCompass評(píng)測(cè)中以高分領(lǐng)先。在語(yǔ)音理解方面,搭載了Qwen2-Audio/Whisper-Large-V3的encoder,能夠理解中英文語(yǔ)音輸入,并支持多輪對(duì)話。
三、性能優(yōu)勢(shì)
1、卓越的圖像理解:在OpenCompass、MME等測(cè)試中,展現(xiàn)了超強(qiáng)的圖像分析能力,能夠快速且準(zhǔn)確地識(shí)別和理解圖像內(nèi)容,在場(chǎng)景理解、光學(xué)字符識(shí)別等應(yīng)用中表現(xiàn)優(yōu)異,精度在同行中處于領(lǐng)先地位,甚至能在一些測(cè)試集中超越34B模型。
2、出色的文本理解:在C-eval、MMLU等多個(gè)權(quán)威測(cè)試中取得了最佳結(jié)果,將上一代14B大模型的能力壓縮至3B規(guī)模,同時(shí)顯著降低計(jì)算成本,實(shí)現(xiàn)了性能與資源利用的最佳平衡,確保用戶獲得高效的文本處理體驗(yàn)。
3、良好的語(yǔ)音理解:支持中文和英文的語(yǔ)音輸入,能夠熟練應(yīng)對(duì)復(fù)雜的多輪對(duì)話場(chǎng)景,可通過(guò)語(yǔ)音輸入與模型進(jìn)行自然互動(dòng),實(shí)現(xiàn)更自然和流暢的溝通體驗(yàn)。
4、快速的推理速度:單模態(tài)版本Megrez-3B-Instruct在推理速度上相比同類精度模型領(lǐng)先高達(dá)300%,即使在復(fù)雜場(chǎng)景下也能流暢運(yùn)行,能讓用戶在各類實(shí)時(shí)應(yīng)用中獲得更及時(shí)的響應(yīng),提升工作和生活的效率。
四、應(yīng)用場(chǎng)景
- 智能家居領(lǐng)域:可應(yīng)用于智能音箱、智能電視等設(shè)備的智能助手中,用戶能通過(guò)語(yǔ)音、文字或圖片與智能助手進(jìn)行交互,獲取信息、設(shè)置提醒、控制設(shè)備等。
- 媒體領(lǐng)域:用于圖像、音頻和文本內(nèi)容的分析和理解,能更準(zhǔn)確地識(shí)別視頻中的關(guān)鍵幀、提取音頻中的關(guān)鍵詞、生成文本摘要等,為媒體的內(nèi)容推薦和搜索提供支持。
- 自動(dòng)駕駛領(lǐng)域:可用于車輛的環(huán)境感知和決策控制,融合圖像、雷達(dá)、激光雷達(dá)等多種傳感器的數(shù)據(jù),更準(zhǔn)確地識(shí)別道路標(biāo)志、行人、障礙物等,為車輛的安全行駛提供保障。
- 醫(yī)療健康領(lǐng)域:用于醫(yī)學(xué)影像的分析、病歷報(bào)告的生成等,輔助醫(yī)生進(jìn)行疾病診斷和治療方案的制定,自動(dòng)識(shí)別X光片、CT掃描等醫(yī)學(xué)影像中的異常區(qū)域,并提供初步的診斷意見。
- 教育領(lǐng)域:用于個(gè)性化學(xué)習(xí)系統(tǒng)的開發(fā),根據(jù)學(xué)生的學(xué)習(xí)行為、學(xué)習(xí)進(jìn)度、興趣偏好和知識(shí)水平等信息,為學(xué)生提供定制化的學(xué)習(xí)資源和教學(xué)策略。
五、快速使用
1. 安裝相關(guān)依賴
安裝所需的依賴庫(kù)
git clone https://github.com/infinigence/Infini-Megrez-Omni.git
pip install -r requirements.txt
音頻功能依賴`ffmpeg`進(jìn)行音頻處理,如果使用Debian相關(guān)系統(tǒng),可以通過(guò)以下命令安裝
sudo apt-get install ffmpeg
對(duì)于其他操作系統(tǒng),請(qǐng)參考`ffmpeg`官方文檔進(jìn)行安裝。
2. 下載模型權(quán)重文件
使用 modelscope 中的 snapshot_download 函數(shù)下載模型(提前安裝modelscope :pip install modelscope)。第一個(gè)參數(shù)為模型名稱,參數(shù) cache_dir 用于指定模型的下載路徑。在 /root/autodl-tmp 路徑下新建 download.py 文件,并在其中輸入以下內(nèi)容:
# 模型下載
from modelscope import snapshot_download
model_dir = snapshot_download('InfiniAI/Megrez-3B-Omni', cache_dir='/root/autodl-tmp', revision='master')
運(yùn)行 python /root/autodl-tmp/download.py 執(zhí)行下載。
3. 使用transformers 推理模型
使用多模態(tài)數(shù)據(jù)進(jìn)行多輪對(duì)話,示例代碼如下(請(qǐng)將`<PATH_TO_PRETRAINED_MODEL>`替換為下載的模型權(quán)重的路徑):
import torch
from transformers import AutoModelForCausalLM
path = "/mnt/algorithm/user_dir/zhoudong/workspace/models/megrez-o" # Change this to the path of the model.
model = (
AutoModelForCausalLM.from_pretrained(
path,
trust_remote_code=True,
torch_dtype=torch.bfloat16,
attn_implementatinotallow="flash_attention_2",
)
.eval()
.cuda()
)
prompt = "hi" * (128 - 1)
# Chat with text and image
messages = [
{
"role": "user",
"content": {
"text": prompt,
"image": "./data/sample_image.jpg",
},
},
]
# Chat with audio and image
# messages = [
# {
# "role": "user",
# "content": {
# "image": "./data/sample_image.jpg",
# "audio": "./data/sample_audio.m4a",
# },
# },
# ]
MAX_NEW_TOKENS = 100
response = model.chat(
messages,
sampling=False,
max_new_tokens=MAX_NEW_TOKENS,
)
print(response)
4. 使用vLLM進(jìn)行推理
首先安裝vLLM及其相關(guān)依賴(需要特定版本以確保兼容性):
pip install vLLM==0.6.3.post1 flash_attn==2.5.8 xformers==0.0.27.post2
推理腳本如下:
from PIL import Image
from vllm import LLM
from vllm import ModelRegistry
from vllm import SamplingParams
from megrezo import MegrezOModel
ModelRegistry.register_model("MegrezO", MegrezOModel)
# Load the model.
# model_path = "{{PATH_TO_HF_PRETRAINED_MODEL}}" # Change this to the path of the model.
model_path = "/mnt/algorithm/user_dir/zhoudong/workspace/models/megrez-o" # Change this to the path of the model.
llm = LLM(
model_path,
trust_remote_code=True,
gpu_memory_utilizatinotallow=0.5,
)
sampling_params = SamplingParams(
temperature=0,
max_tokens=1000,
repetition_penalty=1.2,
stop=["<|turn_end|>", "<|eos|>"],
)
img = Image.open("../data/sample_image.jpg")
conversation = [
{
"role": "user",
"content": {
"text": "圖片的內(nèi)容是什么?",
"image": img,
},
},
]
# Convert the conversation to vLLM acceptable format.
prompt = llm.get_tokenizer().apply_chat_template(
conversation,
tokenize=False,
add_generation_prompt=True,
)
vllm_inputs = [
{
"prompt": prompt,
"multi_modal_data": {
"image": img,
},
}
]
# Generate the outputs.
outputs = llm.generate(
vllm_inputs,
sampling_params,
)
# Print the outputs.
for output in outputs:
print(output.outputs[0].text)
5. 在線體驗(yàn) Gradio 應(yīng)用
在線Demo:??https://huggingface.co/spaces/Infinigence/Megrez-3B-Omni??
用戶可以直接在網(wǎng)頁(yè)上輸入文本或上傳圖片、音頻,與模型進(jìn)行交互,模型會(huì)根據(jù)輸入的多模態(tài)信息生成相應(yīng)的回復(fù)。
6. 啟動(dòng) Gradio 應(yīng)用
您需要在命令行中指定 model_path 和 port。model_path 是模型的路徑,port 是本地服務(wù)器的端口號(hào)。默認(rèn)情況下,port 是 7860。
python gradio_app.py --model_path {model_path} --port {port}
然后,您可以在瀏覽器中訪問(wèn)?? http://localhost:7860 ??與模型對(duì)話。
六、結(jié)語(yǔ)
Megrez-3B-Omni的發(fā)布是人工智能領(lǐng)域的一次重大突破,它為端側(cè)設(shè)備的智能化處理樹立了全新標(biāo)桿,開啟了端側(cè)全模態(tài)理解的新時(shí)代。無(wú)問(wèn)芯穹的這一創(chuàng)新成果不僅展示了其在智能設(shè)備領(lǐng)域的強(qiáng)大實(shí)力,也為廣大開發(fā)者和用戶提供了一個(gè)極具潛力的工具。
項(xiàng)目地址
- Github:??https://github.com/infinigence/Infini-Megrez??
- HuggingFace:??https://huggingface.co/Infinigence/Megrez-3B-Omni??
- Infini-AI異構(gòu)云:??https://cloud.infini-ai.com/genstudio/model/mo-c73owqiotql7lozr??
- ModelScope:??https://www.modelscope.cn/models/InfiniAI/Megrez-3B-Omni??
- Modelers:???https://modelers.cn/models/INFINIGENCE-AI/Megrez-3B-Omni??
本文轉(zhuǎn)載自??小兵的AI視界??,作者: AGI小兵 ????
