Axolotl 데이터셋 포맷 안내
Axolotl 데이터셋 포맷 안내
Axolotl은 config YAML 파일 하나로 훈련을 진행하는 프레임워크예요. 데이터셋 포맷을 잘 고르는 게 훈련의 절반이죠. Axolotl은 사전훈련, 지도 파인튜닝(SFT), 선호 기반 포스트트레이닝(DPO·ORPO·PRM 등) 세 가지 방법을 지원하고, 각각 데이터셋 포맷이 달라요.
사전훈련(Pre-training)
원시 텍스트 코퍼스에 입력 마스킹 없이 훈련해요. 포맷은 단순해요.
{"text": "first row"}
{"text": "second row"}
스트리밍(대용량 데이터셋)
메모리에 안 들어가는 대용량 코퍼스는 pretraining_dataset 스트리밍을 써요.
pretraining_dataset:
- path: HuggingFaceFW/fineweb-edu
type: pretrain
text_column: text
split: train
스트리밍은 config에
max_steps가 필수예요. Axolotl이 데이터셋 크기를 추론할 수 없거든요. 한 스텝 =sequence_len * micro_batch_size * gradient_accumulation_steps * num_gpus토큰이에요.
비스트리밍(작은 데이터셋)
메모리에 들어가는 데이터셋은 type: completion을 써요.
datasets:
- path: my_corpus
type: completion
completion은 sequence_len을 초과하는 텍스트를 자동으로 여러 샘플로 나눠요.
지도 파인튜닝(SFT)
데이터셋 형식에 따라 4가지 접근 방식이 있어요.
- 이미 토큰화된 데이터 → Pre-Tokenized Dataset
- 직접 포맷하고 마스킹하고 싶다면 → Template Free Dataset
list[messages]대화 형식 → Conversation Dataset{instruction, response}형식 → Instruction Dataset
여기 매칭되는 게 없으면 위 형식 중 하나로 전처리하거나 GitHub Discussions에 질문을 올려요.