前書き
- 推論に興味がわいたので、手を出してみようと思い備忘録として記事を書いています
- 専門家ではないので、誤った情報を書いている可能性があります
- おそらく複数の記事にまたがるので、本記事は #推論01 とします
そもそも「推論」とは
ざっくりと言ってしまえば、「何かの情報をもとにして結論を出すこと」
もっと具体的にいうと
-
人間の場合の推論
例えば、「空が暗くなってきた」→「雨が降りそうだな」って考える
つまりは観察(空が暗い)から、結論(雨が降りそう)を導き出しすこと -
AIや機械学習での推論
学習済みのモデルに入力データを与えて、答えや予測を出すことが「推論」
例えば、猫か犬かを判定するAIモデルがあったとして、「これは猫の画像ですよ〜」って答えてくれるイメージ
機械学習の流れの中では
- 学習(トレーニング):データを使ってAIモデルを鍛える
- 推論(インファレンス):鍛えたモデルで、未知のデータに対して予測や判断をする
補足
- 英語では「Inference(インファレンス)」という
- AIがリアルタイムで動くとき、実際に何か判断している部分が「推論エンジン」とか呼ばれることもある
用語と基本構造を理解する
ポイントとなるのは主に以下の5つ
- モデル
- 推論
- フレームワーク
- モデル形式
- 全体構造と流れ
ざっくりとそれぞれ項目ごとにまとめていく
1.モデルとは?
モデル = 「学習済みのAIの知識」を詰め込んだファイル(もしくは構造)
イメージ
- 人間でいうと「経験や知識」
- 入力(例:画像)を受け取り、出力(例:猫と判断)を返す
- 中には多数の「重み(重みづけ)」や「層(layer)」が入っている
2.推論とは?
推論(Inference)= 学習済みモデルを使って「答えを出す」処理
イメージ
- すでに学習済みのモデルに画像を渡して、
- 「これは猫」
- 「これはクルマ」
- 「この数字は“5”」
- という風に「予測」させる
3.フレームワークとは?
モデルを作ったり動かすための「道具・ライブラリ」
主な例
フレームワーク名 | 用途 |
---|---|
PyTorch | 学習・推論どちらも対応。人気No.1 |
TensorFlow | Google製の学習フレームワーク |
ONNX Runtime | 推論専用。特にONNX形式に特化(軽量) |
補足:推論エンジンとは?
- モデルをCPUやGPUで実際に動かすための仕組み・ライブラリ
- フレームワークで作成したモデルを「動かす役目」をしてくれる
4.モデル形式とは?
モデルを保存する「ファイルの形式」のこと
よくある形式とその特徴
形式 | 元 | 用途 | 拡張子 |
---|---|---|---|
.pt , .pth
|
PyTorch | 学習・保存 | 学習向け |
.pb |
TensorFlow | 保存 | モデルの保存 |
.onnx |
ONNX形式 | 汎用的な推論に使える | 推論向け・軽量 |
ONNX形式のメリット
- いろんなツールで共通して扱える
- 軽い、最適化しやすい
- CPU/GPU/アクセラレータでも動かせる
5.全体の構造と流れ
Step 1: モデルを用意(学習済みのONNXファイルなど)
↓
Step 2: 入力(画像など)をモデルに渡す
↓
Step 3: モデルが推論(予測)を実行
↓
Step 4: 出力結果を受け取る(例:猫 98%)
まとめ(超ざっくり)
用語 | 意味 |
---|---|
モデル | AIの判断ロジック(中に重みなどが入ってる) |
推論 | モデルに入力を渡して答えを出してもらう |
フレームワーク | モデルを作ったり使ったりする道具 |
ONNX | モデルの共通ファイル形式 |
推論エンジン | モデルをCPU/GPUで動かすソフト(ONNX Runtimeなど) |
次回(推論#02)はメジャーなモデルについて記事を書こうと思います