AI・機械学習
上級

Self-Instruct(セルフインストラクト)

Self-Instructは、LLM自身を利用して指示-応答ペアのデータセットを自動生成し、そのデータで同じモデルまたは別のモデルをInstruction Tuningする自己学習フレームワークである。

0 回閲覧
0 いいね

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段階パイプライン:

  1. シード指示: 人手で作成した175件のタスク指示(分類、生成、抽出、QA等を含む)をシードプールに投入
  2. 指示生成: シードプールからランダムに8件をサンプリングし、LLMにIn-context学習で新しい指示を生成させる。既存指示とのROUGE-L類似度が0.7を超える場合は除外
  3. 入出力生成: 生成された指示に対して、LLMに入力例と出力例を生成させる。分類タスクの場合は出力→入力の順(output-first approach)で生成
  4. フィルタリング: 品質チェック(長すぎる/短すぎる応答の除外、同一入出力の除外、キーワードフィルタ)を適用。最終的に約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データ合成パイプラインの基盤設計として広く参照される