Magma:微軟推出的多模態(tài)AI代理基礎(chǔ)模型,可實(shí)現(xiàn)多場景代理
Magma是什么?
Magma 是微軟推出的一款多模態(tài) ai 代理基礎(chǔ)模型,能夠處理虛擬和現(xiàn)實(shí)環(huán)境中的復(fù)雜交互,實(shí)現(xiàn)圖像字幕和問答、視頻字幕和問答、UI導(dǎo)航、機(jī)器人操作等多種任務(wù)。
Magma功能特點(diǎn)
多模態(tài)能力:支持圖像字幕和問答、視頻字幕和問答、UI 導(dǎo)航、機(jī)器人操作等任務(wù)。
數(shù)字與物理世界的交互:能夠處理虛擬和現(xiàn)實(shí)環(huán)境中的任務(wù)。
多功能性:單一模型具備通用的圖像和視頻理解能力,同時能生成目標(biāo)驅(qū)動的視覺計劃和動作。
先進(jìn)性能:在多模態(tài)任務(wù)上表現(xiàn)出色,特別是在空間理解和推理方面。
可擴(kuò)展的預(yù)訓(xùn)練策略:能夠從未標(biāo)記的視頻中學(xué)習(xí),具有很強(qiáng)的泛化能力。
Magma的技術(shù)原理
多模態(tài)預(yù)訓(xùn)練:結(jié)合圖像、視頻和動作數(shù)據(jù),通過統(tǒng)一框架進(jìn)行大規(guī)模預(yù)訓(xùn)練,學(xué)習(xí)跨模態(tài)的連接。
Set-of-Mark (SoM):標(biāo)記圖像中的可操作對象,幫助模型實(shí)現(xiàn)動作落地。
Trace-of-Mark (ToM):標(biāo)記視頻中物體的運(yùn)動軌跡,增強(qiáng)時間動態(tài)理解能力。
視覺與語言結(jié)合:使用卷積網(wǎng)絡(luò)將視覺信息編碼為標(biāo)記序列,與語言模型結(jié)合,生成動作或語言描述。
泛化與微調(diào):預(yù)訓(xùn)練后的模型具備零樣本泛化能力,可通過微調(diào)進(jìn)一步提升性能。
跨任務(wù)適應(yīng):適用于多種任務(wù)(如UI導(dǎo)航、機(jī)器人操作、圖像和視頻理解),展現(xiàn)出強(qiáng)大的泛化能力。
安裝與使用
克隆項(xiàng)目:
git clone https://github.com/microsoft/Magma.git cd Magma
安裝依賴:
conda create -n magma python=3.10 -y conda activate magma pip install --upgrade pip pip install -e .
推理例子
from PIL import Image import torch from transformers import AutoModelForCausalLM, AutoProcessor model = AutoModelForCausalLM.from_pretrained("microsoft/Magma-8B", trust_remote_code=True) processor = AutoProcessor.from_pretrained("microsoft/Magma-8B", trust_remote_code=True) model.to("cuda") image = Image.open("example.jpg").convert("RGB") convs = [ {"role": "system", "content": "You are an agent that can see, talk and act."}, {"role": "user", "content": "\nWhat is in the image?"} ] prompt = processor.tokenizer.apply_chat_template(convs, tokenize=False, add_generation_prompt=True) inputs = processor(images=[image], texts=prompt, return_tensors="pt").to("cuda") with torch.inference_mode(): generate_ids = model.generate(**inputs) response = processor.decode(generate_ids[0], skip_special_tokens=True).strip() print(response)
Magma的應(yīng)用領(lǐng)域
智能監(jiān)控與安防:實(shí)時分析視頻流,預(yù)測行為,提升安全監(jiān)控能力。
自動駕駛:處理多模態(tài)數(shù)據(jù),輔助自動駕駛系統(tǒng)。
機(jī)器人操作:指導(dǎo)機(jī)器人完成復(fù)雜任務(wù),適應(yīng)不同硬件。
UI導(dǎo)航與交互:高效完成網(wǎng)頁或設(shè)備界面的多步驟操作。
教育與個性化學(xué)習(xí):分析學(xué)生表現(xiàn),提供定制化教學(xué)方案。
醫(yī)療診斷:結(jié)合影像和病歷,輔助醫(yī)生制定診療方案。
內(nèi)容創(chuàng)作:結(jié)合圖像生成和文本創(chuàng)作,提供創(chuàng)意靈感。
智能助手:為虛擬助手提供任務(wù)導(dǎo)航,指導(dǎo)復(fù)雜操作。
視頻分析與預(yù)測:描述視頻內(nèi)容,預(yù)測下一步動作。
智能家居與自動化:幫助家庭機(jī)器人學(xué)習(xí)新任務(wù),提升自動化水平。
Magma GitHub 倉庫:https://github.com/microsoft/Magma
Magma項(xiàng)目官網(wǎng):https://microsoft.github.io/Magma/
MagmaArxiv論文:https://www.arxiv.org/pdf/2502.13130