Axolotl 데이터셋 포맷 안내

Axolotl 데이터셋 포맷 안내

Axolotl은 config YAML 파일 하나로 훈련을 진행하는 프레임워크예요. 데이터셋 포맷을 잘 고르는 게 훈련의 절반이죠. Axolotl은 사전훈련, 지도 파인튜닝(SFT), 선호 기반 포스트트레이닝(DPO·ORPO·PRM 등) 세 가지 방법을 지원하고, 각각 데이터셋 포맷이 달라요.

출처: Axolotl — Dataset Formats

사전훈련(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

completionsequence_len을 초과하는 텍스트를 자동으로 여러 샘플로 나눠요.

지도 파인튜닝(SFT)

데이터셋 형식에 따라 4가지 접근 방식이 있어요.

  1. 이미 토큰화된 데이터 → Pre-Tokenized Dataset
  2. 직접 포맷하고 마스킹하고 싶다면 → Template Free Dataset
  3. list[messages] 대화 형식 → Conversation Dataset
  4. {instruction, response} 형식 → Instruction Dataset

여기 매칭되는 게 없으면 위 형식 중 하나로 전처리하거나 GitHub Discussions에 질문을 올려요.

더 알아보기