問合せへの返信文を大規模言語モデルに作らせるにあたり、指示文の中に自社の返信例を いくつか添えたところ、その書き方に沿った文面が返るようになった。ただし日を改めて 新しく指示を出すと、例を添えない限り元の書き方に戻る。この仕組みはどれか。
正解:エ
アファインチューニング
誤り。これは追加のデータでモデルの重み、つまり内部の値そのものを 学習し直す方法です。一度行えば効果は残り続けるので、日を改めても 書き方は保たれるはずです。例を添え直さないと戻る点が合いません。
イ検索拡張生成(RAG)
誤り。これは質問のたびに外部の文書やデータベースを検索し、見つけた内容を 材料として渡してから回答させる仕組みです。社内にしかない知識を答えさせたい 場面で使うもので、今回は検索の対象となる知識ソースを用意していません。
ウ対話履歴の保存による引継ぎ
誤り。過去のやり取りが保存され、次回も自動で読み込まれるのであれば、 例を添え直さなくても書き方は保たれるはずです。毎回添える必要があるので、 前のやり取りの内容は引き継がれていないことになります。
エコンテキスト内学習
正解。指示文(コンテキスト)に添えた例示をその場の手掛かりとして扱い、 応答の仕方を変えています。「学習」と付きますがモデルの中身は変わらないため、 効果はそのやり取りの中だけで終わります。
覚えたのではなく、その場で見せられただけ
大規模言語モデルに例をいくつか見せると、その書き方をまねた文章が返ってきます。 一見「学習した」ように見えますが、モデルの中身は何も変わっていません。 渡された指示文の中に例があるあいだだけ、それを手掛かりに振る舞いを変えているのです。 これがコンテキスト内学習です。
新しく指示を出し直すと例は渡されていない状態に戻るため、 書き方も元どおりになります。覚えたのではなく、その場で見せられていただけだからです。
二つの軸で三つを見分ける
生成AIに自社らしい応答をさせる手立ては、次の二点で整理できます。
- モデルの重みを変えるか … 変えるのはファインチューニングだけ
- 外部の知識を都度参照するか … 参照するのは検索拡張生成(RAG)
コンテキスト内学習は、どちらも行いません。指示文に書いた内容だけがすべてです。 そのぶん準備の手間は小さく、試すのも容易ですが、 毎回の指示文に必要な例を入れる必要があり、入れられる分量にも限りがあります。
三つの手立ての比較
| 手立て | モデルの重み | 効果の持続 |
|---|---|---|
| コンテキスト内学習 | 変えない | そのやり取りの中だけ |
| ファインチューニング | 変える | 学習後はずっと残る |
| 検索拡張生成(RAG) | 変えない | 検索対象を残せば繰り返し使える |
「例を添えたときだけ変わる」「日を改めると戻る」という書き方が出てきたら コンテキスト内学習です。恒久的に変えたいならファインチューニング、 自社の知識を参照させたいならRAGと結び付けて覚えると迷いません。