allennlp train — 설정 파일 기반 모델 훈련
allennlp train
AllenNLP에서 모델을 훈련하는 가장 표준적인 방법은 allennlp train 하위 명령이에요. 실험 설정(데이터·모델·트레이너)을 JSON 설정 파일에 적고, 결과를 저장할 디렉터리를 지정해 실행하면 돼요.
핵심 함수
allennlp.commands.train 모듈이 훈련을 담당해요.
train_model_from_file(parameter_filename, serialization_dir, overrides="", recover=False, force=False, node_rank=0, include_package=None, dry_run=False, file_friendly_logging=False)— 설정 파일을 읽어 Params로 바꿔 훈련하는 래퍼.parameter_filename: 실험 설정 JSON 파일 경로serialization_dir: 결과·로그를 저장할 디렉터리overrides: 설정 파일의 값을 덮어쓸 JSON 문자열/사전recover: 중간에 크래시된 실행을 직렬화 디렉터리에서 복구force: 이미 존재하는 직렬화 디렉터리 덮어쓰기dry_run: 모델을 실제로 훈련하지 않고 어휘(vocabulary)·데이터 통계만 생성
- **
train_model(params, serialization_dir, ...)— Params 객체로 훈련하는 저수준 함수. TrainModel— 설정 파일을TrainModel.from_params(...)로 읽어run()을 호출하는 조립 클래스. 실제 학습 루프는Trainer.train()이 담당하고, 이 클래스는 Trainer가 필요로 하는 의존성(데이터·모델·트레이너)을 순서대로 생성해 줘요.
설정 파일의 최상위 키
from_partial_objects는 설정 파일의 최상위 키로 dataset_reader, train_data_path, model, data_loader, trainer, vocabulary, validation_data_path, test_data_path, evaluate_on_test 등을 받아요. 의존성이 엮인 객체(예: model은 vocabulary가 만들어진 뒤에 생성)는 Lazy[...] 타입으로 표시하고 construct()로 채워요.
예시 실행 흐름
allennlp train training_config.json --serialization-dir /tmp/train_out
훈련이 끝나면 최고 에폭 가중치의 모델이 반환되고, 결과·로그는 serialization_dir에 저장돼요.