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에 저장돼요.

더 알아보기