Skip to content

JunHyung1206/NLP-Pytorch-lightning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NLP-Pytorch-lightning

PyTorch Lightning 기반의 NLP 실험 템플릿 레포지토리입니다. 데이터셋/모델/토크나이저를 손쉽게 교체하고, 학습·평가·추론 파이프라인을 일관되게 돌릴 수 있도록 구성했습니다.

특징

  • PyTorch Lightning 구조로 깔끔한 학습/검증 루프
  • 모듈형 설계: Instances/에서 모델·토크나이저·데이터셋을 교체/확장
  • 구성 분리: config/로 하이퍼파라미터/경로/로깅 설정 관리
  • 재현 가능성: 시드 고정 및 체크포인트 저장
  • 손쉬운 실험 관리: 실험 단계 로직은 Step/, 공용 유틸은 Utils/로 정리

프로젝트 구조

NLP-Pytorch-lightning/
├─ Instances/        # 모델, 토크나이저, 데이터셋/데이터모듈 정의
├─ Step/             # 학습/검증/테스트 단계 관련 로직
├─ Utils/            # 공용 유틸(로깅, 시드, 스케줄러, 평가 등)
├─ config/           # 하이퍼파라미터 및 경로/실험 설정(YAML 권장)
└─ main.py           # 엔트리포인트(학습/평가/추론 실행)

시작 방법

설정 파일 예시 (config/train.yaml)

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: false

학습 실행

python main.py --config config/train.yaml

일반적으로 다음이 수행됩니다.

  • 시드 고정 및 로거 초기화
  • Instances/에서 모델·토크나이저·데이터모듈 인스턴스화
  • Step/의 LightningModule로 학습/검증 루프 진행
  • 체크포인트/로그 저장(config.logging.save_dir)

평가 / 테스트

python main.py --config config/eval.yaml --mode eval
  • 검증/테스트 데이터셋으로 성능 지표 산출 (예: accuracy, f1 등)
  • 저장된 체크포인트 로드 후 평가

추론(Inference)

python main.py --config config/predict.yaml --mode predict --input "Your text here."
  • 단일 문장 또는 파일 입력을 받아 예측 결과 출력
  • 배치 추론은 파일/폴더 경로로 지정하도록 확장할 수 있습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages