AIの「推論」とは?質問から返答が出るまでの流れ

AIの話では「推論」という言葉がよく出てきますが、日常で使う「推論」とは少し意味が違います。この記事では、AI分野の「推論」が何をする処理なのか、質問を送ってから返答が出るまでに何が起きているのかを、図で順に追います。

この記事でわかること
  1. 推論は、学習済みのモデルを動かして、入力から出力を作る処理
  2. 返答は、次のトークンを選ぶ作業を、止まるまで繰り返してできる
  3. 速度や料金は出力の長さなどに左右され、画面の途中表示は内部処理そのものではない

AI分野の「推論」は、学習済みモデルを使う処理

AIの仕組みには、大きく分けて「学習」と「推論」の2つの段階があります。学習は、大量のデータをもとに、モデルの中身(パラメータ)を調整してAIを作る段階です。推論は、完成した学習済みモデルに入力を渡して、出力を作らせる段階です。NVIDIAも、推論を、学習済みのAIモデルが新しいデータに対して出力を生成する処理と説明しています。

料理にたとえると、料理人がレシピを身に付ける段階が学習、注文を受けて一皿作る段階が推論です。ChatGPTやClaudeなどに質問を送り、返答が返ってくるときに裏で動いているのは、この推論です。

学習:モデルを作る段階大量のデータパラメータを調整学習済みモデルたとえ:料理人がレシピを身に付ける完成したモデルを使う推論:モデルを使う段階質問など学習済みモデル返答たとえ:注文を受けて一皿作る推論では、通常、学習済みモデルの中身(パラメータ)は書き換えない
図1 学習はモデルを作る段階、推論は完成したモデルを使う段階(たとえは説明用です)

通常、推論の間は、学習済みモデルの中身は書き換えられません。会話の内容を覚えているように見えるのは、それまでの履歴が毎回の入力に含まれているためで、モデルがその場で学習し直しているわけではありません。

「論理的に考える」の推論と混同しない

日本語の「推論」は、前提から筋道を立てて結論を導くこと(英語の reasoning)を指すことが多く、AI用語の inference とは別の言葉です。AIの文脈で「推論」と言うときは、多くの場合、学習済みモデルを実行して出力を得ること(inference)を指します。

AI分野の推論(inference)入力モデル出力学習済みモデルを動かして出力を作る処理≠日常語の推論(reasoning)前提結論前提から筋道を立てて結論を導くこと考えてから答えるタイプのAIも、実行段階では、トークンを順に作る推論として動いています
図2 同じ「推論」でも、AI分野の意味と日常語の意味は別(英語では inference と reasoning)

紛らわしいのが「推論モデル」という呼び方です。これは、答える前に内部で考える文章(思考)を作るタイプのモデルを指すことが多く、名前や仕組みはサービスごとに異なります。考えるタイプのモデルも、実行時には、同じようにトークンを順に作って動いています。Claudeのドキュメントでも、思考に使われたトークンは出力トークンとして課金されると説明されています。

入力から返答までを順に追う

質問を送ってから返答が出るまでを、4つの段階に分けて追います。

入力をまとめる指示・履歴・資料1トークンに分ける文字を部品の列に2次のトークンを選ぶ候補から1つ3止めるか判断終了の印・上限4満たしていなければ、選んだトークンを足して繰り返す満たした返答の完成返答の伸び方(例)東京です。終了の印選んだトークンは入力に足され、次のトークンを選ぶための材料になる
図3 返答は、次のトークンを選ぶ作業を、止まるまで繰り返してできる
段階何をするか
1 入力をまとめるシステムプロンプト、会話の履歴、参考資料、今回の質問などを、1つの入力にまとめる
2 トークンに分ける入力の文字列を、モデルが扱う単位であるトークンの列にする
3 次のトークンを選ぶ入力全体をもとに、次に来るトークンの候補を出し、その中から1つ選ぶ
4 止めるか判断する終了の印が出た、または上限に達したら止める。そうでなければ、選んだトークンを足して3に戻る

3と4は、返答が終わるまで繰り返されます。Hugging Faceのドキュメントは、LLMは、プロンプトと自分がそれまでに生成した出力をもとに、次のトークンを生成するように訓練されていて、決められた長さか、終了を表すトークン(EOS)に達するまで続くと説明しています。

止まり方には、モデルが自然に答え終わる場合のほかに、上限に達した場合や、指定した文字列が出た場合があります。Claude APIでは、それぞれ end_turn、max_tokens、stop_sequence という停止の理由として区別されます。

出力の揺れを左右する設定

手順3の「候補から1つ選ぶ」ときの選び方は、サービスによっては設定で変えられます。代表的なのが Temperature です。同じ質問でも返答が毎回少し違うのは、多くのサービスで、候補の中から選ぶ際にランダムさが入っているためです。

設定が低め次のトークンの候補(例)晴れ曇り雨雪上位の候補が選ばれやすい→ 返答の揺れが小さい設定が高め次のトークンの候補(例)晴れ曇り雨雪下位の候補も選ばれやすい→ 返答の揺れが大きい棒の高さは選ばれやすさの説明用の例です。どちらも事実の正しさを保証する設定ではありません
図4 Temperatureなどは、候補の中から1つを選ぶときの「選び方」に影響する
設定意味
Temperature返答に加えるランダムさ。Claude APIでは0.0〜1.0で、既定は1.0。分析や選択式の課題では0.0に近く、創作では1.0に近くするとよいとされている
top_p確率の高い候補から順に足していき、合計が指定した値に達するところまでを候補にする方法(nucleus sampling)
最大出力トークン数(max_tokens)生成するトークンの上限。上限より前に終わることもある
停止文字列(stop_sequences)指定した文字列が出たら生成を止める
注意

Temperatureを低くしても、事実の正しさは保証されません。変わるのは候補の選び方で、モデルが持っている知識や、入力に書かれた内容の正しさは変わらないためです。Claude APIの説明でも、Temperatureを0.0にしても結果は完全には固定されないとされています。

また、これらの設定をいつでも変えられるとは限りません。Claude APIでは、Claude Opus 4.6より後に出たモデルで、temperature、top_p、top_kを自由に変えられなくなっています。チャット画面では、そもそも設定できないサービスが多くあります。

速度やコストは何に左右される?

返答が出るまでの時間は、入力を処理する段階と、出力を1つずつ作る段階に分けて考えると整理できます。NVIDIAは、前者を prefill(入力トークンを処理する段階)、後者を decode(出力トークンを1つずつ順に生成する段階)と呼んで区別しています。

入力:まとめて処理(prefill)出力:1つずつ順に生成(decode)123451つ作るたびに、次の1つを作る処理時間や料金に影響するもの出力の長さ長いほど時間がかかる入力の長さ長いほど処理が増えるモデルの大きさ大きいと遅くなりやすいシステム構成GPUの性能・混雑など影響の大きさは、モデルやサービスによって変わります
図5 入力はまとめて処理、出力は1つずつ生成。出力が長いほど時間がかかりやすい
要因影響のしかた
出力の長さ出力は1つずつ作るため、長いほど時間がかかりやすい。OpenAIは、出力トークンを半分にすると遅延も約半分になることがある、という目安を示している
入力の長さ長いほど処理は増えるが、遅延への影響は出力ほど大きくないことが多い。OpenAIは、プロンプトを半分にしても、遅延の改善は1〜5%程度にとどまることがあるとしている
モデルの大きさOpenAIは、処理速度に影響する主な要因はモデルの大きさだと説明している
システム構成使うGPUの性能や、そのときの混み具合などでも変わる

料金も、多くのAPIでは、入力と出力のトークン数をもとに決まります。ただし、単価や料金体系はサービスごとに異なり、チャットアプリでは月額制のものもあります。考えるタイプのモデルでは、内部で作られた思考のトークンも出力として数えられます。

表の数値は、あくまで各社が示す一般的な目安です。実際の速度は、モデルや混み具合、入力と出力の内容によって変わります。

体感の待ち時間を短くする方法として、ストリーミングがあります。これは、返答が完成するのを待たず、できた部分から順に画面へ表示する方式です。OpenAIは、待ち時間を短く感じさせるのに最も効果的な方法の1つとして挙げています。

完成してからまとめて表示待ち時間:画面には何も出ない全文がまとめて表示できたところから順に表示(ストリーミング)待ち時間こんにちは。…生成が終わる時点時間生成にかかる全体の時間はほぼ同じでも、最初の文字が見えるまでの待ちが短くなる
図6 ストリーミングは、完成を待たずに、できた部分から順に表示する方式

「考えているように見える」表示の扱い

チャット画面で「考え中…」と表示されたり、文字が少しずつ現れたりすると、AIが頭の中で考えているように見えます。ただし、これらは画面上の表示で、モデル内部の処理をそのまま見せているとは限りません。

  • 文字が順に出るのは、ストリーミングで、生成されたトークンから順に表示しているためです。
  • 思考が表示される場合も、Claude APIでは、返ってくるのは思考の要約で、元の思考そのものではないと説明されています。料金は、要約ではなく、実際に生成された思考のトークン全体にかかります。
  • モデルによっては、思考の文章を返さない設定が既定になっています。
画面に見えるもの「考え中…」の表示思考の要約(出るサービスもある)回答の文字が順に出る≠モデル内部で起きていること思考のトークンの生成回答のトークンの生成料金は生成された全体が対象(3つ目はClaude APIの例)表示は要約や進捗の見せ方であり、内部の処理と同じとは限りません
図7 画面の表示と、モデル内部の処理は同一視しない
補足

表示のしかたは、サービスごとに異なります。画面に出た文章を、AIの本当の思考過程と受け取らず、「内部の処理を説明するための表示」として見ておくと、誤解が減ります。

全体像と用語

ここまでの内容を1枚にまとめると、次の図のようになります。

入力指示履歴資料と質問学習済みモデル次のトークンを選ぶ返答が1トークンずつ伸びる東京です。左右するつまみ出力の長さ・止める条件上限、終了の印候補の選び方Temperatureなどモデルと構成大きさ、GPU、混雑
図8 推論の全体像:入力、学習済みモデル、1トークンずつ伸びる返答と、それを左右するつまみ
用語意味
学習大量のデータをもとに、モデルのパラメータを調整してAIを作る段階
推論(inference)学習済みモデルに入力を渡し、出力を作らせる段階。質問を送って返答が返るときに動いている
トークンモデルが文章を扱う単位。返答は1トークンずつ作られる
Temperature候補から選ぶときのランダムさを調整する設定。事実の正しさは保証しない
最大出力トークン数1回の返答で生成するトークンの上限
ストリーミング返答の完成を待たず、できた部分から順に表示する方式
推論モデル答える前に、内部で思考の文章を作るタイプのモデル。呼び名や見せ方はサービスごとに異なる

コメント