Ludwig 설정 구조 — 하나의 config로 모든 것 선언하기
Ludwig 설정 구조 — 하나의 config로 모든 것 선언하기
Ludwig 모델은 하나의 config로 전체가 구성돼요. 입력/출력 피처, 전처리, 모델 아키텍처, 학습 루프, 하이퍼파라미터 탐색, 백엔드 인프라까지 모두 이 config에 담겨요. 쉬운 기본값 덕분에 초보자도 금방 쓰고, 고급 사용자는 세부 파라미터를 직접 조정할 수 있는 구조예요.
config의 기본 구조
model_type: ecd
input_features: []
output_features: []
combiner: {}
preprocessing: {}
defaults: {}
trainer: {}
hyperopt: {}
backend: {}
각 필드가 하는 일을 정리하면:
- model_type: 사용할 모델 변형. 기본은
ecd(신경망 기반 아키텍처). 텍스트 생성을 위한llm도 지원해요. - input_features: 학습 데이터에서 모델 입력으로 쓸 컬럼, 데이터 타입, 전처리·인코딩 방법.
- output_features: 모델이 예측할 타깃. 타입이 작업을 결정해요.
number는 회귀,category는 다중 클래스 분류처럼요. - trainer: 배치 크기, 학습률, 에포크 수 등 학습 과정 제어.
- backend: 학습 중 사용할 라이브러리·분산 전략, GPU 여부 등 인프라·런타임 옵션.
어떤 필드가 필수인가
input_features와 output_features만 필수이고, 나머지는 합리적인 기본값을 써요. Ludwig가 말하는 "합리적"은 "나쁜 결과를 내놓을 가능성이 낮고, 일반 하드웨어에서 적당한 시간 안에 학습되는" 기본값이에요. 즉 좋은 출발점이 되는 baseline config에 고급 옵션을 얹는 방식이에요.
config 생성과 렌더링
처음부터 다 쓸 필요 없어요. CLI로 데이터셋으로부터 초기 config를 만들 수 있어요.
ludwig init_config --dataset ludwig://sst2 --target label --output sst2.yaml
기본값을 채워 실제로 쓰일 전체 config를 보고 싶다면 렌더링해요.
ludwig render_config --config sst2.yaml --output sst2_rendered.yaml
config를 표현하는 방법
config는 Python 딕셔너리(CLI의 --config_str) 또는 YAML 파일(--config)로 표현할 수 있어요.
더 알아보기
각 필드의 전체 파라미터 목록은 공식 Configuration 문서에서 확인할 수 있어요.