Orca 2: Teaching Small Language Models How to Reason
概要
- 従来の小さなLMモデルの学習に関する研究は模倣学習に依存してきたが、模倣を過度に重視すると、小さなモデルの可能性を制限することを主張
- 例えば、大きなモデルは複雑なタスクに対して直接的に解くことができても、小さなモデルではstep-by-stepなどの推論テクニックを使わないと解けないかもしれない。
- そこで、さまざまな推論テクニックをモデルに教え、学習の手助けを行なった。
- 結果として、ゼロショット設定で15種類のベンチマークに対して5-10倍大きいモデルと同等以上の性能レベルを達成した。
詳細
データセット
- Instruction Tuningで大きいモデルの出力を小さいモデルに教え込ませるのは有効だが、新しい知識を教え込ませることがしにくい。Instruction Tuningしたとしても、事前学習した知識によって常に制限されることを意識する。
- 今回の論文では、Orca 1で提案したExplanation Tuningを更に発展したものを使い、よりリッチな出力を使ってデータセットを作成する。
- System promptとして、”think step by step”, “generate detailed answers”などを与えた上でGPT-4などから合成データを作成。(これを個準備する)
- のtripletのデータセットを作成する
- studentモデルは、LLM answerをその他の二つのpromptから生成することを学習する
- user promptを個のグループに分けると、単純に個の組み合わせを得ることができる。
- ただし、個の答えが全て正しいとは限らない。そのタスクに応じて最適なsystem instructionがあるはず
- この戦略を決定する過程を論文ではCautious Reasoning LLMと呼んでいる
- 色々なタスクをまずは集める
- Orcaを使って、どのタスクにどの戦略が最も適しているかを選択する
- taskに適したsystem instructionを作成する
- Prompt Erasing。訓練時に、元々使っていたsystem instructionを空欄に置き換える
- (タスクに適した応答なら小さいモデルでもsystem instructionなしで生成できるはずという仮定?)
訓練
- LLaMA-2-7B or LLaMA-2-13BでFLAN-v2に対しての訓練を訓練を1epoch。その後にChatGPTで生成した応答で訓練した後にGPT-4で生成した応答で最終的に訓練を行う
- tokenizerはLLaMAと一緒