Megatron Core 설치
Megatron Core 설치
Megatron Core는 PyPI에서 설치하거나, 소스에서 빌드하거나, NGC 컨테이너 안에서 실행할 수 있어요. 대부분의 사용자에게 PyPI가 가장 간단하고, 활발한 개발에는 소스 설치가, 수동 의존성 관리가 필요 없는 완전한 환경은 NGC 컨테이너가 좋아요.
시스템 요구 사항
하드웨어: NVIDIA Turing 아키텍처 이상 권장. FP8 지원에는 NVIDIA Hopper, Ada, Blackwell GPU가 필요해요.
소프트웨어:
- Python: >= 3.10 (3.12 권장)
- PyTorch: >= 2.6.0
- CUDA Toolkit: 최신 안정 버전
먼저 빠른 Python 패키지 설치 도구인 uv를 설치해요.
curl -LsSf https://astral.sh/uv/install.sh | sh
옵션 A: pip 설치 (권장)
PyPI에서 최신 안정 릴리스를 설치해요. 소스를 빌드하지 않고 바로 시작할 수 있어요.
uv pip install megatron-core
Weights & Biases, SentencePiece, Hugging Face Transformers 같은 선택 학습 의존성을 포함하려면:
uv pip install "megatron-core[training]"
Transformer Engine을 포함한 모든 extras를 쓰려면:
uv pip install --group build
uv pip install --no-build-isolation "megatron-core[training,dev]"
--no-build-isolation은 build 의존성이 환경에 미리 설치돼 있어야 해요. 여러 [dev] 패키지가 빌드 시에 torch를 import해 CUDA 커널을 컴파일하기 때문이에요. 하드웨어에 따라 이 단계는 20분 이상 걸릴 수 있어요. 미리 빌드된 바이너리를 원한다면 NGC 컨테이너를 쓰세요.
빌드는 메모리를 많이 쓸 수 있어요. 기본적으로 CPU 코어당 컴파일 작업이 하나라, 코어가 많은 머신에서는 OOM이 날 수 있어요.
MAX_JOBS환경변수로 제한하세요 (예:MAX_JOBS=4).
옵션 B: 소스에서 설치
변경 사항을 기여하거나, 릴리스 안 된 기능을 쓰거나, 코드를 디버깅할 때 사용해요. 저장소를 클론하고 editable 모드로 설치해요.
git clone https://github.com/NVIDIA/Megatron-LM.git
cd Megatron-LM
uv pip install -e .
모든 개발 의존성을 포함해 설치하려면:
uv pip install --group build
uv pip install --no-build-isolation -e ".[training,dev]"
메모리가 부족하면 MAX_JOBS=4 uv pip install --no-build-isolation -e ".[training,dev]"처럼 제한하세요.
옵션 C: NGC 컨테이너
모든 의존성(PyTorch, CUDA, cuDNN, NCCL, Transformer Engine)이 미리 설치된 완전한 환경을 원한다면 PyTorch NGC 컨테이너를 사용해요. 현재 Megatron Core 릴리스·테스트 매트릭스와의 호환성을 위해 최신 컨테이너보다 이전 달 컨테이너를 쓰는 걸 권장해요.
docker run --gpus all -it --rm \
-v /path/to/dataset:/workspace/dataset \
-v /path/to/checkpoints:/workspace/checkpoints \
-e PIP_CONSTRAINT= \
nvcr.io/nvidia/pytorch:26.01-py3
NGC PyTorch 컨테이너는 PIP_CONSTRAINT로 Python 환경을 전역 제약해요. 위의 -e PIP_CONSTRAINT= 플래그는 이 제약을 풀어서 Megatron Core와 의존성이 올바르게 설치되게 해요.
컨테이너 안에서(torch는 이미 NGC 이미지에 있음) Megatron Core를 설치해요.
pip install uv
uv pip install --no-build-isolation "megatron-core[training,dev]"