合成データ:モデルの出力でモデルを訓練する
実データが尽きたとき、モデルは自らの訓練データを生成できます。強力で、わずかに循環的で、出どころを忘れれば危険です。
機械学習はつねにデータに飢えてきましたが、しばらくの間その供給は無尽蔵に思えました。しかし特定のタスクのための高品質なデータ——ラベル付けされた例、きれいな指示、丁寧なデモンストレーション——は高価で、希少で、ときに法的または倫理的に立ち入り禁止です。そこでこの分野は、ほとんど逆説的に響くアイデアへと傾きました。モデルを訓練するために使うデータを、モデルに生成させる。 これが合成データであり、現代のAIがどう作られるかにおいて、静かに最も重要な材料の一つになっています。
その前提は循環的に感じられ、ある意味でそうです。技巧は、その循環を退行的ではなく生産的にすること——井戸をじわじわ汚すことなく、生成に投じた以上のものをモデルの出力から引き出すこと——にあります。
そもそもなぜデータを生成するのか
実データには実際の限界があり、その一つ一つが合成データを検討する理由になります。
- ほとんど存在しないデータがある。 まれな事象、珍しいエッジケース、低リソース言語、めったにないシナリオは、まさにモデルに扱ってほしい状況であり、まさに自然な例が最も少ない状況です。
- ラベル付けは高価。 生データが存在する場合でも、それをモデルが学べるラベル付き・教示的な形に変えるには、安くスケールしない人手がかかります。
- 実データには制約が伴う。 個人情報を含んだり、利用制限の対象だったり、共有が不可能だったりします。合成データは、そうした問題を回避するよう設計できます。
- 必要なものを正確に狙える。 適切な例がコーパスに現れることを願う代わりに、教えたい技能や状況をまさに多数生成するようモデルに頼めます。
最後の点が最も深い動機です。合成データはカリキュラムを製造することを可能にします。モデルがある種の推論に弱いなら、自然発生のものを世界中から探し回るのではなく、焦点を絞った練習問題を大量に生成できます。
合成データが取る形
「合成データ」は、モデルにどれだけ依存するかが異なる一連の手法を包含します。
最も軽い手つきが拡張です。実例を取り、それを変換して変種を作る——文を言い換える、画像をわずかに変える——ことで、小さなデータセットをさらに伸ばします。データはほぼ実データで、ただ増やされているだけです。
より重いアプローチが完全生成です。有能なモデルに、例をゼロから生成するよう頼みます。質問と答えを生成し、指示と理想的な応答を書き、問題への解法を作る。ここではモデルがデータの変換者ではなく、データの源です。
とくに効果的なパターンが、強いモデルでより弱いまたは小さいモデルを教えるものです。強いモデルが高品質なデモンストレーションを生成し、それが生徒の訓練データになります。これは蒸留と大きく重なり、有能な振る舞いがより小さく安価なモデルに詰め込める主な理由の一つです。高価なモデルが難しい思考を一度行い、その出力が再利用可能な教材コーパスになります。
より微妙なパターンが、モデルに生成させ、それから自らの出力をフィルタリングさせるものです。多数の候補答案を生成し、何らかのチェックで良いものだけを残し、生き残ったものを訓練に使います。モデルは、自らの最良の仕事から学びつつ残りを捨てることで、自分自身をブートストラップします。
そもそもなぜ機能するのか
疑いを抱くのはもっともです。モデルが学んだことしか知らないなら、その出力がどうやって新しいことを教えられるのでしょうか。その解決は、生成と学習が同じ操作ではないこと、そしていくつかの実際の仕組みがそのループを生産的にすることにあります。
モデルはしばしば、一発で良い答えを生成するよりも、良い答えを確実に認識できます。多数の試みを生成し、チェックを通るものだけ——走るテスト、確認する検証器、報酬シグナル——を残すことで、散らばった能力をきれいで一貫した訓練データへと蒸留できます。モデルは時々正しくある方法を知っていました。フィルタリングは「時々」を「確実に」へと変えるのです。
生成はまた、既存の知識をより学びやすい形へ再構成できます。生のテキストをきれいな質問と答えのペアに変えたり、簡潔な解法を段階的な説明に変えたり。情報は潜在していました。合成生成はそれを明示的で学びやすいものにします。そして一つの強いモデルは、その能力を多くの小さなモデルへ移し、作るのに高くついた能力を広められます。
危険:モデル崩壊
楽観的な物語には鋭い限界があり、それを無視することが合成データのつまずきにつながります。実データに根ざすことなく、世代から世代へとひたすらモデルの出力でモデルを訓練すると、品質は劣化し得ます。これはしばしばモデル崩壊と呼ばれるプロセスです。
直観としては、モデルの出力は現実の損失を伴う反映だということです。その出力で訓練すれば、学ぶのは原物ではなく反映です。まれなケースや分布の裾——珍しいもの、意外なもの、難しいもの——はまさにモデルが出力で過小に表すものなので、世代ごとに少しずつ薄れていきます。ループを繰り返せば、モデルの世界は当たり障りのない平凡な中央へと狭まり、それを有能にしていた多様性を失います。コピーのコピーのように、各回がディテールを失い、それはループの内側からは決して回復できません。
これが合成データの中心的な戒めの物語です。モデルの出力は現実との接触の代替ではなく、その派生物です。実で多様な、人間に根ざしたデータとの接続を完全に断てば、それを良いものにしていたまさにそのものを、システムからじわじわ抜いてしまう危険があります。
井戸を汚さずに合成データを使う
合成データをうまく使う実践者は、それを置き換えではなく補完として扱い、現実への係留を保ちます。
- 実データを混ぜる。 本物で多様なデータを訓練の混合に保ち、モデルが錨を下ろし、裾が消えないようにします。
- 積極的にフィルタする。 合成データはその品質管理と同程度にしか良くなりません。大量に生成し、検証可能に良い割合を残すことに、価値の多くが宿ります。
- 生成を何か実のものに根ざさせる。 生成器を、無からテキストを紡ぎ出させるのではなく、実の文書、実の制約、チェック可能なシグナルから働かせます。
- 狭まりに目を配る。 平均品質だけでなく多様性を監視します。きれいに見えても多様性を失ったデータセットは、崩壊のダイナミクスが根を張りつつある警告サインです。
このように行えば、合成データは実データの代替ではなく増幅器になります——そしてその二つの捉え方の違いが、強力な手法と緩やかな失敗の違いなのです。
まとめ
合成データとは、モデルを訓練するデータをモデルに生成させる実践であり、実で、ラベル付けされた、高品質なデータが希少・高価・制約付きであるために不可欠になりました。それが機能するのは、認識・フィルタリング・再構成が、生の生成だけよりも信頼できる知識を引き出せるからであり、強いモデルの出力が多くの小さなモデルを教えられるからです。しかしそれは本物の危険をはらみます。実データから切り離され、自分自身にループされると、モデルの出力で訓練されたモデルはモデル崩壊で当たり障りのなさへと漂流します。規律は、合成データを現実に係留し続けること——実例と混ぜ、強くフィルタし、チェック可能な何かに根ざさせること——であり、そうすれば手元にあるものをじわじわ侵食するのではなく、増幅するのです。
