TL

合成データ生成

実データが枯れても、モデル自身に学習データを作らせて性能を伸ばす。蒸留・自己改善の原理と、モデル崩壊を避けるフィルタリング設計まで腹落ちする。

応用合成データ知識蒸留自己改善モデル崩壊データ品質最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.合成データ生成は、既存モデルや生成モデルに学習データを作らせる手法。用途は大きく、強い教師の出力を写す蒸留(distillation)と、自分の出力を選別して学び直す自己改善(self-improvement)に割れる。後者は「生成→検証→採択→再学習」のループで回す。
  • 2.最大のリスクはモデル崩壊(model collapse)。合成データで再帰的に学習すると分布の裾(低頻度事象)が世代ごとに痩せ、平均へ収束して多様性が消える。原因はサンプリング誤差の蓄積で、実データの混入(アンカー)と裾の保存が対策の核になる。
  • 3.品質は「正しさ」と「多様性」の二軸で担保する。正しさは検証器(実行結果・数値照合・多数決・報酬モデル)でフィルタし、多様性は温度・シード条件・重複除去で確保する。検証可能なタスクほど合成データが強く効き、主観的なタスクほど検証が難しい。

高品質な人間生成テキストは有限で、フロンティアモデルは事前学習データの「壁(data wall)」に近づきつつあります。合成データ生成は、この制約をモデル自身にデータを作らせることで押し広げる技術です。ただし作り方を誤ると、モデルは自分の尻尾を食べて痩せ細ります。原理と落とし穴を数理で押さえます。

合成データは「誰の分布を写すか」で二つに割れる

合成データ生成は雑多な技法の寄せ集めに見えますが、どの分布からサンプルし、何を教師信号にするかで整理すると二系統に分かれます。

系統データ源教師信号上限
蒸留(distillation)自分より強い教師モデルの出力教師の生成テキストや出力分布教師の性能(超えにくい)
自己改善(self-improvement)自分自身の出力を選別したもの検証器が「正しい」と認めた自分の出力生成より検証が易しい範囲まで

蒸留は、強い教師(大型モデルや専門モデル)にプロンプトを与えて生成させた入出力ペアで小型の生徒を学習させます。これは温度付きソフトターゲットで確率分布ごと写す古典的蒸留の一般化で、原理は 量子化と蒸留:モデル圧縮の原理 に詳説があります。教師が上限になるため、フロンティアを押し上げる用途には使えません。

自己改善はより野心的です。生成は難しいが検証は易しい(generation-verification gap)タスクでは、モデルは自力で正解を引き当てられなくても、出た候補が正しいかは判定できます。そこで自分の出力を検証器で選別し、通った分だけを教師データにして学び直せば、自分自身を超えられます。数学やコードのように答え合わせが機械的なタスクで特に強く効きます。

自己改善ループ:生成・検証・採択・再学習

自己改善の骨格は、拒否サンプリング(rejection sampling)に基づく反復ループです。STaR や RFT と呼ばれる系統がこの形を取ります。

初期モデル M0 を用意
loop t = 0, 1, 2, ...:
  1. 生成: 各問題 x に対し M_t で複数の解 y を温度付きサンプリング
  2. 検証: 検証器 V(x, y) で各 y の正誤を判定
  3. 採択: V が「正」と認めた (x, y) だけを合成データ D_t に集める
  4. 再学習: D_t(+元データ)で M_t を微調整し M_{t+1} を得る

このループが効く理由は、ステップ1で分布のばらつき(温度)を使って多数の候補を撒き、ステップ3で検証器が正しいものだけを残すことにあります。1問あたり多数サンプルすれば、単発では低確率でも「少なくとも1つは正解」の確率(pass@k)は高くなり、その正解を教師信号に変換できる。つまり推論時の探索を、学習時の重みに畳み込む操作です。

なぜ「検証が易しい」ことが決定的か

自己改善の上限は検証器の質で決まります。検証が生成より易しいタスク(実行して通るか、数値が一致するか)では、弱いモデルの出力からでも正解だけを濾し取れるので、教師なしで性能が伸びます。逆に検証が生成と同じくらい難しいタスク(文章の良し悪し、翻訳の自然さ)では、選別の精度が上がらず、ループは自分の誤りを強化しかねません。検証可能報酬で推論を伸ばす発想は GRPO/RLVRと検証可能報酬による推論強化 と地続きです。

採択したデータの使い方は二流派

検証を通った出力は、正誤の二値だけを見て SFT データに混ぜる**拒否サンプリング型(正解のみで教師あり微調整)と、正解と不正解の対にして選好学習に回す選好型(DPO 等で「正解 > 不正解」を学ばせる)**の二通りで使えます。前者は実装が単純で安定、後者は不正解からも「こう間違える」という負の信号を絞り取れます。選好からの学習の原理は RLHF と DPO:人間のフィードバックによるアライメント を参照。

モデル崩壊:合成データで学ぶと分布の裾が痩せる

合成データの最大の危険がモデル崩壊(model collapse)です。あるモデルの出力で次のモデルを学習し、それをまた繰り返す再帰的学習を続けると、世代を追うごとに分布の低頻度領域(裾)が失われ、多様性が縮んで平均へ収束します。最終的にモデルは限られたパターンしか吐かなくなります。

原因は難解ではなく、有限サンプルによる誤差の世代間蓄積です。分解すると三つの誤差が効きます。

誤差源何が起きるか裾への影響
統計的(有限サンプリング)有限個しか生成しないため低確率事象が抜け落ちる裾のイベントが次世代の訓練集合から消える
表現力(モデル容量)真の分布を完全には表現できない裾が近似で丸められる
最適化(学習の偏り)学習が高頻度モードに引っ張られるモードが痩せ平均に寄る

核心は統計的誤差です。ある事象が確率 p で起きるとき、N サンプル中に一度も現れない確率はおよそ (1-p)^N で、p が小さいほど「たまたま欠落」しやすい。欠落した事象は次世代の訓練データに存在せず、モデルはそれを二度と学べません。これが世代ごとに繰り返されると、裾は不可逆に削られていきます。分散は世代とともに単調に縮み、極限では分布が一点(デルタ分布)へ潰れる——これがモデル崩壊の数理的な帰結です。

崩壊は「壊れた出力」ではなく「無難で単調な出力」として現れる

モデル崩壊の厄介さは、初期段階が壊滅ではなくもっともらしいが多様性の乏しい出力として現れる点です。事実誤認や文法崩壊が出れば気づけますが、崩壊は「無難で似たり寄ったりの、平均的な応答ばかりになる」形で進みます。珍しい語彙・少数派の視点・低頻度の事実が静かに消え、ベンチマークの平均スコアは保たれたまま分布の端だけが痩せることさえある。だから平均指標だけでなく、多様性・カバレッジ・裾の性能を別途監視する必要があります。

崩壊を防ぐ原則は二つです。第一に実データを毎世代アンカーとして混ぜる——合成データで既存データを置き換えるのではなく蓄積(accumulate)して足せば、実分布が錨となり崩壊は大きく緩和されることが知られます。第二に裾を意図的に保存する——低頻度サンプルを重み付けして残す、多様性を測って枯れたら実データを増やす、といった監視をループに組み込みます。

品質と多様性を担保する:フィルタリングと検証

合成データの価値は生成量ではなく選別後の質で決まります。担保すべきは直交する二軸——**正しさ(correctness)多様性(diversity)**です。片方だけでは足りません。正しいが単調なデータは崩壊を招き、多様だが誤ったデータはノイズを注入します。

担保する手段測り方
正しさ検証器・フィルタで誤りを除去実行結果/数値照合/多数決の一致率/報酬モデルのスコア
多様性サンプリング条件を散らし重複を除去n-gram/埋め込みの重複率、語彙カバレッジ、話題分布

正しさのフィルタは、タスクの検証可能性に応じて強さが変わります。

検証器の強さ(強 → 弱):
  実行・コンパイル : コードを実際に走らせ、テストが通るか(ほぼ確実)
  数値・記号照合   : 数学の最終解を正解と厳密比較(確実)
  自己整合性       : 同じ問いに多数回答させ多数決(確率的だが有効)
  報酬モデル/LLM審査: 別モデルに良否を採点させる(主観タスク向けだが誤りうる)
LLM を審査員にする落とし穴

検証が機械化できないタスクでは「別の LLM に採点させる(LLM-as-a-judge)」に頼りがちですが、審査 LLM は自分と似た誤りを見逃し(相関する盲点)、長い回答や自分の生成物を高く評価する偏り(自己選好バイアス)を持ちます。審査器の誤りが合成データに漏れ、それで学んだモデルの誤りを同じ審査器が再び見逃す——という自己強化ループに陥ると、モデルは審査器の癖に過剰適合します。可能な限り実行・照合など機械的検証を優先し、LLM 審査は補助に留めるのが安全です。

多様性は、フィルタで削られやすいからこそ意識的に作り込みます。生成温度を上げて分布を広げる、プロンプトに属性やペルソナや難易度を条件付けして生成範囲を系統的に振る、生成後に埋め込み距離や n-gram で近すぎる重複を除去する、といった操作を組み合わせます。多様性を欠いた合成データは、たとえ全て正しくても前節のモデル崩壊を早めることを忘れてはいけません。

試験・面接で問われる要点
  • 二系統:蒸留=強い教師の出力を写す(上限=教師)。自己改善=自分の出力を検証器で選別し学び直す(上限=検証が生成より易しい範囲)。
  • 自己改善ループ:生成(多数サンプリング)→検証→採択(正解のみ)→再学習。推論時の探索(pass@k)を重みに畳み込む。
  • モデル崩壊:合成データの再帰学習で分布の裾が世代ごとに痩せ、分散が単調に縮み平均へ収束。主因は有限サンプリング誤差の蓄積(確率 p の事象が (1-p)^N で欠落)。
  • 崩壊対策:実データを毎世代アンカーとして混ぜ蓄積する、裾を保存・監視する。置き換えでなく足し込む。
  • 品質の二軸:正しさ(検証器でフィルタ)と多様性(温度・条件付け・重複除去)は直交。両方必要。
  • 検証可能性が肝:実行・数値照合が可能なタスクほど合成データが強く効く。LLM 審査は自己選好バイアスに注意。

まとめ:合成データは「生成」でなく「選別」の技術

合成データ生成の実体は、モデルに大量に吐かせることではなく、吐かせた中から何を残すかの設計です。

問い答えの軸そこから言えること
自分を超えられるか検証が生成より易しいか検証可能タスクなら自己改善で上限突破、主観タスクは蒸留止まり
なぜ崩壊するか有限サンプリングで裾が欠落し蓄積する実データを錨に混ぜ、裾を監視して保存する
何で品質を測るか正しさと多様性の二軸検証器でフィルタしつつ、多様性が枯れないよう条件を散らす

この地図を持つと、「合成データで学習したら平均は保てたのに珍しいケースで急に弱くなった」「教師蒸留したのに教師を超えない」「自己改善ループが誤りを強化した」といった現象を、裾の消失・検証可能性・審査バイアスの言葉で切り分けられます。合成データが誤りを増幅する経路は 幻覚(ハルシネーション)の発生機構と抑制 と、データ量と性能の関係は スケーリング則(Chinchilla 則)とモデル設計 と合わせて読むと、「なぜデータの壁を合成で押し広げられるのか、その限界はどこか」が一枚の絵につながります。

AI/機械学習 Article

合成データ生成を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

合成データ

比較で見る軸

難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5

導入後に効く点

最大のリスクはモデル崩壊(model collapse)。合成データで再帰的に学習すると分布の裾(低頻度事象)が世代ごとに痩せ、平均へ収束して多様性が消える。原因はサンプリング誤差の蓄積で、実データの混入(アンカー)と裾の保存が対策の核になる。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
AI/機械学習
タグ数
5

判断チェックリスト

  • 自社の用途が「合成データ / 知識蒸留」に近いか確認する。
  • 強みである「合成データ生成は、既存モデルや生成モデルに学習データを作らせる手法。用途は大きく、強い教師の出力を写す蒸留(distillation)と、自分の出力を選別して学び直す自己改善(self-improvement)に割れる。後者は「生成→検証→採択→再学習」のループで回す。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

合成データ知識蒸留自己改善モデル崩壊データ品質合成データ知識蒸留自己改善