推論は、トレーニング済みモデルをラベルなしのサンプルに適用して予測を行うプロセスです。大まかに言えば、モデルは次の 2 つの方法のいずれかで予測を推測できます。
- 静的推論(オフライン推論またはバッチ推論とも呼ばれます)とは、モデルが一般的なラベルなしの例の束に対して予測を行い、その予測をどこかにキャッシュに保存することを意味します。
- 動的推論(オンライン推論、リアルタイム推論とも呼ばれます)とは、モデルがリクエストに応じてのみ予測を行うことを意味します(クライアントが予測をリクエストした場合など)。
極端な例として、予測の推論に 1 時間かかる非常に複雑なモデルを想像してみてください。静的推論に適した状況は次のとおりです。
この同じ複雑なモデルで、静的推論ではなく動的推論が誤って使用されているとします。多くのクライアントが同じ時間帯に予測をリクエストした場合、ほとんどのクライアントは数時間または数日間、その予測を受け取りません。
次に、比較的少ない計算リソースを使用して 2 ミリ秒で推論するモデルについて考えてみましょう。この状況では、クライアントは図 5 に示すように、動的推論によって予測を迅速かつ効率的に受け取ることができます。
静的推論
静的推論には特定のメリットとデメリットがあります。
メリット
- 推論のコストについてはあまり心配する必要はありません。
- push の前に予測の検証を行うことができます。
デメリット
- キャッシュに保存された予測のみを提供できるため、システムが一般的な入力例の予測を提供できない場合があります。
- 更新レイテンシは時間単位または日単位で測定されます。
動的推論
動的推論には、特定のメリットとデメリットがあります。
メリット
- 新しいアイテムが入力されると、任意のアイテムの予測を推測できます。これは、ロングテール(あまり一般的でない)予測に適しています。
デメリット
- コンピューティング集約型でレイテンシの影響を受けやすい。この組み合わせにより、モデルの複雑さが制限される場合があります。つまり、複雑なモデルよりも予測をより迅速に推論できる、よりシンプルなモデルを構築しなければならない場合があります。
- 監視の必要性が高まっている。
演習: 理解度を確認する
静的推論について、次の 4 つの記述のうち、正しいのはどれですか。3 つ
モデルは、考えられるすべての入力に対して予測を作成する必要があります。
はい。モデルは、考えられるすべての入力に対して予測を行い、キャッシュまたはルックアップ テーブルに保存する必要があります。モデルが予測する対象が限定されている場合は、静的推論が適切な選択肢になる可能性があります。ただし、ユーザーのクエリなど、異常なアイテムやまれなアイテムの長いテールを持つ自由形式の入力の場合、静的推論では完全なカバレッジを提供できません。
システムは、推論された予測を提供する前に検証できます。
はい。これは静的推論の有用な側面です。
特定の入力に対して、モデルは動的推論よりも速く予測を提供できます。
はい。ほとんどの場合、静的推論は動的推論よりも速く予測を提供できます。
世界情勢の変化にすばやく対応できます。
いいえ。これは静的推論の欠点です。
動的推論について、次の記述のうち正しいのはどれですか。
すべてのアイテムの予測を提供できます。
はい。これは動的推論の強みです。受信したリクエストにはスコアが付けられます。動的推論は、映画レビューで書かれたすべての可能な文の空間など、ロングテール分布(レアなアイテムが多い分布)を処理します。
予測を使用する前に、予測の検証を行うことができます。
通常、予測はオンデマンドで行われるため、使用前にすべての予測の検証を行うことはできません。ただし、予測の集計品質をモニタリングして、ある程度の品質チェックを行うことは可能です。ただし、火災がすでに広がった後にのみ火災警報が鳴ります。
動的推論を実行する場合、静的推論を実行する場合ほど予測レイテンシ(予測を返すまでの遅延時間)を気にする必要はありません。
動的推論では、予測レイテンシが大きな懸念事項となることがあります。ただし、推論サーバーを追加しても、予測レイテンシの問題が必ずしも解決するとは限りません。