模倣小規模言語モデルの問題点に対応したモデル Orca を解説する

近年、様々な大規模言語モデル (Large Language Models; LLM) が開発されています。

大規模言語モデルにはいくつか種類があり、
1. chatGPT や LLaMA のような非常に多くのコストをかけて 0 から開発された State-of-the-art な大規模基礎モデル (Large Foundation Models; LFMs)
2. LFMs の出力をもとにして学習された小規模なモデル

等です。
ただ、2 のようなモデルには欠点があります。それは、「**表面的な模倣**」と「**過大評価**」です。
ここでいう「**表面的な模倣**」とは、1 のモデルから出力を学びはするものの、1 のモデルが出力を生成する際に内部で行っているであろう推論プロセスまでは学習できていないことです。
また、過大評価とは性能評価は行っているものの、それが厳格でない性能評価であることから、実際の性能よりも課題に評価されてしまうことです。（実際にリーダーボードを見て性能のいい OSS モデルを利用した際、実際の性能にがっかりすることは多々あります。）

今回は、そのような課題に対して発足した Microsoft の [Orca](https://www.microsoft.com/en-us/research/project/orca/) に関する論文 [Orca: Progressive Learning from Complex Explanation Traces of GPT-4](https://arxiv.org/pdf/2306.02707.pdf) について解説していきます。

## Orca: Progressive Learning from Complex Explanation Traces of GPT-4
### 1. 課題：小規模な言語モデルのベンチマーク評価と実際の性能の乖離

State-of-the-art なモデルである chatGPT や GPT-4 は教師あり学習や人間のフィードバックからの強化学習 (Reinforcement Learning from Human Feedback; RLHF) によって、様々なベンチマークだけでなく、司法試験のような専門家試験でも人間レベルのパフォーマンスを出しています。
では、これらのモデルを使って AI の学習用データ生成は可能でしょうか？

実際にそのような研究はされていて、モデルを微調整してモデル学習に役立つデータを生成することはできますし、そのようなデータを使ったモデルの学習は行われています。
Vicuna はその一例で、リーダーボードで chatGPT と同じぐらいの非常に高いパフォーマンス (chatGPT の 92% の性能) を発揮していますが、人間がラベリングした推論ベンチマークではそれほど高くありません。(chatGPT の 64% の性能まで低下)

これこそが、冒頭で私が先述したような「**表面的な模倣**」や「**過大評価**」等によるものです。Orca はこの課題に対処したモデルの生成を試みます。Orca を利用しない人も数多く作られる小規模言語モデルへの理解を深めるためにも参考になりそうです。

### 2. Orca モデルの学習手法（データセットの生成方法）
以下の手法を用いて、モデルの生成を試みます。

#### a. 説明チューニング
表面的な模倣の原因はクエリとレスポンスのペアのみを学び、その間にある推論プロセスを学んでいないことと推測されます。
この解決策として、推論プロセスを生成する詳細なレスポンスによってモデルの学習を行います。

例えば、
```
AI について5歳の子供に説明するように解説してください。
```
や
```
素晴らしい AI とはなんですか？
ステップバイステップで考えてください。
```
のように、推論プロセスの生成を促します。

#### b. タスクと指示のスケーリング
過大評価の原因の一つは、モデルの学習に用いられるデータの多様性がないことも原因の一つです。
ShareGPTが提供している人間との会話はコンテンツ生成や情報検索クエリにデータが偏っています。
FLAN-v2 データセットから、選択的にサンプリングやサブサンプリングを行い、トレーニングデータセットを生成します。

学習に使った FLAN-v2 データセットは、
- CoT
- NiV2
- T0
- Flan 2021
- Dialogue

という 5 つのサブコレクションで構成されています。

各サブコレクションには複数のタスクが含まれています。
データセットはゼロショットとフューショットのクエリで構成されていますが、この研究では、Orca の訓練のためにゼロショットクエリのみをサンプリングし、かつ、Dialogueサブコレクションからはサンプリングしていません。というのも、後者は ChatGPT から有用な応答を引き出すための文脈がしばしば欠けているためです。

#### c. システムプロンプトのチューニング
最近の LFM にはシステムプロンプトとして、「アシスタントは有害または攻撃的なコンテンツを生成してはなりません。」のような記載がされており、モデルのレスポンスを制限し、安全性を向上させる役割があります。
が、これは安全性だけでなく、推論プロセスを追跡する能力にも寄与しているようで、システムプロンプトを入れることは非常に重要です。

（おそらく、「あなたは AI アシスタントです。」のような記載によって、モデルが入出力を学習する際にデータのラベリングができるということでしょう。例えば、「AI アシスタント」と前置きがされた際には、ユーザの問題解決を求めるタスクが与えられると推測できるでしょうし、「AI 翻訳家」と前置きがされた際には翻訳タスクが来ることがわかります。LLM の学習時にはこのようなデータの追跡ができることも重要なようです。）

Orca では、16 のシステムプロンプトを作成して、学習時にデータと組み合わせて利用しています。

### 3. Orca モデルの評価
#### 評価方法
Vicuna では、GPT-4に基づいてチャットボットのパフォーマンス評価を自動化する評価フレームワークを使用しています。
このフレームワークでは、GPT-4 はモデルからの生成の品質を 0 から 10 のスケールで評価します。
Orca も同じフレームワークを利用し、オープンエンドの回答タスクの幅広い範囲をカバーする 3 つの異なるプロンプトコレクションで実験します。
1. **Vicuna プロンプト**:
これらは Vicuna で提案されたプロンプトです。これらの 80 のプロンプトは、一般的なスキル、知識、ロールプレイ、常識、フェルミ問題、反事実、コーディング、数学、ライティング能力など、9 つのスキルに分けられています。
2. **Awesome プロンプト**:
Awesome ChatGPT プロンプトは、主に ChatGPT モデルの参考として利用できるプロンプト例のコレクションです。これらのプロンプトは、ライティング、翻訳、要約、分析など、数多くのタスクを自動化する効率的な方法を提供します。これらのプロンプトは、ライフコーチ、スタートアップ技術弁護士、占星術師、チェスプレイヤー、統計学者、ノート取りアシスタントなど、164 の役割に基づいています。
3. **WizardLM プロンプト**:
WizardLM プロンプトは、実際のタスクに基づいたプロンプト例のコレクションです。これらのプロンプトは、オープンソースプロジェクト、プラットフォーム、フォーラムから取得されています。それらは、各プロンプトの難易度とともに 29 の異なるスキルに分けられています。これらのスキルは、数学、学術的なライティング、デバッグ、コード生成、推論能力など、人間レベルの知能の主要な要件のいくつかをカバーしています。

また、推論能力を
1. **AGIEval**:
人間の認知と問題解決に関連するタスクにおける基礎モデルの一般的な能力を評価する、人間中心のベンチマーク
2. **Big-Bench Hard (BBH)**:
大規模言語モデルの能力と限界を測定するために導入された、23 の難しい BIG-Bench タスクスイート

の 2 つのデータセットによって学習しています。

### 4. 結果

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
footer {
  FontColor black
  FontSize 17
}
</style>
footer 各プロンプトと Orca のスコア一覧。括弧内は Orca からの Vicuna からの改善率\n(出典 Orca: Progressive Learning from Complex Explanation Traces of GPT-4)
title <img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758571/4c52f539-120b-bfc3-b24d-6d9c192d6908.png>
@enduml
```

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
footer {
  FontColor black
  FontSize 17
}
</style>
footer  AGIEval のスコア一覧\n(出典 Orca: Progressive Learning from Complex Explanation Traces of GPT-4)
title <img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758571/5e2ca1fa-2049-6c82-cf6e-8500d0e3e01d.png>
@enduml
```

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
footer {
  FontColor black
  FontSize 17
}
</style>
footer  BigBench-Hard のスコア一覧\n(出典 Orca: Progressive Learning from Complex Explanation Traces of GPT-4)
title <img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758571/7a1795c0-c209-ad5a-30ce-482b74557ea4.png>
@enduml
```

結果は↑の通りです。細かな解説は省きますが、この結果を見ると、様々なデータセットで Orca が chatGPT と同程度の性能が出せていることがわかりますね。
（論文では、各データセットの項目や安全性、毒性について解説してくれています。が、長くなるので割愛します。）

### 5. モデルの制限
Orca は LLaMA モデルファミリーに基づいて構築されていますが、その制約の多くを維持しており、他の大規模言語モデルの一般的な制限も含んでいます。

これには以下のようなものが含まれます：
- **データバイアス**:
広範なデータで訓練された大規模言語モデルは、ソースデータに存在するバイアスを不注意に引き継ぐことがあります。その結果、モデルは偏見があるか、公平でない可能性のある出力を生成するかもしれません。
- **文脈理解の欠如**: 
言語理解と生成において印象的な能力を持っているにもかかわらず、これらのモデルは実世界の理解が限られており、結果として正確でない、または意味のない応答が発生する可能性があります。
- **透明性の欠如**: 
複雑さとサイズのため、大規模言語モデルは「ブラックボックス」として機能することがあり、特定の出力や意思決定の背後にある理由を理解することが難しくなります。
- **コンテンツの害**: 
大規模言語モデルが引き起こす可能性のある様々なタイプのコンテンツの害があります。これらのモデルを使用する際には、これらの害を認識し、それらを防ぐための対策を講じることが重要です。様々な企業や機関が提供するコンテンツモデレーションサービスを活用することが推奨されます。重要な点として、AI技術に関するコンテンツの害に関して、将来的に政府や技術リーダーからより良い規制や基準が設定されることを期待しています。研究およびオープンソースコミュニティがこの方向で重要な役割を果たすことを私たちは評価し、認識しています。
- **幻覚**: 
重要な決定や深い影響を及ぼす可能性のある情報に完全に頼ることなく、言語モデルを注意深く使用することが重要です。なぜなら、これらのモデルがコンテンツを捏造することを防ぐ方法は明らかではないからです。さらに、小型モデルは、その小さなサイズとそれに伴うメモリ容量の低下のために、根拠のない生成の使用事例で幻覚により影響を受けやすいかどうかは明確ではありません。これは現在進行中の研究トピックであり、このトピックに関するより厳格な測定、理解、および緩和策が今後提供されることを期待しています。
- **悪用の可能性**: 
適切なセーフガードがなければ、これらのモデルが偽情報や有害なコンテンツを生成するために悪意を持って使用されるリスクがあります。

さらに、Orcaのパフォーマンスは説明チューニングに使用されるデータによって影響を受けます：
- **ゼロショット設定**: 
Orcaは標準的なプロンプトを使用したゼロショット設定を模倣するデータで訓練されています。マルチターン会話、コンテキスト内学習、フューショット学習、または思考連鎖プロンプトのような高度なプロンプト技術におけるモデルのパフォーマンスは未検証です。
- **データの分布**:
Orcaのパフォーマンスは、チューニングデータの分布と強く相関する可能性があります。この相関関係は、数学、コーディング、推論など、トレーニングデータセットで代表されていない分野における精度を制限するかもしれません。
- **システムメッセージ**:
Orcaは、さまざまな種類のレスポンスを引き出すために多様なシステム指示で訓練されています。さらに、モデルのサイズによって導入される確率性は、異なるシステム指示に対する非決定論的なレスポンスの生成につながる可能性があります。
- **GPT-4の振る舞い**:
OrcaはGPT-4を模倣して訓練されているため、教師モデルの長所と短所を継承する可能性があります。

## まとめ
Orca モデルを利用するかどうかはさておき、本論文で課題にしている小規模言語モデルの課題については理解が必要ですね。
実際に、小規模言語モデルをベンチマークスコアを参考に使ってみて、実際の性能との乖離にがっかりすることは多いです。
また、小規模言語モデルを自分で作ろうと思っている場合、データセット作成は重要であり、その場合にも示唆を与えてくれる論文ですね。
Orca は現在 Orca2 が出ているのでその解説も近日上げたいです。

以上、ここまで読んでいただきありがとうございました。