1. Back Translation (역번역)
- 요약문에 적용하거나, 대화 전체에 적용 가능
- 예: 한국어 → 영어 → 한국어로 번역
- ✔ 의미는 유지되며 표현은 달라져 다양한 paraphrasing 유도 가능
- HuggingFace
MarianMT 등을 활용 가능
2. Paraphrasing (의미 유지한 문장 재작성)
- Transformer 기반 모델(BART, T5 등)로 요약문 또는 대화 paraphrase
- ✔ 같은 의미지만 다양한 문장 구조 생성
- 대화체를 너무 공식적으로 바꾸지 않게 주의
- KoT5, KoBART 등을 사전학습 모델로 사용 가능
3. Synonym/Expression Replacement (동의어/표현 교체)
- 구어체 표현들 일부를 유사 표현으로 바꾸기
- 예: “그래서?” → “그러면?” / “좋아요” → “괜찮네요”
- ✔ 대화의 다양성 확보, 하지만 너무 많은 변경은 의미 손상 가능
4. Turn-Level Shuffle (부분 순서 바꾸기)
- 일부 turn(화자의 발화) 순서를 shuffle
- ✔ 단, 맥락이 바뀌지 않도록 인접한 turn끼리 제한적으로 적용
- 예: 질문-답변 구조를 유지하며 유사 맥락의 순서 변경
5. Partial Dialogue Masking & Generation
- 대화 일부를 [MASK] 처리한 후, 생성 모델로 복원 (BART 방식)
- ✔ 대화 생성 능력을 통해 데이터 다양화 가능
- ex. KoBART로 학습하여 일부 발화 예측
6. CutMix for Dialogue
- 서로 다른 대화의 앞부분과 뒷부분을 섞어 새 대화 구성
- ✔ 화자 간 논리 흐름을 해치지 않도록 주의
7. 요약 길이 증강 (다중 요약 생성)
- 기존 요약문보다 짧은 버전/긴 버전으로 각각 생성
- ✔ 다양한 길이의 요약 데이터를 생성해 학습에 도움
원본데이터수 : 증강데이터수 비율은 어떻게 설정하면 좋을까?
🧠 과적합 위험 요인 분석
| 위험 요소 | 설명 | 해결 방법 |
|---|
| ⚠ 증강이 단순 복제 | 의미가 거의 같은데 단어만 바뀐 경우 → 모델이 그 “패턴”에만 과적합 | Solar의 temperature, top_p를 높이고 스타일 다양화 유도 |
| ⚠ 증강이 원본을 압도 | 원본은 10k인데, 증강도 10k → 모델이 "가짜" 데이터를 더 많이 학습하게 됨 | 원본:증강 = 2:1 비율 유지하거나 loss weight 조절 |
| ⚠ 평가 데이터와 스타일 불일치 | 증강된 표현이 평가 set과 안 맞는 스타일이면 ROUGE 점수 낮아짐 | 문어체 스타일 유지 및 few-shot style 고정 필요 (이미 하셨음!) |
🔁 대안: 학습 시 증강 샘플별 가중치 조절
PyTorch 기준 예시:
`
loss = (loss_original + 0.5 * loss_augmented) / 1.5`
또는 증강 샘플마다 is_augmented 컬럼을 추가해서 모델이 인지하도록 구성해도 좋아요.
CV와 달리 증강 수 조절이 필요한 이유
CV나 일반 분류는 증강으로 "양 늘리면" 성능↑ → 매우 잘 맞음
LLM은 "양 늘리기"보다 "질 다양화"가 중요 → 양만 많으면 과적합 가능성↑
| 항목 | CV 분류 | LLM 요약 / 생성 |
|---|
| 🎯 학습 목표 | 고정된 class 분류 | 자유로운 텍스트 생성 |
| 📦 데이터 구조 | 고정 입력 → 고정 출력 (ex. 이미지 → 라벨) | 입력/출력 모두 자유형 텍스트 |
| 🔁 증강 방식 | crop, rotate, synonym 등 → 여전히 같은 class | 표현 다양화, 스타일 변화 필요 |
| 📈 증강 효과 | 대부분 데이터 많을수록 성능↑ | 데이터 양보다는 표현 다양성, 품질이 더 중요 |
| ⚠️ 리스크 | 거의 없음 | 의미 중복, 스타일 붕괴, 과적합 가능 |
✅ CV 문서 분류
- 원본: “이 문서의 카테고리는 스포츠인가?”
- 증강: 글자 바꾸기, 순서 바꾸기, synonym 바꾸기
- → 라벨은 그대로, 모델은 robust한 feature 학습 가능
- ✅ 양 많을수록 일반화 잘됨
❌ LLM 요약
- 원본 dialogue → summary (style, tone, 문체 중요)
- 증강을 많이 하면:
- 의미가 비슷한 문장이 과도하게 반복됨
- 평가 set에 style mismatch 발생
- 모델이 “요약 스타일”을 헷갈리게 됨
- → 양보다 스타일 다양성과 평가 기준 일치가 더 중요
✅ 예외: LLM에서도 데이터가 많으면 성능 ↑ 되는 경우
- pretraining or instruction tuning 단계에서는 양이 많을수록 좋음
- 하지만 fine-tuning (예: dialogue summarization task)에선
→ “중복 많은 데이터”는 오히려 성능 하락을 초래할 수 있음
✅ 권장 전략
- 증강 비율: 원본 1 : 증강 0.5~1.0
- 증강 다양성 체크: 동일 토큰/어절 비율이 높은 데이터 필터링
- validation 성능이 떨어지기 시작하면 증강을 줄여야 할 신호
🎯 dialogue, summary 증강 비율
summary 증강은 적게, dialogue 증강은 넉넉하게
→ 왜냐하면 요약 스타일은 너무 많이 바꾸면 평가 스타일과 mismatch될 수 있기 때문이에요.
🧠 이유별 설명
| 구분 | 요약(summary) 증강 | 대화(dialogue) 증강 |
|---|
| 🎯 목표 | 다양한 요약 표현을 학습 | 다양한 입력 분포를 학습 |
| ⚠️ 리스크 | 평가 기준과 스타일 mismatch 가능성 높음 | 상대적으로 자유로움 |
| 🧩 스타일 고정 중요도 | 매우 높음 (문어체, 3인칭, 존댓말) | 상대적으로 낮음 (구어체만 유지하면 됨) |
| 🧪 모델 영향 | Decoder의 "출력 생성 스타일"에 영향 | Encoder 입력 다양성 향상 |
| 🔁 증강 후 평가 ROUGE 영향 | 너무 다르면 점수 낮아짐 | 표현 다양성 늘어나면 점수 ↑ 가능 |
✅ 추천 비율 (권장안)
| 구성 | 수량 기준 (원본 10,000 기준) | 비율 |
|---|
| 원본 | 10,000 | 100% |
| dialogue 증강 | 5,000 ~ 10,000 | ✅ 원본 0.5~1배 수준 |
| summary 증강 | 2,000 ~ 3,000 | ✅ 원본 0.2~0.3배 수준 |