open-mmlab/mmengine
OpenMMLab Foundational Library for Training Deep Learning Models
해결하는 문제
MMEngine은 PyTorch에서 딥러닝 모델을 학습하기 위한 표준화된 기본 프레임워크를 제공합니다. 학습 루프, 검증, 모니터링을 위한 반복적인 보일러플레이트 코드를 작성할 필요가 없어져, 연구자와 개발자는 인프라보다 알고리즘 설계에 집중할 수 있습니다.
작동 방식
MMEngine은 여러 핵심 구성 요소 간의 상호 작용을 조율하는 학습 엔진으로 동작합니다:
- Runner: 훈련 및 검증 과정을 관리하는 중앙 코디네이터입니다.
- Model: 모델이 훈련(손실 계산) 및 예측을 처리하는 방식을 정의하는 기본 클래스(
BaseModel)입니다. - Dataset & DataLoader: 모델에 데이터를 공급하는 표준화된 방법입니다.
- Metrics: 훈련 중 및 훈련 후 모델 성능을 평가하는 시스템(
BaseMetric)입니다. - OptimWrapper: 역전파와 그래디언트 업데이트를 처리하기 위한 옵티마이저 래퍼입니다.
대상 독자
PyTorch 모델을 구축하는 딥러닝 연구자와 엔지니어를 위해 설계되었습니다. 특히 OpenMMLab 생태계 내에서 혹은 자체 비‑OpenMMLab 프로젝트에 적용할 수 있는 일반적이고 설정 가능한 학습 엔진을 찾는 경우에 적합합니다.
주요 특징
- Large-Scale Training Support: DeepSpeed, ColossalAI, FSDP와 같은 주요 프레임워크와 통합됩니다.
- Training Strategies: 메모리와 속도를 최적화하기 위해 혼합 정밀도 훈련, 그래디언트 누적, 그래디언트 체크포인팅을 기본 지원합니다.
- Flexible Configuration: 순수 Python 스타일과 일반 텍스트(JSON/YAML) 구성 파일을 모두 지원합니다.
- Broad Monitoring Integration: TensorBoard, WandB, MLflow, ClearML, Neptune, DVCLive, Aim 등 다양한 시각화 플랫폼과 연결됩니다.