推論(Inference)とは
推論(Inference)は、学習済みのモデルを実際に動かして、入力に対する出力を得る処理です。モデルを作る「学習(トレーニング)」と対になる言葉で、利用者がチャットで質問して答えが返ってくるのは、この推論の段階です。
学習では、大量のデータを使ってモデルの重み(パラメータ)を調整します。推論では、その重みを変えずに使い、入力に続く出力を計算します。言語モデルの場合は、出力をトークン単位で1つずつ予測して並べていきます。
実務では、推論にかかる時間と費用が運用の設計に関わります。大きなモデルほど、また出力が長いほど、時間も費用も増えます。大量の文書を処理する業務では、処理の件数×1件あたりの長さで負荷を見積もり、小さなモデルで足りる作業は小さなモデルに任せます。
推論をどこで動かすかも選べます。クラウドの API を使う方法のほか、オープンウェイトモデルを社内サーバーで動かす方法もあります。応答の速さ、費用、データを外に出せるかどうかを比べて選びます。
具体例
応答の遅さの原因を切り分ける
社内チャットの応答が遅いという声があり、調べると、毎回長い社内規程をまるごとプロンプトに入れていました。入力が長いほど推論の処理量が増えます。RAG で関係する箇所だけを渡すようにし、回答の長さにも上限を設けると、応答時間と費用の両方が下がりました。
作業ごとにモデルを使い分ける
問い合わせの分類のような単純な作業は小さく速いモデルに、複雑な回答文の作成は大きなモデルに任せる設計にしました。推論の費用は使うモデルの大きさで大きく変わります。品質を保ちながら全体の費用を抑えられます。