模型概述
模型特點
模型能力
使用案例
🚀 明輕全模態模型(Ming-Lite-Omni)
明輕全模態模型(Ming-Lite-Omni)是一個輕量級的統一多模態模型,能夠高效處理圖像、文本、音頻和視頻等多種模態的數據,在語音和圖像生成方面表現出色,為多模態感知和生成任務提供了強大的解決方案。
📑 技術報告|📖 項目主頁 |🤗 Hugging Face| 🤖 ModelScope
🚀 快速開始
請按照以下步驟下載並運行明輕全模態模型(Ming-Lite-Omni):
- 下載模型:參考模型下載部分的說明進行操作。
- 安裝依賴:在Python環境中執行以下命令安裝所需的依賴庫。
pip install -r requirements.txt
pip install data/matcha_tts-0.0.5.1-cp38-cp38-linux_x86_64.whl
pip install diffusers==0.33.0
pip install nvidia-cublas-cu12==12.4.5.8 # for H20
注意:我們在配備CUDA 12.2的NVIDIA H800 - 80GB硬件上測試了以下示例。以bfloat16格式加載inclusionAI/Ming-Lite-Omni
模型大約需要40890MB的內存。
3. 運行代碼示例:參考使用示例部分的代碼示例進行模型的調用和推理。
✨ 主要特性
- 統一全模態感知:基於Ling的MoE架構大語言模型,通過特定模態的路由機制解決任務衝突,確保不同模態的令牌能夠在統一框架下高效整合。
- 統一感知與生成:實現了多模態數據的統一理解和生成,能夠在生成過程中準確解讀多模態指令和用戶意圖,提升生成質量和多任務的可用性。
- 創新生成能力:具備感知所有模態數據的能力,並能同時生成高質量的文本、自然流暢的語音和生動逼真的圖像,在圖像感知、視聽交互和圖像生成等跨模態任務中表現卓越。
📦 安裝指南
環境依賴安裝
在Python環境中執行以下命令安裝所需的依賴庫:
pip install -r requirements.txt
pip install data/matcha_tts-0.0.5.1-cp38-cp38-linux_x86_64.whl
pip install diffusers==0.33.0
pip install nvidia-cublas-cu12==12.4.5.8 # for H20
💻 使用示例
基礎用法
import os
import torch
from transformers import AutoProcessor, GenerationConfig
from modeling_bailingmm import BailingMMNativeForConditionalGeneration
# 構建模型
model = BailingMMNativeForConditionalGeneration.from_pretrained(
"inclusionAI/Ming-Lite-Omni",
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True
).to("cuda")
assets_path = YOUR_ASSETS_PATH
# 構建處理器
processor = AutoProcessor.from_pretrained("inclusionAI/Ming-Lite-Omni", trust_remote_code=True)
高級用法
問答任務
# qa
messages = [
{
"role": "HUMAN",
"content": [
{"type": "text", "text": "請詳細介紹鸚鵡的生活習性。"}
],
},
]
# 輸出:
# 鸚鵡是一種非常聰明和社交性強的鳥類,它們的生活習性非常豐富和有趣。以下是一些關於鸚鵡生活習性的詳細介紹:
# ### 1. **棲息地**
# 鸚鵡主要分佈在熱帶和亞熱帶地區,包括非洲、亞洲、澳大利亞和南美洲。它們通常生活在森林、草原、沙漠和城市環境中。不同種類的鸚鵡對棲息地的要求有所不同,但大多數鸚鵡喜歡有豐富植被和水源的地方。
# ### 2. **飲食**
# 鸚鵡是雜食性動物,它們的飲食非常多樣化。它們的食物包括種子、堅果、水果、蔬菜、花蜜和昆蟲。鸚鵡的喙非常強壯,能夠輕鬆地打開堅硬的果殼和堅果。一些鸚鵡還會吃泥土或沙子,以幫助消化和補充礦物質。
# ......
圖像問答任務
# image qa
messages = [
{
"role": "HUMAN",
"content": [
{"type": "image", "image": os.path.join(assets_path, "flowers.jpg")},
{"type": "text", "text": "What kind of flower is this?"},
],
},
]
# 輸出:
# The flowers in this image are forget - me - nots. These delicate blooms are known for their small, five - petaled flowers that come in various shades of blue, pink, and white.
視頻問答任務
# video qa
messages = [
{
"role": "HUMAN",
"content": [
{"type": "video", "video": os.path.join(assets_path, "yoga.mp4")},
{"type": "text", "text": "What is the woman doing?"},
],
},
]
# 輸出:
# The image shows a woman performing a yoga pose on a rooftop. She's in a dynamic yoga pose, with her arms and legs extended in various positions.
多輪對話任務
# multi - turn chat
messages = [
{
"role": "HUMAN",
"content": [
{"type": "text", "text": "中國的首都是哪裡?"},
],
},
{
"role": "ASSISTANT",
"content": [
{"type": "text", "text": "北京"},
],
},
{
"role": "HUMAN",
"content": [
{"type": "text", "text": "它的佔地面積是多少?有多少常住人口?"},
],
},
]
# 輸出:
# 北京市的總面積約為16,410.54平方公里,常住人口約為21,542,000人。
推理準備與生成調用
# 推理準備
text = processor.apply_chat_template(messages, add_generation_prompt=True)
image_inputs, video_inputs, audio_inputs = processor.process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
audios=audio_inputs,
return_tensors="pt",
)
inputs = inputs.to(model.device)
for k in inputs.keys():
if k == "pixel_values" or k == "pixel_values_videos" or k == "audio_feats":
inputs[k] = inputs[k].to(dtype=torch.bfloat16)
# 調用生成方法
generation_config = GenerationConfig.from_dict({'no_repeat_ngram_size': 10})
generated_ids = model.generate(
**inputs,
max_new_tokens=512,
use_cache=True,
eos_token_id=processor.gen_terminator,
generation_config=generation_config,
)
generated_ids_trimmed = [
out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(output_text)
音頻任務
自動語音識別(ASR)
# ASR
messages = [
{
"role": "HUMAN",
"content": [
{"type": "text", "text": "Please recognize the language of this speech and transcribe it. Format: oral."},
{"type": "audio", "audio": 'data/wavs/BAC009S0915W0292.wav'},
],
},
]
# 我們在ASR任務中使用whisper編碼器,因此需要修改上述代碼
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
audios=audio_inputs,
return_tensors="pt",
audio_kwargs={'use_whisper_encoder': True}
)
outputs = model.generate(
**inputs,
max_new_tokens=512,
use_cache=True,
eos_token_id=processor.gen_terminator,
generation_config=generation_config,
use_whisper_encoder=True
)
語音到語音轉換
# speech2speech
messages = [
{
"role": "HUMAN",
"content": [
{"type": "audio", "audio": 'data/wavs/speechQA_sample.wav'},
],
},
]
generation_config = GenerationConfig.from_dict({
'output_hidden_states': True,
'return_dict_in_generate': True,
'no_repeat_ngram_size': 10}
)
outputs = model.generate(
**inputs,
max_new_tokens=512,
use_cache=True,
eos_token_id=processor.gen_terminator,
generation_config=generation_config,
us
📚 詳細文檔
模型信息
屬性 | 詳情 |
---|---|
基礎模型 | inclusionAI/Ling-lite |
許可證 | MIT |
任務類型 | 任意到任意(any-to-any) |
庫名稱 | transformers |
模型下載
你可以從Hugging Face和ModelScope平臺下載該模型。
模型 | 輸入模態 | 輸出模態 | 下載鏈接 |
---|---|---|---|
Ming-Lite-Omni | 圖像、文本、視頻、音頻 | 圖像、文本、音頻 | 🤗 HuggingFace 🤖 ModelScope |
注意:如果你在中國內地,強烈建議你從🤖 ModelScope下載我們的模型。
使用案例
更多演示案例請參考我們的項目主頁。
評估結果
明輕全模態模型(Ming-Lite-Omni)在圖像感知、視聽交互和圖像生成等跨模態任務中表現出色。具體評估結果如下:
圖像基準測試
基準測試 | Ming-lite-omni | Qwen2.5-VL-7B-Instruct | InternVL2.5-8B-MPO |
---|---|---|---|
AI2D | 83.1 | 84.4 | 84.5 |
HallusionBench | 55.0 | 55.8 | 51.7 |
MMBench_TEST_V11 | 80.8 | 82.8 | 82.0 |
MMMU | 56.3 | 56.6 | 54.8 |
MMStar | 64.7 | 65.3 | 65.2 |
MMVet | 71.3 | 71.6 | 68.1 |
MathVista | 71.6 | 68.1 | 67.9 |
OCRBench | 88.4 | 87.8 | 88.2 |
平均 | 71.4 | 71.5 | 70.3 |
百科基準測試
目標識別 | Ming-lite-omni | Qwen2.5-VL-7B-Instruct |
---|---|---|
植物 | 54.96 | 47.8 |
動物 | 56.7 | 50.85 |
車輛 | 41.91 | 42.29 |
食物與食材 | 62.28 | 54.09 |
菜餚 | 44.3 | 39.07 |
通用 | 91.08 | 92.42 |
平均 | 58.54 | 54.43 |
視頻基準測試
基準測試 | Ming-lite-omni | Qwen2.5VL-7B-Instruct |
---|---|---|
VideoMME | 67.0 | 67.3 |
MVBench | 67.7 | 67.4 |
Video-MMMU | 46.3 | 47.4 |
LongVideoBench | 56.6 | 54.7 |
平均 | 59.4 | 59.2 |
注意:所有模型均基於128個均勻採樣的幀進行評估。
音頻基準測試
語音問答(SpeechQA)
模型 | 平均 | AlpacaEval | CommonEval | SD-QA | MMSU | OpenBookQA | IFEval | AdvBench |
---|---|---|---|---|---|---|---|---|
Qwen2-Audio-chat | 3.545 | 3.69 | 3.40 | 35.35 | 35.43 | 49.01 | 22.57 | 98.85 |
Baichuan-Audio | 3.695 | 4.00 | 3.39 | 49.64 | 48.80 | 63.30 | 41.32 | 86.73 |
GLM-4-Voice | 3.77 | 4.06 | 3.48 | 43.31 | 40.11 | 52.97 | 24.91 | 88.08 |
Kimi-Audio | 4.215 | 4.46 | 3.97 | 63.12 | 62.17 | 83.52 | 61.10 | 100.00 |
Qwen2.5-Omni | 4.21 | 4.49 | 3.93 | 55.71 | 61.32 | 81.10 | 52.87 | 99.42 |
Ming-lite-omni | 4.34 | 4.63 | 4.06 | 58.84 | 47.53 | 61.98 | 58.36 | 99.04 |
自動語音識別(ASR)
模型 | aishell1 | aishell2_android | aishell2_ios | cv15_zh | fleurs_zh | wenetspeech_meeting | wenetspeech_net | librispeech_test_clean | librispeech_test_other | multilingual_librispeech | cv15_en | fleurs_en | voxpopuli_v1.0_en |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ming-lite-omni | 1.47 | 2.55 | 2.52 | 6.31 | 2.96 | 5.95 | 5.46 | 1.44 | 2.80 | 4.15 | 6.89 | 3.39 | 5.80 |
Qwen2.-Omni | 1.18 | 2.75 | 2.63 | 5.20 | 3.00 | 5.90 | 7.70 | 1.80 | 3.40 | 7.56 | 7.60 | 4.10 | 5.80 |
Qwen2-Audio | 1.53 | 2.92 | 2.92 | 6.90 | 7.50 | 7.16 | 8.42 | 1.60 | 3.60 | 5.40 | 8.60 | 6.90 | 6.84 |
Kimi-Audio | 0.60 | 2.64 | 2.56 | 7.21 | 2.69 | 6.28 | 5.37 | 1.28 | 2.42 | 5.88 | 10.31 | 4.44 | 7.97 |
信息檢索基準測試
模型 | InfoSeek_H-mean | InfoSeek_unseen_question | InfoSeek_unseen_entity |
---|---|---|---|
GPT-4o | 36.05 | - | - |
PaLI-X | 22.06 | 23.5 | 20.8 |
Qwen2.5-vl-32B | 19.35 | 20.55 | 18.28 |
Ming-lite-omni | 27.7 | 30.4 | 25.4 |
OCR基準測試
模型 | Ming-lite-omni | Qwen2.5-VL-7B-Instruct |
---|---|---|
ChartQA_TEST | 85.1 | 87.3 |
DocVQA_TEST | 93 | 95.7 |
OCRBenchV2_en/zh | 53.3/52 | 56.3/57.2 |
OmniDocBench↓ | 34/34.4 | 30.8/39.8 |
TextVQA_VAL | 82.8 | 84.9 |
GUI基準測試
模型 | Ming-lite-omni | InternVL3 8B | Qwen2.5-VL-7B-Instruct |
---|---|---|---|
ScreenSpot | 82.1 | 79.5 | 78.9* |
ScreenSpot-V2 | 84.1 | 81.4 | - |
AITZ(EM) | 66.6 | - | 57.6* |
注意:* 表示復現結果。
統一生成基準測試
模型 | single_object | two_object | counting | colors | position | color_attr | GENEVAL | DPGBench | FID↓ |
---|---|---|---|---|---|---|---|---|---|
Ming-lite-omni | 0.9875 | 0.7727 | 0.6812 | 0.7872 | 0.31 | 0.29 | 0.64 | 81.72 | 4.85 |
Metaquery-XL | - | - | - | - | - | - | 0.61 | 82.05 | 6.02 |
SDv2.1 | 0.98 | 0.51 | 0.44 | 0.85 | 0.07 | 0.17 | 0.50 | 68.09 | 26.96 |
Emu3-Gen | 0.98 | 0.71 | 0.34 | 0.81 | 0.17 | 0.21 | 0.54 | 80.60 | - |
SDXL | 0.98 | 0.74 | 0.39 | 0.85 | 0.15 | 0.23 | 0.55 | 74.65 | 8.76 |
Janus | 0.97 | 0.68 | 0.30 | 0.84 | 0.46 | 0.42 | 0.61 | 79.68 | 10.10 |
JanusFlow | - | - | - | - | - | - | 0.63 | 80.09 | 9.51 |
更多全面的評估結果請參考我們的技術報告。
🔧 技術細節
明輕全模態模型(Ming-lite-omni)是Ming-omni的輕量級版本,它基於Ling-lite開發,擁有28億個激活參數。該模型採用專用編碼器從不同模態中提取令牌,然後由配備新提出的特定模態路由器的MoE架構Ling進行處理。這種設計使得單個模型能夠在統一框架內高效處理和融合多模態輸入,從而支持多樣化的任務,無需單獨的模型、特定任務的微調或結構重新設計。
重要的是,Ming-lite-omni超越了傳統的多模態模型,支持音頻和圖像生成。這是通過集成先進的音頻解碼器實現自然語音生成,以及使用Ming-Lite-Uni實現高質量圖像生成來完成的。這些功能還使模型能夠進行上下文感知的聊天、執行文本到語音轉換和進行多功能圖像編輯。我們的實驗結果表明,Ming-lite-omni為所有模態的統一感知和生成提供了強大的解決方案。
值得注意的是,據我們所知,Ming-lite-omni是第一個在模態支持方面與GPT-4o相匹配的開源模型,我們發佈了所有代碼和模型權重,以鼓勵社區進行進一步的研究和開發。
📄 許可證
本項目採用MIT許可證。具體許可證信息請參考相關文件。









