M3-Agentは、ByteDance SEEDチームによって開発されたマルチモーダル知性体フレームワークです。その中核となる機能は長期記憶機能であり、人間のようにリアルタイムの映像(視聴)や音声(聴取)の入力を処理することで記憶を構築し、常に更新することができる。この記憶システムは、単に起こったことを記録するだけでなく(状況記憶)、そこから知識や概念を抽出する(意味記憶)。 M3-Agentはこれらの情報をマルチモーダルな "エンティティ "を中心とした知識グラフに照合し、より深く首尾一貫した環境の理解を提供します。 ユーザーからの指示や質問を受けると、M3-Agentは自律的に何度も思考と推論を繰り返し、膨大な長期記憶から関連情報を取り出し、最終的にタスクを完了させたり、答えを出したりすることができる。この技術は、長時間の動画情報を処理・記憶することが困難な既存モデルの問題点を解決するものであり、ロボット工学やパーソナルアシスタントなど、幅広い分野への応用が期待される。
機能一覧
- マルチモーダル入力処理:: リアルタイムのビデオとオーディオストリームを同時に受信し、理解する能力。
- 長期記憶の構築受信した情報を長期記憶に変換する能力で、2つのカテゴリーに分けられる:
- 状況記憶:: 具体的な発生とオリジナルの内容の文書化。
- 意味記憶出来事から、エンティティ(人、物など)やエンティティ間の関係に関する抽象的な知識を抽出する。
- 実体中心の記憶構造:記憶は、情報の一貫性と関連性を保証するマルチモーダルな知識グラフを形成するために、エンティティの中核を中心に組織化される。
- 自律的推論と検索コマンドを受けると、自律的に何度も反復思考を行い、メモリーバンクから最も関連性の高い情報を取り出して意思決定に役立てる。
- 学習の最適化強化学習を通じて、記憶検索と推論における知能を訓練し、より高いタスク成功率を達成する。
- リーディング・パフォーマンスGemini-1.5-proやGPT-4oのような主要なモデルよりも、いくつかの長時間のビデオクイズベンチマークにおいて著しく高い精度。
ヘルプの使用
M3-Agentのオペレーションは、2つのコアプロセスに分かれている:暗記とコントロール。.記憶プロセスはビデオの分析と知識ベースの構築を担当し、制御プロセスは知識ベースから情報を検索し、ユーザーの質問に基づいて回答を生成する。
ハードウェア要件
- 完全な実行(メモリプロセスを含む):: 1台のA100(80GBビデオメモリ)または4台のRTX 3090(24GBビデオメモリ)を搭載したサーバーが必要です。
- 推論の実行のみ(制御プロセス)最低16GBのビデオメモリを搭載したGPUが必要です。
- ハードディスク容量モデルとプロセスのキャッシュファイルには、最低200GBの空き容量が必要です。
環境設定
まず、コード・リポジトリをクローンし、ベース環境をインストールする必要がある。
# 执行设置脚本
bash setup.sh
# 安装特定版本的transformers库
pip install git+https://github.com/huggingface/transformers@f742a644ca32e65758c3adb36225aef1731bd2a8
# 安装Qwen-Omni工具库
pip install qwen-omni-utils==0.0.4
ステップ1:暗記プロセス(暗記)
この処理は、ビデオコンテンツを構造化されたメモリーマップに変換し、ローカルに保存するものである。公式に提供されているM3-Benchデータセットを使用する場合、データ処理ステップの一部をスキップし、公式に処理された中間ファイルとメモリーマップを直接ダウンロードすることができます。
1.ビデオスライス
このモデルは短いビデオクリップを扱うので、まず長いビデオを30秒のセグメントにカットする必要がある。
#!/bin/bash
# 定义视频文件路径变量
video="robot/bedroom_01"
input="data/videos/$video.mp4"
# 创建用于存放切片的目录
mkdir -p "data/clips/$video"
# 获取视频总时长
duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$input")
duration_seconds=$(echo "$duration" | awk '{print int($1)}')
# 计算需要切成多少段
segments=$((duration_seconds / 30 + 1))
# 循环切片
for ((i=0; i<segments; i++)); do
start=$((i * 30))
output="data/clips/$video/$i.mp4"
# 使用ffmpeg命令进行切片
ffmpeg -ss $start -i "$input" -t 30 -c copy "${output}"
done
2.データ設定ファイルの準備
JSONL形式のファイルを作成する。data/data.jsonl
各行にはビデオに関する情報が記述されている。
{"id": "bedroom_01", "video_path": "data/videos/robot/bedroom_01.mp4", "clip_path": "data/videos/clips/bedroom_01", "mem_path": "data/videos/memory_graphs/bedroom_01.pkl", "intermediate_path": "data/videos/intermediate_outputs/robot/bedroom_01"}
3.中間出力の生成(オプション)
このステップでは、顔検出ツールと話者認識ツールを使用して、思い出を構築するために使用される中間ファイルを生成します。Hugging Faceから公式に処理されたものをダウンロードした場合intermediate_outputs
このステップは省略できる。
# 首先下载音频嵌入模型和speakerlab库存放到指定目录
# 结构应如下:
# m3-agent/
# ├── models/
# │ └── pretrained_eres2netv2.ckpt
# └── speakerlab/
python m3_agent/memorization_intermediate_outputs.py \
--data_file data/data.jsonl
4.メモリーマップの作成
M3-Agent-Memorisationは、最終的なメモリー・マッピング・ファイル(.pkl
(フォーマット)。
# 首先从Hugging Face下载M3-Agent-Memorization模型
python m3_agent/memorization_memory_graphs.py \
--data_file data/data.jsonl
ステップ2:制御プロセス(コントロール)
メモリーマップが作成されると、質疑応答が始まる。
1.環境設定の追加
コントロール・プロセスには、特定のバージョンのライブラリーが必要だ。
bash setup.sh
pip install transformers==4.51.0
pip install vllm==0.8.4
pip install numpy==1.26.4
2.質問と評価
回答はM3-Agentのコントロールモデル(M3-Agent-Control)を使用して生成され、GPT-4oを使用して回答の品質を評価することができます。
# 首先从Hugging Face下载M3-Agent-Control模型
python m3_agent/control.py \
--data_file data/annotations/robot.json
この中にはdata/annotations/robot.json
このファイルには、ビデオに対する質問が含まれています。このファイルを修正して、独自の質問をすることもできます。
視覚記憶マッピング
また、生成されたメモリーマップを視覚化することで、インテリ層の記憶内容を視覚的に見ることもできる。
python visualization.py \
--mem_path data/memory_graphs/robot/bedroom_01.pkl \
--clip_id 1
アプリケーションシナリオ
- スマートホームロボット
M3-Agentを搭載したホームサービスロボットは、家庭環境や家族の行動を継続的に観察することで、家族一人ひとりの習慣やよく使う物の場所を記憶することができる。例えば、飼い主が "メガネはどこに置いたっけ?"と尋ねると、M3-Agentは "メガネはどこに置いたっけ?"と答える。飼い主が "メガネをどこに置いたっけ?"と尋ねると、ロボットは最後にメガネを見た場所を思い出して飼い主に教えることができる。 また、飼い主が朝コーヒーを飲む習慣を覚えていて、決まった時間に率先してコーヒーを用意する。 - 携帯情報端末
M3-Agentは、ビデオ会議、音声通話、閲覧したウェブページなど、ユーザーの全てのデジタル情報を整理し、記憶するスーパーアシスタントとして機能する。ユーザーは、数週間前の会議で議論された詳細を調べる必要があるとき、自然言語で質問するだけで、アシスタントは長期記憶から関連する情報の断片を正確に引き出すことができる。 - 自動コンテンツ分析
大量のビデオ監視を扱うセキュリティ・アプリケーションの場合、M3-Agentは数日から数ヶ月分の映像を自動的に分析し、シーン、人物、活動のタイムラインと知識ベースを作成することができる。特定のイベントを調査する際、アナリストはもはや大量のビデオを手動で見る必要はなく、「過去1週間に赤い服を着た人のクリップをすべて照会してください」といった質問をシステムに直接投げかけることができます。
品質保証
- M3-AgentとGPT-4oのような大規模な言語モデルの違いは何ですか?
GPT-4oのようなモデルのメモリは主に現在の対話のコンテキストウィンドウに限定されており、対話が終わると「忘れ去られる」。一方、M3-Agentは、カメラとマイクを通して認識した情報を、人間のように構造化されたメモリバンクに継続的に保存することができ、将来いつでもそれを取り出して推論することができるため、時間やタスクを超えた記憶を可能にします。 - M3-Agentの "メモリーマップ "はどのように機能するのですか?
メモリーグラフとは、M3-Agentが映像や音声から主要な「エンティティ」(人物や物体など)を特定し、それらをグラフのノードとして使用する、ネットワークのようなデータ構造である。そして、異なる時間やイベントにおけるこれらのエンティティの状態、行動、関係を記録し、この情報がノードをつなぐエッジとして機能する。このアプローチにより、記憶は断片的なものではなく、複雑な推論に非常に適した、相互接続された知識のネットワークとなる。 - M3-Agentの導入や使用には、高い技術的障壁がありますか?
Linuxコマンドライン、Python環境、ディープラーニングモデルの設定に精通している必要があるため、非技術系ユーザーにとって、直接導入には一定の敷居がある。また、ハードウェア要件も高く、特にメモリ生成フェーズでは強力なGPUサポートが必要となる。 しかし、開発者や研究者向けには、プロジェクトが詳細なインストールと実行スクリプトを提供しており、公式ドキュメントの手順に沿って進めることで、比較的スムーズにデプロイを完了できる。