合成データとは
最適なトレーニングデータは、ユーザーとの実際の会話です。しかし、多くの場合、その数が少なすぎたり、簡単なケースしか網羅していなかったり、トレーニングしたいアシスタントがまだ存在していなかったりします。合成データはこのギャップを埋めます。高性能なモデルが、求める動作を示す会話例を作成し、より小規模または安価なモデルがそれらを使用してトレーニングされます。
これは現在では標準的な手法です。Self-Instructの論文(2022年)では、GPT-3に独自の指示と回答を作成させ、無効なものや重複に近いものを除外し、その結果を用いてGPT-3をファインチューニングしました。これにより、Super-NaturalInstructionsベンチマークで33%の絶対的な改善が見られました。スタンフォード大学のAlpaca(2023年)は、同じアイデアを使用して、500ドル未満で52,000件のデモンストレーションを作成しました。UltraChatは150万件のマルチターン対話を生成し、Microsoftのphi-1は、合成教科書で部分的にトレーニングされた13億パラメータのコードモデルが、HumanEvalベンチマークで50.6%に到達できることを示しました。
リスク:生徒が書き手を模倣する
別のモデルの文章でトレーニングされたモデルは、その知識と同じくらい忠実にその癖を学習します。生成されたすべてのユーザーが「こんにちは、…について質問があります」と切り出す場合、トレーニングされたモデルは丁寧で整った質問しか処理できなくなります。書き手が決して要求を拒否しない場合、生徒も同様になります。生成されたテキストでモデルを繰り返しトレーニングする研究(Shumailovら、2023年)では、まれなケース(分布の裾野)が最初に消失することがわかりました。したがって、優れた合成データにおいて重要なのは主に2つです。まれで扱いにくいケースを存在させるための多様性と、何が適切かを決定するためのコントロールです。
データセットビルダーの仕組み
概要は、何を構築するかを説明します。範囲は、アシスタントがカバーする内容と、同じくらい重要なこととして、カバーしない内容を示します。アシスタントが丁重に拒否したりリダイレクトしたりする範囲外のチャットは、モデルに自身の役割の限界を教えます。目標とストーリーラインは、優れた回答が何を達成するか、そしてアシスタントが何者であるか(トーン、ペルソナ、ルール)を示します。対象者はユーザーが誰であるかを示し、これが質問の形を決定づけます。指示には、その他のあらゆる事項(「常に次のステップで終わる」、「価格は絶対に提示しない」など)が含まれます。次に、数と制限が続きます。チャットの数、チャットあたりのターン数、最長の回答、最長のユーザーメッセージ、および言語です。オプションのドキュメントは、事実を提供します。
1. プラン。 チャットを作成する前に、モデルはプランを作成します。これはシナリオのリストであり、それぞれにトピック、ユーザータイプ、難易度(簡単、困難、エッジケース、または範囲外)、ユーザーの意図、およびそれぞれに割り当てられるチャット数が含まれます。最初に計画を立てることが多様性を生み出します。これがないと、100件のチャットを要求されたモデルは、同じ3つの質問の100通りのバリエーションを作成しがちです。何も作成されないうちに、プランを読み、行を編集または削除し、独自の行を追加します。
| トピック | ユーザータイプ | 難易度 | 意図 | チャット |
|---|---|---|---|---|
| 水道管破裂の報告 | 初めての請求者 | 簡単 | 住宅保険の請求を開始する | 8 |
| 通知遅れによる請求の却下 | 不満を抱く顧客、素っ気ない | 難しい | 理由を理解して異議を申し立てる | 9 |
| 2つの保険が適用される損害 | 家主 | エッジケース | どの保険が適用されるかを確認する | 8 |
| 写真と領収書の送信 | 高齢の顧客、アプリの操作に不慣れ | 簡単 | 証拠をアップロードする | 7 |
| 上の階の住人を訴える | 請求者 | 対象外 | 法的アドバイスを得る | 8 |
2. 生成。 プランを承認すると、チャットはバックグラウンドで作成され、それぞれがシナリオに適合するドキュメントの部分を利用します。いつでも一時停止、再開、またはキャンセルでき、ビルダーには残り時間のおおよその目安が表示されます。
3. チェック。 すべてのチャットは到着時にチェックされます。形式が正しくなければなりません。ユーザーとアシスタントが交互に発言し、ユーザーから始まりアシスタントの回答で終わる必要があります。モデルはしばしば、要求されたターン数より1つ多く、または少なく作成します。そのようなチャットは依然として良い例であるため、保持され、トリミングされます。役割の誤りや空のメッセージなど、壊れたチャットのみが破棄され、書き直されます。その他の問題にはフラグが立てられます。チャットは保持されますが、レビュー用にマークされます。
フラグは疑問を示すものであり、判定ではありません。拒否は、範囲外のシナリオでは完全に正しい対応ですが、それ以外の場合では警告のサインとなります。
4. レビューして追加。 チャットを読み、シナリオやフラグでフィルタリングし、編集または削除して、新規または既存のデータセットに追加します。そこでは合成としてマークされるため、常に実際のチャットと区別できます。同じビルドを再度追加しても、まだ含まれていないものだけが追加されます。
- 概要。 住宅保険の保険金請求アシスタント。対象外:法務アドバイスおよび他社の保険会社に関する事項。対象者:保険契約者(ストレスを抱えている方やアプリに不慣れな方も含む)。40件のチャット、ターン数の混在、最大400トークンの返答、ドキュメントとして2つのヘルプセンター記事。
- プラン。 自動生成のトピック:40 ÷ 8 = 5つのシナリオ。簡単な「破裂したパイプの報告」から、対象外の「隣人を訴えることはできるか?」まで。6つ目の難しいシナリオ(誤って2回提出された請求)を追加し、そこに2件のチャットを移動させます。
- 生成。 ビルダーは数分と見積もります。最初のチャットの後に一時停止して内容を確認し、その後再開します。
- 確認。 40件のチャットが到着します。3件は要求されたターン数にトリミングされ、1件の破損したチャットは書き直され、2件は拒否の可能性があるとしてフラグが立てられ(両方とも対象外のシナリオであるため正しい)、1件は根拠がないとしてフラグが立てられます。
- レビュー。 記事に照らし合わせて根拠のない返答を修正し、特徴のないチャットを1件削除して、120件の実際のチャットとともにデータセットに39件のチャットを追加します。
効果的な使用方法
- 実際のデータがある場合は、実際のデータと混在させます。合成チャットは実際のチャットよりも整っているため、合成チャットのみでトレーニングされたモデルは、乱雑な入力によって混乱する可能性があります。ブリーフでは、簡潔で、タイプミスが多く、不満を抱いているユーザーを要求してください。
- 特に困難なシナリオや範囲外のシナリオを中心に、サンプルをレビューします。ライターが理想的な回答を間違えるのは、ほとんどの場合そのようなシナリオです。
- 作成には利用可能な最も強力なモデルを使用します。学習モデルは、最高でもライターと同等のレベルにしかなりません。
- 回答が自社の事実に依存する場合は常にドキュメントを根拠とします。これにより、応答にはモデルの一般的な知識ではなく、自社のポリシーが使用されます。
- 評価用に実際のチャットを保留します。 合成チャットでトレーニングされたモデルをさらに合成チャットでテストすると、その性能が過大評価されます。
設定
プランに含まれるシナリオの数。自動では、8チャットにつき約1つ、最小5から最大60まで選択されます。または、正確な数を設定します。トピックが多いほど多様性が増し、トピックあたりのチャット数は減ります。トピックが少ないほど、それぞれの状況をより深く掘り下げます。
各チャットにおけるユーザーとアシスタントのやり取りの数:1〜4、または混合。シングルターンのチャットは作成とレビューが迅速です。マルチターンのチャットは、以前に発言された内容を使用するようにモデルに教えます。通常、混合が実際の使用に最も近くなります。
アシスタントの最長応答(トークン単位)。トレーニング済みモデルに回答させたい長さに設定します。学習モデルは内容だけでなく長さも学習します。制限を長くするとビルドは遅くなりますが、応答が制限に達することは稀であるため、比例して遅くなるわけではありません。
ユーザーの最長メッセージ(文字数単位)。実際のユーザーは簡潔であることが多いため、制限を低く設定することで、生成される質問が長くて説明過多にならず、短く現実的なものになります。
任意のヘルプページ、マニュアル、またはポリシー。これにより、回答に自社の事実が使用されます。ドキュメントがない場合、ライターは一般的な知識に依存するため、自社製品に関する情報が間違っていたり古かったりする可能性があります。
フラグ
構築内の別のチャットと非常に似ています。1つを残し、もう1つを削除または書き直してください。ほぼ同じコピーは1つの例を過大評価し、多様性を低下させます。
出力トークン制限を超えた返答、または文字数制限を超えたユーザーメッセージです。短くしないと、モデルは要求されたよりも長い回答を学習してしまいます。
テキストのないメッセージです。チャットを削除するか、不足しているメッセージを書いてください。空の返答は何も教えず、空の質問はモデルに何も答えないことを教えます。
拒否のように見える返答(「それについてはお役に立てません」など)です。対象外のシナリオでは想定されますが、それ以外の場合は警告のサインです。これでトレーニングを行うと、モデルが答えるべき質問を拒否するように学習してしまうためです。
ドキュメントが使用された場合のみ:回答がドキュメントに基づいておらず、事実ではなくモデルの一般的な知識に依存している可能性があります。ドキュメントと照らし合わせて確認し、修正してください。
よくある間違い
- 範囲外のシナリオを除外した結果、トレーニングされたモデルが、回答すべきでないものを含め、すべてに回答してしまうこと。
- プランを読まずに何百ものチャットを作成し、後になってすべてが同じことを質問していることに気づくこと。
- 実際のチャットが存在するにもかかわらず、合成チャットのみでトレーニングすること。その結果、モデルは実際のまとまりのない入力に混乱します。
- 書き手が最も間違いやすい、困難なシナリオやエッジケースのシナリオのフラグを無視すること。
- 合成チャットでトレーニングされたモデルを、さらに合成チャットを使用して評価すること。
- トレーニングするモデルよりも性能の低いモデルで作成すること。生徒はせいぜい書き手と同等のレベルにしか到達できません。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01Self-Instruct: Aligning Language Models with Self-Generated InstructionsWang et al., 2022 · arXiv · arxiv.orgモデルが独自のトレーニング指示を作成し、無効なものや重複に近いものをフィルタリングすること。
- 02Alpaca: A Strong, Replicable Instruction-Following ModelStanford CRFM, 2023 · crfm.stanford.edu500ドル未満で生成された52,000件のデモンストレーションと、その結果の限界。
- 03Enhancing Chat Language Models by Scaling High-quality Instructional ConversationsDing et al., 2023 · arXiv · arxiv.orgUltraChat:150万件の多様なマルチターン会話の生成。
- 04Textbooks Are All You NeedGunasekar et al., 2023 · arXiv · arxiv.orgphi-1:慎重に生成されたデータが小規模モデルにどれほどの効果をもたらすか。
- 05The Curse of Recursion: Training on Generated Data Makes Models ForgetShumailov et al., 2023 · arXiv · arxiv.orgモデルが他のモデルの出力からのみ学習する場合に、まれなケースが消失する理由。