Self-Instruct(セルフインストラクト)
Self-Instructは、LLM自身を利用して指示-応答ペアのデータセットを自動生成し、そのデータで同じモデルまたは別のモデルをInstruction Tuningする自己学習フレームワークである。
Self-Instruct
Self-Instructは、ワシントン大学のYizhong Wang氏らが2022年に発表した、LLMが自分自身で学習データを生成する自己ブートストラップ手法である。人手による大規模なデータアノテーションなしに、少数のシード指示から大量の高品質な指示-応答ペアを自動生成できる点が革新的だった。
概要と動機
従来のInstruction Tuning(FLAN、T0等)では、既存のNLPベンチマークを指示形式に変換していたが、これには以下の制約があった:
- 学術ベンチマーク由来のため、実ユーザーの自然な質問パターンをカバーしきれない
- データ作成コストが高い(DollyやOASST等の人手アノテーションは1件あたり$1-5)
- クリエイティブライティング、ブレスト、コード生成など非定型タスクのカバレッジが薄い
Self-Instructは、GPT-3(text-davinci-002)に175件のシード指示を与え、そこから52,000件の多様な指示-応答ペアを自動生成した。生成コストは約$600(2022年当時のAPI料金)であり、人手アノテーションの約1/100のコストである。
アルゴリズムの詳細
Self-Instructの4段階パイプライン:
- シード指示: 人手で作成した175件のタスク指示(分類、生成、抽出、QA等を含む)をシードプールに投入
- 指示生成: シードプールからランダムに8件をサンプリングし、LLMにIn-context学習で新しい指示を生成させる。既存指示とのROUGE-L類似度が0.7を超える場合は除外
- 入出力生成: 生成された指示に対して、LLMに入力例と出力例を生成させる。分類タスクの場合は出力→入力の順(output-first approach)で生成
- フィルタリング: 品質チェック(長すぎる/短すぎる応答の除外、同一入出力の除外、キーワードフィルタ)を適用。最終的に約52,000件の有効ペアを取得
| パイプライン段階 | 入力 | 出力 | フィルタ率 |
|---|---|---|---|
| シード | 手動作成 | 175件 | - |
| 指示生成 | 8-shot ICL | ~82,000件 | 約37%除外 |
| 入出力生成 | 指示+モデル推論 | ~52,000件 | 約36%除外 |
| 最終データ | フィルタ後 | ~52,000件 | 有効率約63% |
派生手法とエコシステム
Self-Instructの成功は多数の派生手法を生んだ:
- Stanford Alpaca(2023年3月): Self-Instructの手法をtext-davinci-003に適用し、52Kデータを生成→LLaMA 7Bをファインチューニング。総コスト$600以下で強力なチャットモデルを実現
- Evol-Instruct / WizardLM(2023年6月): 既存指示をLLMで段階的に複雑化。単純な指示「リストをソートして」を「並列処理対応のマージソートをRustで実装して」レベルまで進化
- Unnatural Instructions(2023年): GPT-4で64,000件の指示を生成。Self-Instructより多様性が高い
- Humpback(Meta、2023年): ウェブテキストから逆方向に指示を推定する「Instruction Backtranslation」手法
- Magpie(2024年): LLMのシステムプロンプトのみから高品質指示を引き出す手法、データ生成速度がSelf-Instructの10倍
品質とスケーリング
Self-Instructデータの品質分析(論文内評価):
- 人手評価で有効な指示の割合: 約54%(175件シードからの生成)
- GPT-4による評価でAlpacaデータは人手作成の90%相当の品質
- データ量のスケーリング: 52K→175K件に増やしても性能向上は逓減(品質>>量の法則)
- LIMA(2023年)の知見: 1,000件の超高品質データがSelf-Instruct 52K件と同等性能
課題と限界
- 教師モデルバイアス: GPT-3/4の癖(冗長な回答、特定の言い回し)がそのまま学習される
- ハルシネーション増幅: 教師モデルの事実誤認がデータに混入し、学習後のモデルでさらに増幅される可能性
- 多様性の天井: 同一モデルからの生成では、ある程度で多様性が飽和する
- ライセンス問題: GPT-3/4の出力で学習したモデルはOpenAIの利用規約に抵触する可能性(2023年時点の議論)
よくある質問(FAQ)
Q1: Self-InstructとFLANの根本的な違いは何ですか? A: FLANは既存のNLPベンチマーク(人手でアノテーション済み)を指示形式に変換するアプローチです。Self-InstructはLLM自身でデータを生成するため、学術ベンチマークにないクリエイティブなタスクもカバーでき、コストも大幅に低い点が違います。
Q2: Self-Instructのデータ品質はどの程度信頼できますか? A: 論文の人手評価では約54%が高品質と判定されています。後続研究(Alpaca Eval等)では、フィルタリングの改善により70-80%まで向上。ただし、事実性の検証は含まれないため、知識型タスクではハルシネーションリスクがあります。
Q3: Self-Instructを日本語で使うにはどうすればよいですか? A: 日本語のシード指示を175件準備し、GPT-4oやClaude 3.5 Sonnetで日本語の指示-応答ペアを生成するのが最も効果的です。Japanese Alpacaは英語Alpacaデータの機械翻訳版ですが、ネイティブ生成の方が品質が高くなります。Qwen3-8BやLlama 3.1を教師モデルに使う低コスト選択肢もあります。
まとめ
- Self-Instructは175件のシード指示から52,000件の学習データを自動生成する自己ブートストラップ手法
- 人手アノテーションの約1/100のコスト($600)でInstruction Tuningデータを作成可能
- Stanford Alpaca、WizardLM、Magpie等の多数の派生手法を生み出した
- データの多様性と品質のバランスが重要で、単純なスケールアップには限界がある
- 2026年現在もLLMデータ合成パイプラインの基盤設計として広く参照される