Self-instruct とは?
LLM がプロンプトの指示に従うように学習するには、「人間の指示と解答」データを十分に用意する必要
ただし、以下のような問題点が
- データ収集は高コスト
- データ多様性も重要
→ 「それなら、AI を使って半自動で多様性のあるデータをいっぱい作っちゃおう」としたのが Self-instruct。
Self-instruct の手順
Self-instruct の手順は以下の図のような形で行う。
日本語で説明すると以下。
- Step 0: ベースタスクを用意。
- Step 1: ベースタスクを参考にして、言語モデル (LM) に類似タスクの Instruction を作らせる。
- Step 2: 先ほど作った Instruction が「分類タスク or 非分類タスク」のどちらであるかを LM で識別
- 分類タスクか非分類タスクで、異なるアプローチが必要なため分けておくのがよい
- Step 3:分類タスクか非分類タスクかを参考にしつつ、LM でタスクを完成させる。
- Step 4: 「ROUGE-L を使い既存のタスクとの類似度が 0.7 未満のタスク」かつ「画像・写真のような言語モデル用のデータとしてふさわしくないキーワードを含まないタスク」をタスクプールに追加する。Step 1 に戻り、これを繰り返す。