도구로 건너뛰기

도구

JSONL을 train·val·test로 나누기

시드와 FNV-1a로 0–9999 구간에 넣습니다. 같은 instruction이나 첫 user 턴은 한 분할에만 갑니다. 원본 줄은 기어델로 가지 않습니다.

나누기는 이 탭에서만 합니다. JSONL은 기어델로 가지 않습니다.

한 줄이 나뉘는 방식

남긴 객체마다 시드 + NUL + 묶는 키를 FNV-1a 32비트로 해시한 뒤 10,000으로 나눕니다. train%는 앞의 train%×100칸, val%는 그다음 val%×100칸, 나머지는 test입니다. 같은 시드와 키는 항상 같은 분할에 갑니다.

기본 묶는 키는 프롬프트입니다. Alpaca는 instruction과 input, OpenAI messages와 ShareGPT는 첫 user/human 턴입니다. 그 문자열이 같은 줄은 한쪽으로만 가서 프롬프트가 분할을 넘지 않습니다.

JSON 줄 전체로 묶으면 JSON.stringify가 키입니다. 프롬프트는 같고 답만 다른 두 줄은 서로 다른 분할에 갈 수 있습니다.

NFC를 켜면 해시 전에 String.normalize('NFC')를 합니다. NFD와 NFC로만 다른 한글은 같은 칸에 들어갑니다.

같은 객체 버리기는 첫 JSON.stringify만 남깁니다. 빈 줄은 세고 건너뜁니다. 맨 앞이 JSON 배열이면 거절합니다. 이 페이지는 JSONL입니다.

하지 않는 일

  • 라벨로 층화하지 않고, 클래스 균형을 보장하지 않습니다. 해시는 파일의 통계 표본이 아닙니다.
  • 메모리에서 섞은 뒤 자르지 않습니다. 비율은 칸 너비라서, 줄이 적으면 val이나 test가 비어 있을 수 있습니다.
  • Hugging Face datasets.splits와 통신하지 않습니다. 파일이 필요하면 이 탭에서 세 JSONL을 받습니다.
  • 한 번에 2만 줄, 또는 약 200만 글자까지입니다.

JSONL

비율 (합 100)
묶는 키

유지 0 · 빈 줄 0 · 오류 0 · 중복 제거 0 · 그룹 0 · 프롬프트 없음 0

train 행 / 그룹
0 / 0
val 행 / 그룹
0 / 0
test 행 / 그룹
0 / 0

자주 나오는 질문

비슷한 한국어 프롬프트가 다른 분할에 갔습니다.

묶는 키는 그 문자열 그대로입니다 (NFC를 켰으면 NFC). 공백, 다른 input, NFC가 접지 않는 자모는 해시가 갈라집니다. 객체마다 독립이면 줄 전체로 묶습니다.

시드 42가 특별한가요?

아닙니다. 아무 문자열이나 해시합니다. 42는 같은 붙여 넣기를 다시 열어도 같게 나뉘라고 둔 기본값입니다. 같은 파일을 다른 칸으로 나누려면 바꿉니다.

기어델이 분할을 받나요?

받지 않습니다. 카탈로그도 데이터셋을 보관하지 않습니다. 이 도구는 탭 안의 글만 다시 씁니다.

기어델에서 이어서

과제로 데이터셋 고르기 →

한국어 지시문·학습 모음 →

Alpaca·ShareGPT·messages →

평가셋과 학습 데이터 →

브라우저 도구 모음 →

한국어 텍스트 토큰 수 →

지시문 JSONL 검사와 변환 →

한국어 글자 수와 바이트 →

CSV·TSV를 지시문 JSONL로 →

한글 NFC·NFD와 자모 →

채팅 껍데기를 붙이고 토큰 세기 →

JSONL 중복 줄 버리기 →

JSONL을 토큰 길이로 거르기 →

학습 JSONL과 평가 문장이 겹치는지 →

한국어 전화·주민번호·이메일 가리기 →

JSONL 필드 보기와 샘플 줄 →

한국어 학습 데이터의 깨짐과 존댓말 혼용 →

카탈로그에 있는 샘플만 열어 보기 →

JSONL을 CSV·TSV로 펼치기 →

카탈로그 칸으로 인용문 만들기 →