【もでるすいろん】

モデル推論 とは?

💡 鍛え上げたAIを「実際に使う」実行フェーズ
📌 このページのポイント
学習フェーズ vs 推論フェーズ 学習(トレーニング) 大量の 学習データ 学習アルゴリズム パラメータを最適化 学習済み モデル 数時間〜数週間 GPU大量使用 高コスト モデルを使う 推論(インファレンス) 新しい入力 (未知データ) 学習済みモデル パラメータは固定 予測結果 分類・生成等 ミリ秒〜数秒 軽量に実行可能 低コスト 推論 = 学習済みモデルに新データを入力して結果を得るプロセス
モデル推論のイメージ
ひよこ ひよこ

推論って「AIが考える」こと?学習と何が違うの?

ペンギン先生 ペンギン先生

学習は「問題集を解きながら答え合わせをして知識を更新する」フェーズ。推論は「学んだ知識をもとに実際の問題に答える」フェーズだよ。学習はパラメータを変更するから重い処理で時間がかかるけど、推論はパラメータを読み込んで計算するだけだから速いんだ。

ひよこ ひよこ

ChatGPTに聞いたとき、答えが返ってくるまでの時間って何で決まるの?

ペンギン先生 ペンギン先生

主に「モデルのサイズ」と「どのハードウェアで動かしているか」で決まるよ。大型モデルほど計算が多いし、GPUを多く使えるほど速い。あとLLMはトークンを一つずつ生成するから、長い答えほど時間がかかる。「最初の文字が出るまでの時間(Time To First Token)」と「1秒あたりの生成トークン数」がよく使われる指標だよ。

ひよこ ひよこ

推論を速くするためにはどうするの?

ペンギン先生 ペンギン先生

バッチ処理(複数リクエストをまとめて処理)、量子化(モデルを軽くする)、モデルの蒸留(大きいモデルを小さいモデルに圧縮する知識蒸留)などの手法があるよ。専用のハードウェアIntelのGaudiやGoogleTPUなど)を使うこともあるんだ。

ひよこ ひよこ

推論時にもGPUのメモリが足りないってどういうこと?学習じゃないのに?

ペンギン先生 ペンギン先生

実は推論でもメモリは大量に必要なんだ。LLMの推論では「KVキャッシュ」というものを使って、過去のトークンの計算結果を保存しながら生成を続ける。会話が長くなるほどKVキャッシュが大きくなって、バッチサイズを増やすとさらにメモリを食う。「モデルパラメータのメモリ」と「推論時の中間状態のメモリ」の両方が必要なので、大型モデルの推論サーバーの設計は学習と同じくらいメモリ管理が重要で、これを見落としてシステムを組むと本番環境でOOMエラーが出て動かない、というのはよくある落とし穴なんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「モデル推論」って出てきたら「学習済みAIを実際に動かして答えを出す処理」と思えればだいたいOK!
📖 おまけ:英語の意味
「Model Inference」 = モデルによる推論・推定
💬 Inferenceは「推論・推定」の意味。統計学では「データからモデルのパラメータを推定すること」も指すが、AI文脈では「学習済みモデルを使って予測すること」を意味するよ
← 用語集にもどる