AIFrontierLab/TorchUMM

A unified multimodal model toolkit

TorchUMM – 통합 다중 모달 모델 툴킷

무엇인가요 – TorchUMM은 단일 구성 기반 인터페이스를 통해 다양한 최신 다중 모달 모델(텍스트-이미지 생성, 이미지 이해, 이미지 편집 등)을 실행, 평가, 미세 조정할 수 있는 파이썬 라이브러리입니다. 14개의 다른 백본용 어댑터를 포함하고 있으며, 10개 이상의 표준 벤치마크용 사전 준비된 스크립트를 제공하며, SFT(지도 기반 미세 조정) 및 IRG(지시 따르기 강화 학습)와 같은 포스트 트레이닝 방법을 지원합니다. 코드는 로컬, AMD-ROC-m 클러스터, 또는 Modal 클라우드에서 실행할 수 있습니다.

왜 중요한가요 – 다중 모달 연구는 분산되어 있습니다: 새로운 모델마다 일반적으로 자체 추론 스크립트, 데이터 로더, 평가 코드가 함께 제공됩니다. TorchUMM은 이러한 장벽을 제거합니다.

  • API 표준화 – 어떤 지원되는 모델에도 사용 가능한 단일 InferencePipeline 클래스.
  • 재현 가능성 보장 – 모든 실험은 YAML 구성 파일로 제어됩니다. 모델이나 벤치마크를 바꾸려면 코드를 수정하지 않고 구성 파일만 수정하면 됩니다.
  • 공정한 비교 촉진 – 모든 모델에 동일한 데이터 전처리, 메트릭 구현, 평가 스크립트가 사용됩니다.
  • 무리 없이 확장 가능 – 내장된 Modal 지원은 CUDA/Flash-Attention 웨일을 포함한 컨테이너 이미지를 생성하므로, 수동 설정 없이 클라우드 GPU에서 대규모 실행이 가능합니다.

주요 구성 요소

  • src/umm/backbones/ – 모델의 네이티브 API를 TorchUMM의 통합 인터페이스로 변환하는 얇은 래퍼.
  • src/umm/cli/ – 명령줄 진입점(infer, eval, train).
  • src/umm/post_training/ – SFT, IRG, recA, UniCot 등 구현 포함.
  • configs/ – 어떤 모델, 어떤 벤치마크, 어떤 하이퍼파라미터를 사용할지 설명하는 YAML 파일. 추론, 평가, 포스트 트레이닝용 별도 폴더.
  • modal/ – Modal용 Docker 스타일 정의로, 동일한 코드를 관리되는 GPU 클러스터에서 실행할 수 있습니다.
  • eval/ – 벤치마크 실행을 오케스트레이션하는 스크립트(예: DPG-Bench, MME, MMMU, WISE) 및 점수 집계.

지원되는 모델 (각 모델에 대한 어댑터 제공; 모델별 종속성은 링크된 가이드 참조):

  • Bagel, DeepGen, OmniGen2, Emu3 / Emu3.5, MMaDA, Janus 패밀리, Show-o 패밀리, BLIP3-o, TokenFlow, Ovis-U1.
  • 대부분의 모델은 Flash-Attention 필요; Emu3.5는 vLLM에서도 더 빠른 추론 가능.

커버된 벤치마크 – 생성(DPG-Bench, GenEval, WISE), 이해(MME, MMMU, MMBench, MM-Vet, MathVista), 편집(GEdit-Bench, ImgEdit-Bench). 각 모델의 결과는 리포지토리에서 재현되었으며, 단일 CLI 명령어로 재생성 가능.

일반적인 워크플로우

  1. 설치 – 패키지 설치(pip install -e .) 및 필요한 모델별 requirements.txt 설치.
  2. 데이터 준비 – 대부분의 벤치마크 데이터셋은 자동 다운로드; 일부(MME, MMBench 등)는 README에 간단한 wget 스크립트 포함.
  3. 추론 실행 – 예: python -m umm.cli.main infer --config configs/inference/modal_bagel_generation.yaml.
  4. 평가 – 벤치마크 설정 선택, 예: python -m umm.cli.main eval --config configs/eval/dpg_bench/dpg_bench_bagel.yaml.
  5. 포스트 트레이닝python -m umm.cli.main train --config configs/posttrain/bagel_sft.yaml로 미세 조정.
  6. 확장 – 설정 접두사(modal_, amd_, 또는 없음)를 변경하여 Modal 또는 AMD HPC 클러스터에서 실행.

예제 파이썬 사용법

from umm.inference.pipeline import InferencePipeline
from umm.inference.multimodal_inputs import InferenceRequest

pipeline = InferencePipeline(
    backbone_name="bagel",
    backbone_cfg={"model_path": "/path/to/BAGEL-7B-MoT", "max_mem_per_gpu": "80GiB"},
)

# 텍스트-이미지 생성
gen = pipeline.run(InferenceRequest(
    backbone="bagel",
    task="generation",
    prompt="A cat sitting on a rainbow",
    params={"num_timesteps": 50},
))

# 이미지 이해
understand = pipeline.run(InferenceRequest(
    backbone="bagel",
    task="understanding",
    prompt="Describe this image in detail.",
    images=["/tmp/cat.jpg"],
))

재현성 참고사항 – 리포지토리의 표에는 동일한 평가 스크립트와 동일한 점수 산출 VLM(예: WISE용 Qwen2.5-VL-72B-Instruct)로 재현된 점수가 나와 있습니다. README는 원본 논문과의 차이점(다른 판정 모델, 약간 다른 파이프라인)에 대해 경고하고 있습니다.

누가 사용해야 할까 – 다중 모달 모델을 비교하는 연구자, 평가 파이프라인을 구축하는 엔지니어, 또는 커스텀 래퍼를 작성하지 않고도 여러 최신 시각-언어 모델을 즉시 실행하고 싶은 누구나.


인용 – README에는 관련 논문(arXiv:2604.10784)의 BibTeX 항목이 제공되며, 여기서는 재게하지 않습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트