序章
著者は、大規模なモデルのデプロイには時間遅延、メモリ、計算能力などの課題があると述べました。そのため、現在の傾向は、Vicuna や Alpaca などのそれほど大きくない言語モデルを微調整して抽出することですが、それは困難です特定の下流タスクのデータを取得するにはコストがかかります。
上記の問題を解決するために、著者は、より少ないデータとより小さなモデルを使用することで、同じデータセット上の大規模なモデルを打ち負かすことができる段階的な蒸留を提案します。(この記事では筆者が770M-T5の実験で540BPaLMを撃破しました)
方法
段階的な蒸留は 2 つのステップに分かれています。
- ラベルのないデータを CoT に送信して、LLM にラベルと理論的根拠を生成させます (これが、そのような結果が得られる理由です)。
- 取得したデータを小規模モデルで微調整します。
最初のステップは次のとおりです。
このようにして、小規模モデルは、このタスクの実行方法とそのタスクが実行される理由を学習する方法を学習し、特定のタスクに対する小規模モデルの理解を高めることができます。
ここで、xi (ラベルのない元のデータから)、ri (理論的根拠)、および yi (ラベル) を使用して、著者は 3 つをより適切に結び付けます。
質問を入力し、出力を回答 + 回答に変更して問題を解決します。
損失関数を計算するとき、この 2 つは重み付けされます。
実験
参考
https://arxiv.org/pdf/2305.02301.pdf