2.8 KiB
2.8 KiB
PoC #1 기반 코퍼스 — AI-Hub 한국어 SNS 멀티턴 대화
docs/poc-plan.md의 PoC #1(온디바이스 말투 학습)에서, 개인화 레이어를 얹기 전 기반 톤 생성
모델을 학습/평가할 코퍼스로 AI-Hub "한국어 SNS 멀티턴 대화" 데이터셋을 사용한다. 이 데이터는
특정 개인의 말투가 아니라 익명 화자쌍의 일반 대화이므로, PoC #1의 "내 말투 같다" 개인화 검증
자체를 대체하지는 않는다 — 개인화 검증은 여전히 실제 참가자의 대화 샘플이 필요하다
(docs/poc-materials.md §1 참고).
사용법
python3 prepare_dataset.py --input <원본 zip이 있는 디렉토리> --output <출력 디렉토리> [--qa]
--input: AI-Hub에서 내려받은TS_*.zip/TL_*.zip(학습)·VS_*.zip/VL_*.zip(검증) 원본 파일이 있는 디렉토리. 파일명에VL_/TL_이 포함된 zip(라벨링 JSON)만 읽는다 — 여기에 발화 텍스트와 화행(speech_act)·슬롯 라벨이 모두 있어서VS_/TS_(원천 CSV)는 출력에 필요 없다.--output:train.jsonl,val.jsonl,stats.json을 쓸 디렉토리.--qa: 원천 CSV의 대화ID와 라벨 JSON의 대화ID를 교차검증해서 커버리지 차이를 출력.
실행 결과 (2026-07-29, 이 세션에서 실제로 돌려본 값)
- 총 142,575건 (학습 122,951 / 검증 19,624), 평균 발화 16.5턴/대화
- 주제 9종, 정치(3,242건)·경제및사회(4,257건)가 다른 주제(1.7만~2.2만건)보다 훨씬 적음 — 주제별 균형이 필요하면 샘플링 시 감안할 것
- 화자 연령/성별 필드 노이즈 81건은 정제 과정에서
null로 치환 (버리지 않고 필드만 비움) - QA 결과: 원천(CSV) 쪽에는 라벨링된 142,575건 외에 34,030건이 더 있음 (라벨 없이 텍스트만). 화행/슬롯 라벨이 필요 없는 순수 언어모델링 목적이라면 이 34,030건도 추가로 끌어올 수 있다 — 다만 이번 스크립트는 라벨 JSON만 다루므로 추가 파서가 필요함 (아직 안 만듦)
반드시 지킬 것
- 원본 zip과 이 스크립트의 출력(JSONL)을 git에 커밋하지 않는다. AI-Hub 데이터는 이용약관상
제3자 재배포가 제한되고, 용량도 수백MB~1GB라 저장소에 맞지 않는다. 저장소 루트의
.gitignore에poc/tone-corpus/data/가 등록되어 있으니 원본·출력은 그 아래에 두고 작업할 것. - 이 저장소는 기획 문서 전용이라, 이 스크립트도 "PoC 도구"로만 취급한다 — 여기서 앱 코드/프레임워크로
확장하지 않는다 (
AGENTS.md참고). - 실제 모델 학습에 쓰기 전에, 이 데이터가 세션이 아닌 영구 저장소(본인 로컬/스토리지)로 옮겨졌는지 확인할 것 — 클라우드 세션은 종료되면 임시 파일이 사라진다.