推論
Inference
概要(サマリー)
推論とは、学習済みのAIモデルに実際にデータを入力し、答えを出させる処理のことである。英語のまま「インファレンス」と呼ばれることも多い。
AIの一生は大きく2つの段階に分かれる。学習(訓練)で知識と能力を身につける段階と、推論でその能力を使って実際に仕事をする段階である。教習所で運転を覚えるのが学習、免許を取ったあと実際に運転するのが推論、と考えると分かりやすい。
私たちが普段ChatGPTやClaudeに質問して答えが返ってくるとき、裏で起きているのはすべて推論である。
詳細解説
学習と推論の違い
同じAIモデルを扱っていても、この2つは性質がまったく異なる。
| 学習(訓練) | 推論 | |
|---|---|---|
| 何をするか | モデルの中身を書き換える | モデルを使って答えを出す |
| 実行回数 | 基本は1回(または時々) | 使うたびに毎回 |
| かかる時間 | 数日〜数か月 | 数秒〜数十秒 |
| 必要な計算資源 | 極めて大きい | 1回あたりは小さい |
| 費用の性質 | 初期投資 | 使った分だけ継続的に発生 |
注目したいのは費用の性質である。学習は一度払えば終わるが、推論は使い続けるかぎり永久に発生する。サービスを運営する側から見ると、利用者が増えるほど推論の費用が積み上がっていく。生成AIサービスに利用回数の制限があるのは、この構造によるところが大きい。
生成AIの推論はどう動くか
LLMの推論には、ほかのAIにはない特徴がある。答えを一気に作るのではなく、次の1語を予測することを繰り返している点だ。
入力: 「今日の天気は」
→ 次に来そうな語を予測 → 「晴れ」
→ 「今日の天気は晴れ」から次を予測 → 「です」
→ 「今日の天気は晴れです」から次を予測 → 「。」
→ 終了と判断
チャット画面で文字が少しずつ流れるように表示されるのは、演出ではなく実際にその順で作られているからである。
この仕組みから、いくつかの性質が導かれる。
- 出力が長いほど処理時間も費用も増える。1語ごとに計算しているため
- 最初の1文字が出るまでの時間と、出力が終わるまでの時間は別物である
- 途中でやめれば、そこまでの費用で済む
推論の速さを表す指標
サービスを比べるとき、次の2つがよく使われる。
- 最初の1文字までの時間: 質問してから最初の反応が返るまで。体感の速さに直結する
- 1秒あたりの出力量: 何文字(何トークン)を毎秒生成できるか
体感を左右するのは前者である。全体の生成時間が同じでも、すぐ書き始めるほうが速く感じる。チャットUIが逐次表示を採用しているのは、この体感を良くするためでもある。
なぜGPUが要るのか
推論の中身は、膨大な数の掛け算と足し算である。GPUはこの単純な計算を大量に並列で行うことに特化しているため、推論に向いている。
ただし、1回あたりの推論は学習ほど重くない。そのため近年は、
- スマートフォンやパソコンの中で動く小さなモデル
- 推論に特化した専用チップ
といった選択肢も広がっている。手元で推論できれば、通信も発生せず、データを外に出さずに済むという利点がある。
費用を下げる工夫
推論の費用は使うほど増えるため、実務では削減の工夫が要る。
- 小さいモデルを使う: 用途に対して過剰な性能のモデルを使わない。分類や要約なら小型で足りることが多い
- 出力を短くする: 「200字以内で」と指定するだけで費用も時間も下がる
- キャッシュを使う: 同じ質問が繰り返されるなら、結果を保存して再利用する
- 入力を絞る: 不要な資料まで渡さない。入力量も費用に含まれる
- まとめて処理する: 急がない処理をまとめて実行できる仕組みを使う
とくに1つ目が効く。最上位のモデルを常用するのではなく、簡単な作業は小さいモデル、難しい作業だけ大きいモデルと使い分けると、品質を落とさずに費用が大きく下がる。
「推論モデル」という別の意味
近年は、答える前に考える過程を長く取るモデルが登場し、「推論モデル」「Reasoning」と呼ばれている。ここでの「推論」は、本記事で説明してきた inference(実行処理)ではなく、reasoning(筋道を立てて考えること)を指す。
同じ日本語だが指しているものが違うので、文脈で読み分ける必要がある。
- inference(実行処理): モデルを動かして出力を得る処理全般
- reasoning(思考): 答えを出す前に段階的に考えること
「推論コストが高い」といえば前者、「推論能力が高い」といえば後者を指していることが多い。
AIコーディングとの関係
AIコーディングを日常的に使うなら、推論の性質を知っておくと無駄が減る。
モデルを使い分ける。 変数名を考える、コメントを整えるといった軽い作業に最上位モデルを使う必要はない。設計や難しいバグの調査だけ強いモデルを使い、それ以外は軽いモデルに任せると、待ち時間も費用も下がる。
出力量を意識する。 「ファイル全体を書き直して」と頼むと、変わらない部分まで生成させることになる。「この関数だけ直して」「差分だけ示して」と伝えるほうが速く、間違いも減る。
入力も費用である。 関係のないファイルまで読ませると、そのぶん入力量が増える。必要なファイルを指定するほうが、精度の面でも費用の面でも有利になる。
手元で動くモデルという選択肢もある。 社外に出せないコードを扱う場合、小さいモデルを手元で動かして推論する構成が現実的なこともある。
よくある勘違い
推論とは筋道を立てて考えること?
日本語では同じ「推論」だが、AIの文脈では2つの意味がある。処理を指す inference と、思考を指す reasoning である。「推論コスト」といえば前者、「推論能力」といえば後者を指すことが多い。
AIを使うたびに学習している?
通常の利用では学習していない。推論はモデルの中身を一切変えない。会話の内容を覚えているように見えるのは、過去のやりとりを毎回まとめて入力し直しているからで、モデル自体が変わったわけではない。
一度学習させれば費用はかからない?
逆である。学習は一度きりだが、推論は使うたびに発生し続ける。長い目で見れば、推論の費用が学習の費用を上回ることは珍しくない。
速いモデルは性能が低い?
用途によっては、小さく速いモデルのほうが適している。分類や要約のような作業では、大きなモデルとの差がほとんど出ないこともある。速さと性能は単純な反比例ではなく、作業の難しさとの相性で決まる。
まとめ
- 推論は、学習済みのモデルに入力を与えて答えを出させる処理である
- 学習は一度だが、推論は使うたびに発生し、費用も継続的にかかる
- 生成AIの推論は次の1語を予測する繰り返しであり、出力が長いほど時間も費用も増える
- 作業の難しさに応じてモデルを使い分けると、品質を保ったまま費用を下げられる
- 日本語の「推論」には inference(処理)と reasoning(思考)の2つの意味がある
情報ソース
- NVIDIA Technical Blog: Mastering LLM Techniques - Inference Optimization
- Claude Docs: Models overview
より詳しくAIに聞いてみよう
- AIの学習と推論の違いを、費用の観点も含めて初心者向けに説明してください。
- 生成AIが1語ずつ出力する仕組みが、応答速度や料金にどう影響するのか教えてください。
- 推論コストを下げる具体的な方法を、効果が大きい順に教えてください。
- inference と reasoning がどちらも「推論」と訳される問題を、見分け方つきで整理してください。
- AIコーディングでモデルを使い分けるとき、どんな作業をどのモデルに割り当てるとよいですか。