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 명령어로 재생성 가능.
일반적인 워크플로우
- 설치 – 패키지 설치(
pip install -e .) 및 필요한 모델별requirements.txt설치. - 데이터 준비 – 대부분의 벤치마크 데이터셋은 자동 다운로드; 일부(MME, MMBench 등)는 README에 간단한
wget스크립트 포함. - 추론 실행 – 예:
python -m umm.cli.main infer --config configs/inference/modal_bagel_generation.yaml. - 평가 – 벤치마크 설정 선택, 예:
python -m umm.cli.main eval --config configs/eval/dpg_bench/dpg_bench_bagel.yaml. - 포스트 트레이닝 –
python -m umm.cli.main train --config configs/posttrain/bagel_sft.yaml로 미세 조정. - 확장 – 설정 접두사(
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 항목이 제공되며, 여기서는 재게하지 않습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트