Field Log · Entry
Synthetic Data와 Distillation: Rejection Sampling·Model Collapse (7/10)
오늘의 결론
- Synthetic data는 공짜 정답이 아니라 teacher가 만든 측정 오차를 가진 데이터입니다. 생성량보다 task coverage, provenance, 독립 verifier, human audit가 중요합니다.
- Rejection sampling은 후보를 많이 만든 뒤 점수가 높은 결과만 고르는 방법입니다. 같은 teacher가 생성과 채점을 모두 맡으면 자기 취향과 오류를 증폭할 수 있으므로 rule·execution·retrieval evidence·독립 judge를 함께 사용합니다.
- Distillation은 teacher의 final answer를 복사하는 SFT만 뜻하지 않습니다. Rationale, soft distribution, student가 실제로 방문하는 상태를 사용하는 on-policy distillation은 서로 다른 신호와 비용을 가집니다.
- 합성 데이터를 합성 데이터로 반복 대체하면 희귀 mode와 꼬리 지식이 사라질 수 있습니다. Real/human anchor, 세대 lineage, 중복·오염 검사, tail slice를 유지해야 합니다.
- Student가 teacher 문체를 닮는 것과 문제를 해결하는 것은 다릅니다. Locked human set, out-of-distribution task, factuality, calibration, safety, latency를 함께 평가합니다.
앞 글에서는 JSON Schema와 grammar로 출력 구조를 강제했습니다. 이제 그 구조를 이용해 대규모 instruction·rationale·tool trace를 합성하고, 어떤 샘플을 학습 데이터로 받아들일지 설계합니다.
real seeds + task taxonomy + target failure slices
↓
teacher generates N candidates per seed
↓
dedup → format → execution/evidence → safety → independent quality judge
↓
accept / reject / human review + reason code
↓
mix real + synthetic with explicit weights
↓
student SFT / KL distillation / on-policy distillation
↓
locked evaluation + contamination audit + lineage report
이 글에서 답하는 질문
- Synthetic instruction pipeline에서 seed, generator, filter의 역할은 무엇인가?
- Rejection sampling은 단순히 “점수가 높은 답”을 고르는 것과 어떻게 다른가?
- Hard-label SFT, logit distillation, on-policy distillation은 언제 다른가?
- Rationale를 학습하면 무엇이 좋아지고 무엇이 위험한가?
- Model collapse와 synthetic recursion을 어떻게 감지하고 줄이는가?
- RAG Agent용 query·tool call·failure trajectory를 어떻게 합성하는가?
1. Synthetic data는 분포를 설계하는 일이다
Teacher model에 “질문 10만 개를 만들어 줘”라고 요청하면 데이터 수는 빠르게 늘어납니다. 그러나 학습 성능은 행 수보다 어떤 task와 실패 조건을 얼마나 포함하는가에 좌우됩니다.
합성 데이터 분포를 다음처럼 생각할 수 있습니다.
$$ q(x, y, r) = q(x \mid \mathcal{T}, s);q_\text{teacher}(y,r \mid x,p);a(x,y,r) $$
- $\mathcal{T}$: task taxonomy와 난이도·도메인 slice
- $s$: seed example 또는 source document
- $p$: teacher prompt, role, decoding setting
- $x$: instruction·input
- $y$: final answer 또는 action
- $r$: rationale·evidence·tool trace
- $a$: filter가 샘플을 받아들이는 acceptance mechanism
Teacher가 아무리 강해도 $q(x)$가 좁으면 student는 같은 형태의 문제만 잘 풉니다. Filter가 teacher 문체를 선호하면 다양성이 줄고, generator와 judge가 같은 오류를 공유하면 잘못된 answer가 높은 점수를 받습니다.
따라서 pipeline의 첫 문서는 prompt가 아니라 coverage matrix여야 합니다.
| 축 | RAG Agent 예시 |
|---|---|
| Task | 검색, 비교, 요약, multi-hop, tool call, abstention |
| Difficulty | direct lookup, 조건 결합, 모순 문서, 정보 부족 |
| Domain | 제품 매뉴얼, 정책, 장애 기록, 연구 문서 |
| Input shape | 짧은 질문, 긴 문맥, 표, 날짜, 단위, 한국어·영어 혼합 |
| Failure | 잘못된 filter, evidence 누락, invalid argument, 권한 위반 |
| Output | 답변, citation, JSON contract, trajectory, refusal |
2. Self-Instruct에서 Magpie까지: instruction을 어떻게 만드는가
Self-Instruct는 작은 human-written seed task에서 새 instruction, input, output을 생성하고 invalid·유사 샘플을 filtering한 뒤 원래 모델을 instruction tuning하는 bootstrap pipeline을 제안했습니다. 중요한 부분은 “모델이 스스로 만들었다”보다 seed → 생성 → 유사도·형식 filter → fine-tuning이라는 데이터 공정입니다.
Seed-driven generation
Seed는 단순 예시가 아니라 task 분포의 방향을 정합니다.
{
"task_family": "evidence_sufficiency",
"difficulty": "contradictory_sources",
"language": "ko",
"source_ids": ["policy-v7", "policy-v9"],
"required_behavior": "ask_or_abstain",
"forbidden_shortcut": "use_latest_without_checking_effective_date"
}
이 metadata가 있어야 한 category가 40%를 차지하거나, “답할 수 없음” 사례가 사라지는 문제를 발견할 수 있습니다.
Seedless generation도 완전히 무조건은 아니다
Magpie는 aligned LLM의 chat template에 user message를 주지 않고 model이 instruction처럼 보이는 내용을 이어 생성하도록 하여 alignment data를 합성하는 아이디어를 제안했습니다. 이를 “아무 조건도 없다”고 오해하면 안 됩니다. Model checkpoint, chat template, system prefix, sampling parameter가 이미 강한 prior입니다.
Seedless 방식은 기존 seed 문구를 그대로 변형하는 경향을 줄일 수 있지만 다음 문제가 남습니다.
- Teacher의 선호 task와 언어가 과대표집될 수 있다.
- 제품에 필요한 rare failure가 자연스럽게 생성된다는 보장이 없다.
- 유용성·안전성·라이선스·개인정보 filter가 여전히 필요하다.
- 같은 base model의 hidden template bias가 dataset 전체에 복제될 수 있다.
실전에서는 seed-driven coverage와 open-ended discovery를 분리해 quota를 정하는 편이 안전합니다.
3. Candidate generation은 하나가 아니라 N개를 만든다
같은 input $x$에 대해 teacher가 $N$개 후보를 생성한다고 합시다.
$$ y_1,\ldots,y_N \sim p_T(y \mid x; \tau, \text{top-p}, p) $$
Temperature가 너무 낮으면 후보가 거의 같아지고, 너무 높으면 filter 비용과 오류가 늘어납니다. 하나의 global 설정 대신 task별로 조정합니다.
다양성을 만들어 내는 축
- 서로 다른 teacher family와 checkpoint
- prompt template과 persona가 아닌 해결 전략 변화
- retrieval evidence subset과 문서 순서 변화
- reasoning budget·tool budget 변화
- direct answer, decompose, verify-first 같은 policy 변화
- difficulty mutation: 조건 추가, distractor, 반례, missing evidence
Prompt paraphrase만 수십 개 만드는 것은 표면 다양성일 수 있습니다. Task graph, 필요한 evidence hop, tool sequence가 달라지는 구조적 다양성을 측정해야 합니다.
4. Rejection sampling은 acceptance rule을 설계하는 일이다
후보별 reward 또는 quality score $R(x,y)$가 있을 때 가장 단순한 best-of-$N$은 다음과 같습니다.
$$ y^* = \arg\max_{y_i} R(x,y_i) $$
더 넓은 의미의 rejection sampling은 acceptance probability로 후보를 받아들이거나 버립니다.
$$ P(\text{accept}\mid x,y) = \min\left(1, \frac{\exp(R(x,y)/\tau_R)}{M}\right) $$
Production data pipeline에서는 정확한 확률 분포 복원보다 다단계 gate가 흔합니다.
def accept(sample):
checks = {
"schema": schema_validator(sample),
"dedup": not near_duplicate(sample),
"execution": execute_in_sandbox(sample),
"evidence": evidence_entails_claims(sample),
"safety": safety_policy(sample),
"quality": independent_judge(sample),
}
hard_fail = any(
not checks[name].passed
for name in ["schema", "execution", "evidence", "safety"]
)
if hard_fail:
return "reject", checks
if checks["quality"].score < REVIEW_THRESHOLD:
return "review", checks
return "accept", checks
Filter의 우선순위
- Deterministic rule: parse, type, length, forbidden field
- Execution: code test, SQL parse, calculator, tool sandbox
- Evidence: claim과 source span의 entailment
- Model judge: relevance, clarity, pedagogical quality
- Human audit: critical slice와 disagreement
검증 가능한 것을 LLM judge에게 맡기지 않습니다. 숫자 계산은 calculator, code는 test, citation ID는 retrieved set membership으로 확인합니다.
Generator와 judge를 분리해야 하는 이유
같은 teacher가 만든 답을 같은 prompt family의 judge가 평가하면 공통 blind spot이 생깁니다. Model family 분리만으로 완전한 독립성이 생기지는 않지만, 다음 조합으로 상관 오류를 낮출 수 있습니다.
- 서로 다른 model family의 generator와 judge
- Rule·execution·retrieval evidence와 model score의 교차 검증
- Judge prompt blind test와 후보 순서 randomization
- Human-adjudicated calibration set
- Judge disagreement가 큰 샘플의 review queue
5. Hard-label SFT: 가장 단순한 distillation
Teacher가 만든 정답 token $y$를 student가 예측하도록 cross-entropy를 최소화합니다.
$$ \mathcal{L}\text{SFT} = -\sum_t \log p_S(y_t \mid x, y{<t}) $$
장점은 API teacher만 있어도 가능하고 기존 SFT pipeline을 그대로 사용할 수 있다는 점입니다. 단점은 teacher가 다른 token에 부여한 상대 확률을 잃는다는 점입니다. Teacher의 한 sampled response가 유일한 정답처럼 취급됩니다.
Response-only loss를 명시한다
Chat dataset에서 system·user·tool observation까지 target loss에 넣으면 student가 사용자 문장을 생성하거나 tool result를 흉내 내는 방향으로 학습할 수 있습니다.
system tokens loss mask 0
user tokens loss mask 0
assistant rationale loss mask policy-dependent
assistant answer loss mask 1
tool call loss mask 1
tool result loss mask 0
Tool trajectory는 role boundary와 loss mask를 dataset artifact로 저장해야 합니다.
6. Logit distillation: teacher의 soft distribution을 배운다
Teacher와 student의 token distribution을 temperature $T$로 부드럽게 만들고 KL divergence를 줄입니다.
$$ \mathcal{L}\text{KD} = T^2 \sum_t D\text{KL}\left( p_T^T(\cdot\mid h_t);|;p_S^T(\cdot\mid h_t) \right) $$
이 방식은 teacher logits에 접근할 수 있어야 하고 두 tokenizer가 다르면 vocabulary 정렬이 어렵습니다. Closed API teacher에서는 top logprobs만 제공되거나 전혀 제공되지 않을 수 있습니다.
또한 teacher-forced prefix $h_t=(x,y_{<t})$에서만 학습하면 student가 추론 중 자기 실수를 만든 뒤 방문하는 상태를 보지 못합니다. 이것이 on-policy distillation이 등장하는 이유입니다.
7. On-policy distillation: student가 실제로 방문하는 상태에서 가르친다
Offline distillation은 teacher dataset의 trajectory에 student를 맞춥니다. On-policy 방식은 student가 현재 policy로 만든 sequence를 teacher가 평가하거나 distribution target을 제공합니다.
student samples y ~ pS(.|x)
↓
teacher scores / supplies token distribution on student prefix
↓
student updates on its own visited states
Generalized Knowledge Distillation은 student가 생성한 output을 활용하는 on-policy distillation을 다룹니다. 이 방식은 exposure mismatch를 줄일 수 있지만 다음 비용이 있습니다.
- 학습 중 teacher inference가 반복되어 비용이 크다.
- 약한 student 초기 policy가 너무 나쁘면 teacher signal도 유용한 영역을 벗어난다.
- Teacher가 student의 잘못된 prefix 뒤에서 안정적으로 target을 제공해야 한다.
- Sampling·teacher version이 바뀌면 dataset이 고정되지 않아 재현이 어렵다.
따라서 처음에는 high-quality offline SFT로 warm start하고, 실패 slice 중심 on-policy stage를 별도로 운영하는 설계가 실용적입니다.
8. Rationale distillation: 정답뿐 아니라 풀이 신호를 준다
Distilling Step-by-Step은 LLM이 만든 rationale을 additional supervision으로 활용하는 multi-task 학습을 제안했고, Orca는 explanation trace와 다양한 system instruction을 통한 progressive learning을 탐구했습니다.
Rationale에는 다음 장점이 있습니다.
- Final label보다 더 많은 token-level supervision을 제공한다.
- 문제 분해·중간 개념·근거 연결을 student가 관찰할 수 있다.
- 어떤 단계에서 실패했는지 filter와 curriculum을 만들기 쉽다.
그러나 긴 rationale이 항상 좋은 것은 아닙니다.
- Teacher의 그럴듯하지만 틀린 중간 설명이 복제될 수 있다.
- 정답을 먼저 알고 사후에 만든 설명은 실제 인과적 reasoning과 다를 수 있다.
- Student capacity보다 복잡한 trace는 문체 모방만 유발할 수 있다.
- 민감한 내부 reasoning 공개를 제품 contract로 만들 필요는 없다.
- 긴 target은 학습 비용과 verbosity를 늘린다.
RAG Agent에서는 자유로운 장문 rationale보다 검증 가능한 intermediate artifact가 더 유용할 수 있습니다.
{
"subquestions": ["...", "..."],
"evidence_ids": ["doc3:s7", "doc8:s2"],
"tool_calls": [{"name": "calculator", "args": {"expr": "..."}}],
"decision": "answer",
"answer": "..."
}
Subquestion coverage, evidence membership, tool execution을 자동 검사할 수 있기 때문입니다.
9. Self-rewarding과 반복 합성의 위험
Self-Rewarding Language Models은 model이 instruction-following judge 역할도 수행하며 iterative preference training data를 만드는 방향을 연구했습니다. 이러한 loop는 scalable하지만, generator와 evaluator가 같은 개선 loop에 있으면 잘못된 기준이 강화될 수 있습니다.
model generation bias
↓
same-model reward bias
↓
selected synthetic data
↓
next model learns both biases
↺
Self-reward를 사용할 때는 다음 anchor를 둡니다.
- 각 iteration에서 고정된 human gold set
- Model reward와 무관한 execution·evidence metric
- 이전 세대와 다음 세대의 blind pairwise human comparison
- Reward model이 보지 못한 adversarial slice
- Acceptance reason과 rejected sample의 보존
10. Model collapse: 희귀한 실제 분포가 사라진다
The Curse of Recursion은 생성 데이터가 다음 세대 학습 데이터로 반복 사용될 때 원래 분포의 tail을 잃고 오류가 누적될 수 있음을 분석했습니다. “Synthetic data를 한 번 쓰면 바로 collapse한다”는 뜻이 아니라, 실제 분포를 합성 근사치로 계속 대체하는 재귀 과정의 위험을 말합니다.
왜 tail이 먼저 사라지는가
Teacher sampling은 높은 확률 영역을 더 자주 생성합니다. Filter도 전형적이고 읽기 좋은 답을 선호합니다. 그 결과 다음이 줄어듭니다.
- 희귀 용어와 낮은 빈도 entity
- 모호하고 불완전한 실제 사용자 질문
- 여러 정답이 가능한 경계 사례
- Teacher가 어려워하는 긴 꼬리 reasoning pattern
- 비표준 문체·오탈자·코드스위칭
방어 원칙
- Real anchor를 보존합니다. 새 synthetic batch가 기존 real data를 대체하지 않게 합니다.
- Generation을 lineage로 표시합니다.
source_generation=0|1|2를 저장합니다. - Synthetic-from-synthetic 비율을 제한합니다.
- Rare slice quota를 별도로 채웁니다.
- Distribution statistic과 embedding coverage를 세대별로 비교합니다.
- Human-authored locked set에서 성능이 유지되는지 확인합니다.
- Failure와 rejected example도 분석용으로 보존합니다.
11. 중복과 contamination은 별개의 문제다
Deduplication
동일하거나 거의 같은 샘플이 train에 반복되어 특정 prompt template에 과도한 weight를 주는 문제입니다.
- Exact hash와 normalized text hash
- MinHash·LSH 기반 n-gram 유사도
- Embedding nearest neighbor
- Instruction, input, response 각각의 중복 검사
- Template boilerplate 제거 후 다시 검사
Benchmark contamination
평가 문제나 그 해설이 train data에 들어가 점수가 부풀려지는 문제입니다.
- 공개 benchmark 원문·paraphrase blacklist
- N-gram과 semantic similarity 양쪽 검사
- 평가 문항에 secret canary 삽입
- Teacher prompt에 benchmark 문서가 들어갔는지 provenance 기록
- Test set을 만든 뒤 생성한 데이터만 사용했다는 시간 정보
Teacher 자체가 benchmark를 학습했을 가능성은 output dedup만으로 해결되지 않습니다. 그래서 최종 평가는 private·newly collected task와 실제 traffic holdout이 필요합니다.
12. RAG Agent용 synthetic data를 만드는 네 가지 방법
12.1 문서에서 answerable query 만들기
Source span을 먼저 고르고 그 span으로 답할 수 있는 질문을 생성합니다. 질문부터 만들고 검색하게 하면 teacher 기억에 의존한 답이 섞일 수 있습니다.
source span → atomic claims → query → answer → citation
↓
verify answer entailed by span
12.2 Hard negative와 distractor 만들기
같은 entity지만 날짜·버전·조건이 다른 문서를 섞어 retrieval과 evidence sufficiency를 훈련합니다. 단순 random negative보다 실제 오류에 가깝습니다.
12.3 Tool call argument 만들기
앞 글의 schema로 구조를 제한하고 sandbox execution으로 검증합니다. Invalid call도 버리기만 하지 말고 error type을 붙여 repair·abstention 학습에 사용합니다.
12.4 Failure trajectory 만들기
정답 trajectory만 학습하면 첫 tool call이 틀린 뒤 복구하는 법을 배우기 어렵습니다. Timeout, empty retrieval, conflicting evidence, permission denied를 주입하고 bounded recovery target을 생성합니다.
단, side effect가 있는 실제 tool에서 합성 탐색을 실행하지 않습니다. Simulator·sandbox·read-only replica를 사용합니다.
13. 데이터 mixture는 비율과 목적을 기록한다
최종 train distribution을 다음처럼 구성할 수 있습니다.
$$ p_\text{train} = \alpha p_\text{real} + \beta p_\text{human} + \gamma p_\text{synthetic} + \delta p_\text{failure} $$
$\alpha,\beta,\gamma,\delta$는 보편 상수가 아닙니다. 다음 실험으로 정합니다.
| 실험 | 확인할 것 |
|---|---|
| Real only | 신뢰할 baseline과 tail 성능 |
| Real + synthetic 10% | 낮은 합성 비율의 이득 |
| Real + synthetic 50% | coverage 증가와 style shift |
| Synthetic only | 실제 분포를 잃는 정도, 일반 배포용으로는 주의 |
| No rationale | final answer supervision의 효과 |
| Rationale included | reasoning 이득과 verbosity·오류 전파 |
| No rejection | filter가 실제로 제공한 이득 |
| Generator=judge | 자기 편향 크기 |
| Independent judge | 상관 오류 감소 여부 |
Average score만 보지 말고 rare entity, 정보 부족, 모순 문서, 한국어 복합어, 긴 tool trajectory에서 성능을 나눠 봅니다.
14. 데이터 카드와 lineage record
각 샘플이 어떻게 만들어졌는지 재현할 수 있어야 합니다.
{
"sample_id": "syn-20260716-000184",
"source_type": "human_document",
"source_ids": ["manual-v12:p18:s4"],
"source_generation": 1,
"seed_id": "seed-evidence-conflict-07",
"generator_model": "teacher-name@revision",
"generator_prompt_hash": "sha256:...",
"sampling": {"temperature": 0.7, "top_p": 0.95, "n": 8},
"candidate_rank": 2,
"filters": {
"schema": "pass",
"execution": "pass",
"evidence": "pass",
"judge": 0.86,
"dedup": "pass"
},
"accept_reason": "all_hard_gates_and_quality",
"license": "internal-approved",
"pii_scan": "pass",
"split": "train"
}
Model name만 기록해서는 재현되지 않습니다. Revision, prompt hash, decoding setting, source version, filter version이 필요합니다. 개인정보와 저작권이 있는 원문은 별도 접근 통제와 retention policy를 적용합니다.
15. 평가: teacher를 닮았는지가 아니라 목적을 달성했는가
Data-level
- Task·domain·language·difficulty coverage
- Exact·near duplicate 비율
- Acceptance rate와 reason별 rejection rate
- Source-grounded factuality와 execution pass rate
- Judge-human agreement와 slice별 calibration
- Real/synthetic/세대별 비율
- 개인정보·라이선스·benchmark contamination
Model-level
- Locked human test의 task success
- Teacher와 다른 표현의 정답도 인정하는 evaluator
- Out-of-distribution task와 rare slice
- Hallucination·citation·abstention
- Calibration과 selective risk
- Safety·bias regression
- Latency, token length, serving cost
- Teacher 대비 성능뿐 아니라 기존 student baseline 대비 개선
Student가 teacher와 동일한 긴 문체를 쓰는 것은 높은 품질의 충분조건이 아닙니다. 간결한 답이 필요한 제품이라면 verbosity는 오히려 regression입니다.
16. 2026년 연구를 읽는 방법
2026년 2월 공개된 preprint Pedagogically-Inspired Data Synthesis for Language Model Knowledge Distillation은 교육학적 관점의 data synthesis와 curriculum을 distillation에 연결합니다. 최신 연구를 실무에 반영할 때는 다음을 구분해야 합니다.
- Peer-reviewed 결과인지 preprint인지
- 특정 benchmark·teacher·student 조합의 결과인지
- Data synthesis와 training objective 중 무엇이 이득을 만들었는지
- Human data·baseline compute가 공정하게 통제됐는지
- 공개되지 않은 prompt와 filtering이 재현성에 미치는 영향
새 논문 이름을 pipeline에 붙이기보다 seed, candidate, acceptance, mixture, evaluation 네 축으로 환원해 현재 baseline과 ablation합니다.
17. 최소 구현 순서
- 실제 실패 로그에서 task taxonomy 5개와 critical slice를 정합니다.
- Human-verified seed를 각 slice에 작게 만듭니다.
- Teacher가 seed당 여러 후보와 provenance를 출력하게 합니다.
- Schema, execution, evidence, safety hard gate를 먼저 구현합니다.
- Independent judge를 human set에 calibration합니다.
- Rejected sample과 rejection reason도 보존합니다.
- Exact·near dedup과 benchmark contamination 검사를 split 전에 수행합니다.
- Real anchor를 유지한 작은 synthetic mixture로 SFT합니다.
- Locked human·tail·safety·calibration set에서 평가합니다.
- Filter와 mixture ablation 후에만 규모를 늘립니다.
18. 실전 체크리스트
- 합성하려는 task와 실제 제품 실패가 연결돼 있다.
- Seed coverage와 open-ended discovery quota를 분리했다.
- Teacher model·revision·prompt hash·sampling setting을 기록한다.
- 하나의 input에서 여러 candidate를 생성한다.
- Deterministic·execution·evidence filter를 model judge보다 먼저 둔다.
- Generator와 judge의 상관 오류를 human set에서 측정한다.
- Rationale의 사실성·길이·student capacity를 검토했다.
- Chat role별 loss mask가 명시돼 있다.
- Real/human anchor가 synthetic batch에 의해 대체되지 않는다.
- Source generation과 lineage를 기록한다.
- Train/eval contamination과 near duplicate를 split 전에 검사한다.
- Rare mode와 실제 사용자 노이즈를 별도 slice로 유지한다.
- Locked human test와 안전·calibration regression gate가 있다.
- Rejected sample도 분석 가능한 형태로 보존한다.
스스로 확인하기
Q1. Teacher가 student보다 강하면 모든 output을 학습해도 되는가?
아닙니다. Teacher도 오류·편향·오염을 갖고 있으며, 제품의 task 분포와 다른 output을 만듭니다. 검증과 coverage 설계가 필요합니다.
Q2. Rejection sampling에서 가장 높은 judge 점수 하나만 고르면 충분한가?
아닙니다. Judge의 편향으로 다양성이 사라질 수 있습니다. Hard correctness gate, diversity quota, human calibration을 함께 둡니다.
Q3. Rationale가 길수록 student가 더 잘 추론하는가?
보장되지 않습니다. 틀린 설명과 불필요한 verbosity도 학습합니다. 검증 가능한 intermediate artifact와 길이 ablation이 필요합니다.
Q4. Synthetic-only 학습이 항상 model collapse를 일으키는가?
한 번의 synthetic 학습이 자동으로 collapse를 뜻하지는 않습니다. 실제 분포를 여러 세대의 생성 근사로 반복 대체하고 tail을 보존하지 않을 때 위험이 커집니다.
Q5. 가장 먼저 자동화할 filter는 무엇인가?
정답을 확정할 수 있는 deterministic·execution·evidence filter입니다. 주관적인 model judge보다 오류 유형이 명확하고 감사하기 쉽습니다.
마무리
Synthetic data pipeline은 teacher 호출 스크립트가 아니라 새로운 데이터 생산 시스템입니다. Task taxonomy가 수요를 정하고, generator가 후보를 만들고, filter가 acceptance bias를 만들며, mixture가 student가 보게 될 세계를 결정합니다.
좋은 distillation은 teacher의 말투를 복사하지 않습니다. Student가 실제로 실패하는 상태를 찾아 검증 가능한 신호를 제공하고, 실제 데이터의 희귀 mode를 지키며, 독립된 평가에서 목적을 달성하는지 확인합니다. 생성량을 늘리기 전에 lineage와 rejection reason부터 남기는 이유가 여기에 있습니다.
다음 글에서는 tool schema·문서·실행 결과에서 training example을 만들고, function call SFT와 execution-grounded reinforcement learning으로 unknown tool과 schema drift에 대응하는 방법을 다룹니다.
참고문헌
- Wang et al., Self-Instruct: Aligning Language Models with Self-Generated Instructions, ACL 2023.
- Hsieh et al., Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes, Findings of ACL 2023.
- Mukherjee et al., Orca: Progressive Learning from Complex Explanation Traces of GPT-4, 2023.
- Agarwal et al., On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes, 2023.
- Shumailov et al., The Curse of Recursion: Training on Generated Data Makes Models Forget, 2023.
- Yuan et al., Self-Rewarding Language Models, 2024.
- Xu et al., Magpie: Alignment Data Synthesis from Scratch by Prompting Aligned LLMs with Nothing, 2024.
- Sun et al., Pedagogically-Inspired Data Synthesis for Language Model Knowledge Distillation, 2026 preprint.
검증 메모 — 문헌 링크와 서지 정보는 2026년 7월 16일 확인했습니다. 마지막 논문은 peer review가 완료된 표준이 아니라 2026년 preprint이므로 기존 검증 연구와 분리해 표기했습니다.