Tech カテゴリのイメージ

Instruction Tuningとは?文章の続きを書くモデルを「指示に応じる」モデルへ近づける

事前学習で次のトークンを予測できるようになっても、利用者の質問に必要な形で答えるとは限らない。入力が「次の文を要約して」であっても、その指示に従う代わりに、似た文章を続ける可能性がある。Instruction Tuningは、指示と望ましい応答の組を使って、事前学習済みモデルの振る舞いを調整する段階だ。

ここで変えるのは、推論時のTemperatureのような抽選設定ではない。学習データに対する損失を計算し、モデルの重みを更新する。同じ「次のトークン予測」の仕組みを使いながら、何を望ましい続きを示すデータとして与えるかが変わる。

指示と応答を、ひと続きの学習例にする

説明用に、次のような組を考える。

指示: この文章を一文で要約して: 「朝から雨が続いた。午後の試合は中止された。」
望ましい応答: 雨が続いたため、午後の試合は中止された。

この例なら、モデルは指示と元の文章を文脈として受け取り、望ましい応答のトークンへ高い確率を付けるよう調整される。単に「雨の後にはどんな語が来やすいか」ではなく、「この依頼にどう答えるか」の例を見せるわけだ。これは記事用に作った説明例で、実際の訓練データから引用したものではない。

教師あり微調整、英語ではSupervised Fine-Tuning(SFT)は、このように望ましい出力を示して学習する方法を指す。実装では、指示部分も含めて損失を取るか、応答部分だけに損失を取るかなどを選べる。Hugging Face TRLのSFT資料にも、completionのみ、あるいはassistantの発話だけを損失対象にする設定がある。したがって「SFTでは必ず入力側のトークンを損失から除外する」と決めつけない。

事前学習と何が違うのか

GPT系の事前学習では、大量の文章の各位置から次のトークンを予測する。指示調整では、「指示 → 望ましい応答」という目的に合わせて選んだ例を使う。損失が次トークンの確率に基づく点は共通していても、データの意味と狙う振る舞いが違う。

OpenAIのInstructGPT論文では、利用者のプロンプトと人が書いた望ましい応答のデモを集め、GPT-3を教師あり学習で微調整した。その後に人間の比較評価から報酬モデルを作り、さらに強化学習を行っている。最初のSFTと後段の人間の好みを反映する学習は別の工程だ。Instruction Tuningという言葉だけで、この後段まで必ず実施したと推測してはいけない。

GoogleのFLAN研究は、多数の自然言語の指示で事前学習済みモデルを微調整し、学習時に見せていないタスクでの性能を評価した。ここでも中心になるのは、個別の入力文を続けるだけでなく、指示文をタスクの手がかりとして使えるようにすることだ。どの程度未知のタスクへ一般化するかは、モデルと学習データ、評価方法に依存する。

「指示に従う」と「正しい」は同じではない

指示調整で、要約らしい形式や質問への応答らしい文体が改善しても、内容の事実性まで保証されるわけではない。説明例のような要約であれば、元の文章にない事実を足さないかを別に検査する必要がある。答えを拒否すべき入力、あいまいな依頼、根拠のない断定も、見た目の従順さだけでは評価できない。

Instruction Tuningを理解するうえで大切なのは、事前学習済みの能力を利用しつつ、指示と望ましい応答の例で重みを更新するという境界だ。好みの比較による追加学習、検索による外部情報の参照、生成時のサンプリング設定は、隣接していても別の仕組みとして整理したい。

参照資料

生成AI・機械学習講座の一覧へ