
.
├── config/
├── data/
├── notebooks/
│ └── KJB/
├── script/ # gradio를 활용한 결과 분석 script 등
├── src/
│ ├── dataset/ # 데이터 전처리, 로더, 토크나이저
│ │ └── preprocess.py
│ │ └── loader.py
│
│ ├── model/ # 모델 아키텍처 및 로딩
│ │ └── base_model.py
│ │ └── lora_wrapper.py
│ │ └── peft_loader.py
│
│ ├── train/ # 학습 로직
│ │ └── train_qlora.py
│ │ └── trainer.py
│
│ ├── evaluation/ # 평가 및 메트릭
│ │ └── evaluator.py
│ │ └── metrics.py
│
│ ├── inference/ # 추론 및 생성
│ │ └── infer.py
│ │ └── generator.py
│
│ ├── util/ # 공통 유틸 함수
│ │ └── collator.py
│ │ └── logger.py
│ │ └── config_loader.py
│
│ └── main.py # 실행 진입점 (예: argparse 기반 전체 파이프라인)
├── .env.template
├── .gitignore
├── README.md
├── requirements.txt
1. config.py
└─ config 불러오기 (절대경로 적용)
2. train.py
├─ bart.py → 모델, 토크나이저 로드
├─ preprocess.py → CSV 파일 전처리
├─ datamodule.py → 데이터셋 준비
│ └─ dataset_bart.py → Dataset 클래스 정의
├─ seq2seqarg.py → 학습 인자 설정
├─ rouge.py → 평가 메트릭 함수
└─ wandb.py → 실험 로깅 초기화
└─ huggingface Trainer → 학습 실행
3. inference.py
├─ bart.py → 체크포인트에서 모델 로드
├─ preprocess.py → test.csv 전처리
├─ datamodule.py → test dataset 구성
└─ test inference → 요약 생성 및 결과 저장
train.py)train.py는 다음과 같은 모듈들을 호출하며 학습을 수행함:
| 호출 대상 | 용도 |
|---|---|
config.py | 설정 파일(config.yaml)을 불러오고 절대경로 적용 |
bart.py | BART 모델 및 토크나이저 로딩 |
preprocess.py | 입력값 전처리 (BART에 맞게 BOS/EOS 붙이기 등) |
datamodule.py | 학습/검증용 데이터셋 로딩 및 토크나이징 |
dataset_bart.py | datamodule.py에서 사용하는 custom Dataset 클래스 정의 |
seq2seqarg.py | huggingface용 Seq2SeqTrainingArguments 정의 |
rouge.py | Trainer에서 사용하는 평가 metric 정의 |
wandb.py | wandb 실험 로깅을 위한 초기화 |
inference.py)inference.py는 다음처럼 구성됨:
| 호출 대상 | 용도 |
|---|---|
config.py | config 불러오기 |
bart.py | 학습된 체크포인트에서 모델 로드 |
preprocess.py | 테스트 데이터 전처리 |
datamodule.py | 테스트셋 로딩 |
dataset_bart.py | inference용 dataset 사용 |
train.pyload_config, load_tokenizer_and_model_for_train, prepare_train_dataset 등 호출Seq2SeqTrainer 생성 후 trainer.train() 수행wandb 로깅, early stopping 포함inference.pygenerate()로 예측 수행.csv로 저장config.pyconfig/config.yaml을 읽고, 경로 기반 설정값 수정save_config()로 수정된 설정 저장resize_token_embeddings()datamodule.pyDataset 생성train, val, test 모두 지원dataset_bart.py의 클래스를 사용함dataset_bart.pyDatasetForTrain, DatasetForValDatasetForInferenceTrainer와 연동될 수 있는 포맷 제공preprocess.pybos_token, eos_token 추가rouge.pyhuggingface trainer에서 compute_metrics에 전달되어 사용rouge.get_scores() 적용seq2seqarg.pySeq2SeqTrainingArguments 객체 생성output_dir, logging_steps, learning_rate 등 설정값 반영wandb.py.env에서 WANDB_API_KEY 로드모델명_타임스탬프 형식으로 생성 후 wandb에 로깅 시작