Megatron 첫 학습 실행

Megatron 첫 학습 실행

Megatron Core로 첫 학습을 실행하는 과정을 보여드릴게요. 두 가지 학습 예제를 돌려 보고, 그 다음에 자신의 데이터셋으로 학습하기 위한 데이터 준비를 다뤄요. 최소한의 분산 루프로 환경을 검증한 뒤, 전체 LLaMA-3 학습 작업을 실행해요.

출처: Megatron Core Your First Training Run (공식)

최소 학습 예제

가장 단순한 구성부터 시작해요. mock 데이터로 두 GPU에서 도는 분산 학습 루프예요. 실제 모델로 넘어가기 전에 환경이 제대로 설정됐는지 확인하는 용도예요.

torchrun --nproc_per_node=2 examples/run_simple_mcore_train_loop.py

LLaMA-3 학습 예제

환경 검증이 끝나면 프로덕션 스케일 예제를 실행해요. 아래 스크립트는 8 GPU에서 FP8 혼합 정밀도로 LLaMA-3 8B 모델을 mock 데이터로 학습하며, 텐서 병렬화와 최적화된 커널을 시연해요.

./examples/llama/train_llama3_8b_h100_fp8.sh

데이터 준비

자신의 데이터로 학습하려면 Megatron이 기대하는 전처리된 바이너리 파일(.bin.idx)이 필요해요.

1. JSONL 파일 준비

각 줄에 text 필드가 있어야 해요.

{"text": "Your training text here..."}
{"text": "Another training sample..."}

2. 데이터 전처리

전처리 스크립트로 토크나이즈하고 바이너리 형식으로 변환해요.

python tools/preprocess_data.py \
    --input data.jsonl \
    --output-prefix processed_data \
    --tokenizer-type HuggingFaceTokenizer \
    --tokenizer-model /path/to/tokenizer.model \
    --workers 8 \
    --append-eod

주요 인자

  • --input: 입력 JSON/JSONL 파일 경로
  • --output-prefix: 출력 바이너리 파일(.bin·.idx) 접두사
  • --tokenizer-type: 토크나이저 유형 (HuggingFaceTokenizer, GPT2BPETokenizer 등)
  • --tokenizer-model: 토크나이저 모델 파일 경로
  • --workers: 병렬 처리 워커 수
  • --append-eod: 문서 끝(end-of-document) 토큰 추가

다음 단계

학습을 확장하려면 병렬화 전략 가이드를 참고하고, 고급 기능으로 FP8 학습·컨텍스트 병렬화 등을 다뤄요.

더 알아보기