Magma:Microsoft推出的マルチモーダルAIエージェント基盤モデル 185

小编 ·

Magma:Microsoft推出的マルチモーダルAIエージェント基盤モデル

MagmaはMicrosoftが発表したマルチモーダルAIエージェント基盤モデルで、バーチャル環境と現実環境の両方での複雑なインタラクションを処理できます。画像キャプションとQA、動画キャプションとQA、UIナビゲーション、ロボット操作など多様なタスクに対応します。

Magma:Microsoft推出的マルチモーダルAIエージェント基盤モデル

Magmaとは?

Magmaは、Microsoftが発表したマルチモーダルなaiエージェント基盤モデルで、仮想環境と現実環境の両方における複雑なインタラクションを処理できます。画像キャプション生成および質問応答、動画キャプション生成および質問応答、UIナビゲーション、ロボット操作など、さまざまなタスクを実現します。

Magmaの機能特徴

  • マルチモーダル能力:画像キャプション生成および質問応答、動画キャプション生成および質問応答、UIナビゲーション、ロボット操作などのタスクをサポート。

  • デジタル世界と物理世界のインタラクション:仮想環境と現実環境の両方におけるタスクを処理可能。

  • 汎用性:単一のモデルで汎用的な画像・動画理解能力を持ち、目標駆動型の視覚プランニングと動作を生成可能。

  • 先進的な性能:マルチモーダルタスク、特に空間理解と推論の分野で優れた性能を発揮。

  • スケーラブルな事前学習戦略:ラベルなしの動画から学習可能で、強力な汎化能力を持つ。

Magmaの技術原理

  • マルチモーダル事前学習:画像、動画、動作データを統合フレームワークで大規模に事前学習し、モーダル間のつながりを学習。

  • Set-of-Mark (SoM):画像内の操作可能なオブジェクトをマークし、モデルが動作を実行できるよう支援。

  • Trace-of-Mark (ToM):動画内の物体の動きの軌跡をマークし、時間的な動的的理解能力を強化。

  • 視覚と言語の統合:畳み込みネットワークを用いて視覚情報をトークン列にエンコードし、言語モデルと組み合わせることで、動作または言語記述を生成。

  • 汎化とファインチューニング:事前学習後のモデルはゼロショット汎化能力を持ち、ファインチューニングによりさらに性能を向上可能。

  • タスク横断的な適応:UIナビゲーション、ロボット操作、画像・動画理解など多様なタスクに適応し、強力な汎化能力を示す。

Magma的技术原理.jpg

インストールと使用方法

プロジェクトをクローン:

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の応用分野

  • スマート監視とセキュリティ:映像ストリームをリアルタイムで分析し、行動を予測することでセキュリティ監視能力を向上。

  • 自動運転:マルチモーダルデータを処理し、自動運転システムを支援。

  • ロボット操作:複雑なタスクをロボットに実行させ、さまざまなハードウェアに適応。

  • UIナビゲーションとインタラクション:ウェブページやデバイス画面の複数ステップの操作を効率的に実行。

  • 教育と個別化学習:生徒の成績を分析し、カスタマイズされた指導計画を提供。

  • 医療診断:画像と病歴を組み合わせて、医師が診療計画を立てることを支援。

  • コンテンツ制作:画像生成とテキスト作成を組み合わせて、創造的なインスピレーションを提供。

  • スマートアシスタント:仮想アシスタントにタスクナビゲーションを提供し、複雑な操作を指示。

  • 動画分析と予測:動画の内容を記述し、次の動作を予測。

  • スマートホームと自動化:家庭用ロボットが新しいタスクを学習し、自動化レベルを向上。

Magma GitHubリポジトリ:https://github.com/microsoft/Magma

Magmaプロジェクト公式サイト:https://microsoft.github.io/Magma/

Magma Arxiv論文:https://www.arxiv.org/pdf/2502.13130