HuggingFace镜像/Magma-8B
模型介绍文件和版本分析
下载使用量0

Magma-8B 模型卡片

Magma:面向多模态人工智能代理的基础模型

Jianwei Yang*1†  Reuben Tan1†  Qianhui Wu1†  Ruijie Zheng2‡  Baolin Peng1‡  Yongyuan Liang2‡

Yu Gu1  Mu Cai3  Seonghyeon Ye4  Joel Jang5  Yuquan Deng5  Lars Liden1  Jianfeng Gao1▽

1 微软研究院;2 马里兰大学;3 威斯康星大学麦迪逊分校
4 韩国科学技术院;5 华盛顿大学

* 项目负责人 † 共同第一作者 ‡ 共同第二作者 ▽ 项目指导

[arXiv论文](https://www.arxiv.org/pdf/2502.13130)[arXiv 论文](https://www.arxiv.org/pdf/2502.13130)[arXiv论文](https://www.arxiv.org/pdf/2502.13130)

 

[项目主页](https://microsoft.github.io/Magma/)[项目主页](https://microsoft.github.io/Magma/)[项目主页](https://microsoft.github.io/Magma/)

 

[HuggingFace论文](https://huggingface.co/papers/2502.13130)[Hugging Face 论文](https://huggingface.co/papers/2502.13130)[HuggingFace论文](https://huggingface.co/papers/2502.13130)

 

[GitHub代码库](https://github.com/microsoft/Magma)[GitHub 代码库](https://github.com/microsoft/Magma)[GitHub代码库](https://github.com/microsoft/Magma)

 

[视频](https://www.youtube.com/watch?v=SbfzvUU5yM8)[视频](https://www.youtube.com/watch?v=SbfzvUU5yM8)[视频](https://www.youtube.com/watch?v=SbfzvUU5yM8)

智能代理

用户界面导航

西雅图天气如何?并开启飞行模式

将此内容分享并发送消息给 Bob Steve。点击发送按钮

机器人操作

夹取热狗肠

将蘑菇放入锅中

将布料从左向右推动(超出初始感知范围)

游戏

任务:模型控制机器人收集绿色方块。

Magma 与 LLaVA-OneVision 对比

Magma 与 GPT4o-minni 对比

模型详情

模型描述

Magma 是一个多模态智能体 AI 模型,能够基于输入的文本和图像生成文本。该模型专为研究目的而设计,旨在促进多模态 AI 领域的知识共享和研究加速,尤其是多模态智能体 AI。该模型的主要创新点在于引入了两项技术创新:Set-of-Mark 和 Trace-of-Mark,并利用大量未标记视频数据来学习时空定位与规划。更多技术细节请参考我们的论文。

突出特点

  • 数字与物理世界: Magma 是首个面向多模态 AI 智能体的基础模型,旨在处理虚拟与现实环境中的复杂交互!
  • 多功能能力: Magma 作为单一模型,不仅具备通用的图像和视频理解能力,还能生成目标驱动的视觉计划和动作,使其在不同智能体任务中具有多用途性!
  • 最先进性能: Magma 在各种多模态任务上实现了最先进的性能,包括 UI 导航、机器人操作以及通用图像和视频理解,尤其是空间理解和推理方面!
  • 可扩展预训练策略: Magma 设计为除现有智能体数据外,还能从现实世界的未标记视频中进行可扩展学习,使其具有强大的泛化能力,适用于实际应用场景!

许可协议

本模型由微软开发,并由微软研究院资助。该模型由微软研究院共享,采用 MIT 许可协议授权。

如何开始使用模型

要开始使用该模型,您首先需要确保已安装 transformers 和 torch,同时还需安装以下依赖项:

pip install torchvision Pillow open_clip_torch

⚠️ 请注意,您需要安装我们定制的 transformers 库:

pip install git+https://github.com/jwyang/transformers.git@dev/jwyang-v4.48.2

关于需要执行此操作的原因,请参见此处。

然后您可以运行以下代码:

import torch
from PIL import Image
from io import BytesIO
import requests

from transformers import AutoModelForCausalLM, AutoProcessor

# Load the model and processor
dtype = torch.bfloat16
model = AutoModelForCausalLM.from_pretrained("microsoft/Magma-8B", trust_remote_code=True, torch_dtype=dtype)
processor = AutoProcessor.from_pretrained("microsoft/Magma-8B", trust_remote_code=True)
model.to("cuda")

# Inference
url = "https://assets-c4akfrf5b4d3f4b7.z01.azurefd.net/assets/2024/04/BMDataViz_661fb89f3845e.png"
image = Image.open(BytesIO(requests.get(url, stream=True).content))
image = image.convert("RGB")

convs = [
    {"role": "system", "content": "You are agent that can see, talk and act."},
    {"role": "user", "content": "<image_start><image><image_end>\nWhat is in this image?"},
]
prompt = processor.tokenizer.apply_chat_template(convs, tokenize=False, add_generation_prompt=True)
inputs = processor(images=[image], texts=prompt, return_tensors="pt")
inputs['pixel_values'] = inputs['pixel_values'].unsqueeze(0)
inputs['image_sizes'] = inputs['image_sizes'].unsqueeze(0)
inputs = inputs.to("cuda").to(dtype)

generation_args = { 
    "max_new_tokens": 128, 
    "temperature": 0.0, 
    "do_sample": False, 
    "use_cache": True,
    "num_beams": 1,
}

with torch.inference_mode():
    generate_ids = model.generate(**inputs, **generation_args)

generate_ids = generate_ids[:, inputs["input_ids"].shape[-1] :]
response = processor.decode(generate_ids[0], skip_special_tokens=True).strip()
print(response)

训练详情

训练数据

我们的训练数据包括:

  • 通用图像SFT数据:LLaVA-Next、InfoGrpahicVQA、ChartQA_Augmented、FigureQA、TQA、ScienceQA。

  • 通用视频SFT数据:ShareGPT4Video 和 LLaVA-Video。

  • 教学视频数据:Ego4d、Somethingv2、Epic-Kitchen 及其他相关教学视频。

  • 机器人操作数据:Open-X-Embodiment。

  • UI定位数据:SeeClick。

  • UI导航数据:Mind2web 和 AITW。

数据收集过程涉及从公开可用文档中获取信息,并采用细致的方法过滤掉不良文档和图像。为保护隐私,我们对各种图像和文本数据源进行了仔细筛选,以从训练数据中移除或擦除任何可能的个人数据。

更多细节可参见我们的论文。

Microsoft 隐私声明

训练过程

预处理

除了与文本相关的预处理外,我们主要进行以下图像和视频预处理步骤:

  • UI定位与导航数据:对于每个UI截图,我们提取UI元素的边界框,并应用Set-of-Mark Prompting在原始图像上叠加数字标记。模型被训练为基于图像和Set-of-Mark提示生成UI定位文本。

  • 教学视频数据:对于每个视频片段,我们应用Co-Tracker提取网格轨迹,然后应用过滤算法去除噪声点或静态点。对于存在相机运动的视频,我们进一步应用单应性变换来稳定视频片段。最后,我们为每个轨迹分配一个数字标记,从而得到一组标记轨迹。模型被训练为在给定视频片段和教学文本的情况下生成标记轨迹。

  • 机器人操作数据:对于Open-X Embodiment中的机器人数据,我们提取7自由度机器人夹爪状态,并从视频片段中提取标记轨迹。对视频片段应用了类似的过滤和稳定步骤。模型被训练为在给定视频片段和教学文本的情况下生成机器人操作动作以及标记轨迹。

完成所有这些预处理后,我们将它们与现有的文本注释相结合,形成最终的多模态训练数据。更多技术细节请参考我们的论文。

训练超参数

我们在H100和MI300上使用bf16混合精度进行训练。训练使用的超参数如下:

  • 批大小:1024
  • 学习率:1e-5
  • 最大序列长度:4096
  • 分辨率:图像最大为1024x1024,视频帧为512x512。
  • 预训练轮次:3

评估

我们以零样本方式在多种任务上对模型进行评估,其中大部分是与智能体相关的任务。

测试数据、因素与指标

零样本测试数据

我们在以下数据集上评估模型的零样本性能:

  • UI 接地:ScreenSpot 和 VisualWebArena。

  • 机器人操作:SimplerEnv 和 WidowX 实体机器人。

  • 空间理解与推理:VSR、BLINK 和 SpatialEval。

微调后测试数据

我们在以下数据集上评估模型微调后的性能:

  • UI 导航:Mind2Web 和 AITW。

  • 机器人操作:SimplerEnv 和 WidowX 实体机器人。

  • 多模态图像理解与推理:VQAv2、GQA、MME、POPE、TextVQA、ChartQA、DocVQA。

  • 多模态视频理解与推理:Next-QA、VideoMME、MVBench。

指标

我们遵循各个数据集的评估指标进行评估。有关更多详细信息,请参考原始数据集。

智能体智能评估结果

智能体智能的零样本评估。我们报告的是未经任何领域特定微调的预训练Magma的结果。Magma是唯一能够完成全任务谱的模型。

模型VQAv2TextVQAPOPESS-MobileSS-DesktopSS-WebVWB-Ele-GVWB-Act-GSE-Google RobotSE-Bridge
GPT-4V77.278.0n/a23.616.09.067.575.7--
GPT-4V-OmniParsern/an/an/a71.145.658.5----
LLava-1.578.558.285.9---12.113.6--
LLava-Next81.364.986.5---15.08.7--
Qwen-VL78.863.8n/a6.26.33.014.00.7--
Qwen-VL-Chat78.261.5n/a-------
Fuyu74.2n/an/a21.220.819.219.415.5--
SeeClick---65.051.144.19.91.9--
Octo----------
RT-1-X--------6.015.9
OpenVLA--------34.21.1
Magma-8B80.066.587.459.564.160.696.371.852.335.4

注:SS - ScreenSpot,VWB - VisualWebArena,SE - SimplerEnv

技术规格

模型架构与目标

  • 语言模型:我们使用Meta LLama-3作为骨干LLM。
  • 视觉编码器:我们使用由LAION团队训练的CLIP-ConvneXt-XXLarge作为视觉编码器,对图像和视频进行 token 化。

整个流程遵循多模态LLM的通用做法,即使用视觉编码器对图像和视频进行 token 化,然后将视觉 token 与文本 token 一起输入LLM以生成文本输出。

计算基础设施

我们使用 Azure ML 进行模型训练。

硬件

我们的模型在两块 GPU 上进行训练:

  • Nvidia H100
  • AMD MI300

软件

我们的模型基于以下框架构建:

  • Pytorch
  • Transformers
  • TorchVision
  • DeepSpeed
  • FlashAttention

预期用途

本模型旨在用于广泛的英语研究。它仅设计用于研究目的,旨在促进多模态人工智能领域的知识共享和研究加速,特别是在多模态智能体人工智能方面。其预期用户为领域专家,这些专家能够独立评估输出质量后再采取行动。

直接使用

该模型以图像和文本作为输入,并针对以下用途生成文本输出:

  • 图像/视频条件文本生成:模型能够基于输入的文本和图像生成文本(例如描述、答案)。

  • 视觉规划能力:模型还可以生成视觉轨迹作为完成任务的未来规划(例如,将物体从一个地方移动到另一个地方)。

  • 智能体能力:模型还可以生成 UI 定位(例如,点击“搜索”按钮)和机器人操作指令(例如,机器人 gripper 的 7 自由度运动)。

下游使用

该模型可针对不同的下游任务进行进一步微调,例如:

  • 图像 captioning 与问答:我们可以在多模态大语言模型的框架下,进一步微调此模型以用于图像 captioning 和问答任务。根据我们的实验,该模型在这些任务上能够取得具有竞争力的性能,并且在空间理解和推理方面表现更优。

  • 视频 captioning 与问答:我们可以在多模态大语言模型的框架下,进一步微调此模型以用于视频 captioning 和问答任务。根据我们的实验,该模型在这些任务上能够取得具有竞争力的性能,并且在时间理解和推理方面表现更优。

  • UI 导航:我们可以针对特定的 UI 导航任务微调此模型,例如网页导航或移动应用导航。该模型在这些任务上能够实现卓越的性能。

  • 机器人操作:鉴于我们的模型作为一种视觉-语言-动作模型所具备的通用智能体能力,它可以进一步微调到机器人任务中。微调后,我们的模型在机器人操作任务上的性能显著优于 OpenVLA 等最先进的模型。

偏见、风险与局限性

请注意,本模型并非专门为所有下游用途而设计或评估。

本模型不打算部署在生产环境中。不应将其用于高风险场景,例如军事与国防、金融服务以及关键基础设施系统。

开发人员在选择用例时应考虑多模态模型的常见局限性,并在特定下游用例中使用之前,对准确性、安全性和公平性进行评估和缓解。

开发人员应了解并遵守与其用例相关的适用法律法规(包括隐私、贸易合规法律等)。与其他多模态模型一样,Magma 的行为可能存在不公平、不可靠或冒犯性的潜在风险。

模型的输出不反映 Microsoft 的观点。

需要注意的一些限制性行为包括:

  • 服务质量:该模型主要针对英文文本进行训练。非英文语言的性能会较差。训练数据中代表性不足的英语变体,其性能可能不如标准美式英语。Magma 不旨在支持多语言使用。

  • 危害的呈现与刻板印象的延续:这些模型可能会过度或不足地呈现特定人群,抹去某些群体的代表性,或强化贬低性或负面的刻板印象。尽管经过了安全训练,由于不同群体的代表性水平不同,或训练数据中反映现实世界模式和社会偏见的负面刻板印象示例的普遍性,这些局限性仍可能存在。

  • 不当或冒犯性内容:这些模型可能会生成其他类型的不当或冒犯性内容,这可能使其在没有针对特定用例的额外缓解措施的情况下,不适合在敏感环境中部署。

  • 信息可靠性:多模态模型可能会生成无意义的内容或编造听起来合理但不准确或过时的内容。

开发人员应应用负责任的 AI 最佳实践,并负责确保特定用例符合相关法律法规(例如隐私、贸易等)。强烈建议使用具有高级防护措施的安全服务,如 Azure AI Content Safety。

建议

Magma 仅用于研究目的。应让用户(包括直接用户和下游用户)了解模型的风险、偏见和局限性。

微调模型的推荐使用场景为其训练时所处的研究环境,即:

  • 用于 UI 操作的、运行在计算机上的安卓模拟器。
  • 配备机械臂和日常物品、用于机器人操作的封闭环境。

对于 UI 导航任务,研究人员应确保在智能体系统生成的每个操作中都有人工参与并处于控制地位。由于模型本身无法执行操作,研究人员用于实际执行 UI 导航操作的子模块应确保不会因执行模型提出的 UI 操作而产生意外后果。

对于机器人操作任务,为确保人机协作安全,操作机械臂时可采用以下缓解策略:

  • 安全区域与屏障:在机器人工作区域周围设置物理屏障或安全区域,防止未经授权的进入。
  • 紧急停止系统:为机械臂配备易于操作的紧急停止按钮。实施故障安全机制,在紧急情况下立即停止操作。
  • 安全标准与合规性:遵守已建立的工业机器人和协作机器人安全标准(例如 ISO 10218、ISO/TS 15066)。
  • 用户培训与意识:为所有在机械臂周围工作的人员提供全面培训,使其了解机械臂的功能、安全特性和应急程序。提高对机器人操作相关潜在风险的认识。

引用

@misc{yang2025magmafoundationmodelmultimodal,
      title={Magma: A Foundation Model for Multimodal AI Agents}, 
      author={Jianwei Yang and Reuben Tan and Qianhui Wu and Ruijie Zheng and Baolin Peng and Yongyuan Liang and Yu Gu and Mu Cai and Seonghyeon Ye and Joel Jang and Yuquan Deng and Lars Liden and Jianfeng Gao},
      year={2025},
      eprint={2502.13130},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2502.13130}, 
}