推論
学習と対になる言葉です
推論は、それ単体で意味が決まる言葉ではありません。「学習」と対になって、機械学習の2つの工程を指します。
まず、機械学習には大別して「学習」と「推論」の2つのプロセスがあり、基本的にそれぞれのプロセスで異なるデータを用いることとなる。
— 総務省『令和元年版 情報通信白書』
そのうえで、推論はこう定義されています。
推論とは、学習のプロセスを経て出来上がった学習済みモデルにデータを入力し、確立されたパターンに従い、実際にそのデータの識別等を行うプロセスである。
— 総務省『令和元年版 情報通信白書』
つまり「作る工程」ではなく「使う工程」です。 ChatGPTに質問を打ち込んで答えが返ってくる、あのときに起きているのが推論です。
使うデータも別です
白書は、データにも2種類あると書いています。
| 工程 | 使うデータ | 何が起きるか | | --- | --- | --- | | 学習 | 学習用データ | モデルを作る・更新する | | 推論 | 推論用データ | 出来上がったモデルに入れて答えを出す |
白書の言い方では「ここでは便宜的に、前者を「学習用データ」、後者を「推論用データ」と呼ぶ。」です。学習データという語は前者を指します。
ただし、白書は例外も書いています。
ただし、推論用データを使って推論を行うことが、追加的な学習となって学習済みモデルが改善するケースもある。
— 総務省『令和元年版 情報通信白書』
「推論したら学習はしない」と言い切れるわけではないという条件付きの記述です。
「推論」という語の二重の意味
ここは注意が必要です。AIの文脈で「推論」と言うとき、別の意味があります。
IPAのガイドラインは、第1次AIブームについてこう書いています。
この時代には、コンピュータによる「推論」や「探索」の研究が進展し、迷路の攻略や定理の証明のような、明確かつ単純な問題の解決が可能になりました。
— IPA『テキスト生成AIの導入・運用ガイドライン』
こちらは論理的に答えを導くという意味の「推論」で、1950年代後半からの研究を指します。 一方、この記事で扱っている「学習済みモデルを動かす」という意味の推論は、機械学習の工程名です。
同じIPAの資料には「生成AIは、多くの学習データを学習させることで、AIモデルの推論能力を高めています。」という記述もあり、ここは「考える力」寄りの意味で使われています。 同じ資料の中でも使い分けられているので、文脈で読む必要があります。
モデルは推論では変わりません
Googleの用語集は、プロンプトでの指定と学習の違いをはっきり書いています。
推論の最中は、各種のプロンプトのパラメータを通じてモデルの出力に影響を与えられるが、それは学習済みのモデルのパラメータを直接変えるものではない
— Google Cloud Generative AI glossary より和訳
プロンプトを工夫してもモデルは変わりません。 変えたいならファインチューニングのように学習の側で手を入れることになります。
なぜ料金と結びつくのか
推論は動かすたびに計算資源を使います。NISTは学習と推論を並べてこう書いています。
生成AIシステムの学習・維持・運用(推論の実行)は資源を多く使う活動であり、エネルギーと環境への負荷が大きくなりうる
— NIST AI 600-1 より和訳
同じ文書は「エネルギーと炭素の排出量は、生成AIモデルで何をしているか(事前学習・ファインチューニング・推論)、扱う情報の形式、使うハードウェア、タスクや用途の種類によって変わる」とも書いています。
学習は一度きり、推論は使うたびに発生します。 APIの料金がトークンの量で決まるのは、この工程の費用を数えているからです。
小さくする手法もありますが、NISTは「蒸留や圧縮のように学習済みモデルを小さくする手法は、推論時の環境負荷を下げうるが、そうしたモデルの学習や調整自体が環境負荷に寄与することはありうる」と条件を添えています。推論側だけを見て総量を語れないということです。
こう言えば一度で済む
こう言うと伝わらない 「AIの費用が思ったより高いです」
こう言えば一度で済む 「学習ではなく、毎日の問い合わせ処理のほうで費用が増えています。1件あたりに渡している文章量を減らせますか」
後者なら、相手は推論のコストの話だと判断できます。