Magma: Microsoft가 출시한 멀티모달 AI 에이전트 기반 모델 183

小编 ·

Magma: Microsoft가 출시한 멀티모달 AI 에이전트 기반 모델

Magma는 Microsoft가 출시한 멀티모달 AI 에이전트 기반 모델로, 가상 및 실제 환경에서의 복잡한 상호작용을 처리할 수 있으며, 이미지 캡션 및 질의응답, 비디오 캡션 및 질의응답, 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