PyTorch Lightning 기반의 NLP 실험 템플릿 레포지토리입니다. 데이터셋/모델/토크나이저를 손쉽게 교체하고, 학습·평가·추론 파이프라인을 일관되게 돌릴 수 있도록 구성했습니다.
- PyTorch Lightning 구조로 깔끔한 학습/검증 루프
- 모듈형 설계: Instances/에서 모델·토크나이저·데이터셋을 교체/확장
- 구성 분리: config/로 하이퍼파라미터/경로/로깅 설정 관리
- 재현 가능성: 시드 고정 및 체크포인트 저장
- 손쉬운 실험 관리: 실험 단계 로직은 Step/, 공용 유틸은 Utils/로 정리
NLP-Pytorch-lightning/
├─ Instances/ # 모델, 토크나이저, 데이터셋/데이터모듈 정의
├─ Step/ # 학습/검증/테스트 단계 관련 로직
├─ Utils/ # 공용 유틸(로깅, 시드, 스케줄러, 평가 등)
├─ config/ # 하이퍼파라미터 및 경로/실험 설정(YAML 권장)
└─ main.py # 엔트리포인트(학습/평가/추론 실행)
seed: 42
task_name: "text_classification"
data:
dataset_name: "imdb" # 🤗datasets 예시
text_col: "text"
label_col: "label"
max_length: 256
batch_size: 32
num_workers: 4
model:
pretrained_name: "bert-base-uncased"
num_labels: 2
dropout: 0.1
train:
max_epochs: 3
gpus: 1 # CPU면 0 또는 주석처리
precision: 16 # A100/3090 등에서 혼합정밀도 사용 시
lr: 3e-5
weight_decay: 0.01
warmup_ratio: 0.1
logging:
save_dir: "outputs"
project: "nlp-pl"
use_wandb: falsepython main.py --config config/train.yaml일반적으로 다음이 수행됩니다.
- 시드 고정 및 로거 초기화
- Instances/에서 모델·토크나이저·데이터모듈 인스턴스화
- Step/의 LightningModule로 학습/검증 루프 진행
- 체크포인트/로그 저장(config.logging.save_dir)
python main.py --config config/eval.yaml --mode eval- 검증/테스트 데이터셋으로 성능 지표 산출 (예: accuracy, f1 등)
- 저장된 체크포인트 로드 후 평가
python main.py --config config/predict.yaml --mode predict --input "Your text here."- 단일 문장 또는 파일 입력을 받아 예측 결과 출력
- 배치 추론은 파일/폴더 경로로 지정하도록 확장할 수 있습니다.