ブログ

Blog

絞り込んで表示する

2018.11.21 - 

オンライン予測とバッチ予測の使い分け

グルーヴノーツ コンサルタントの吉村です。
MAGELLAN BLOCKSのフローデザイナーで下記2つのブロックをどういう時に使い分ければいいかについてご案内します。

  • モデルジェネレーター予測(オンライン)
  • モデルジェネレーター予測(バッチ)

まず オンライン はともかく バッチ とは何だ?という人もいるかと思います。 バッチとはリアルタイムではなくある程度の量のデータをある程度時間がかかってもいいから処理したい場合に使う方法です。 システム開発界隈では 夜間バッチ処理 なんて言葉もあり、1日業務を行った内容を夜のうちに 集計や連携などの業務時間中にはできない処理を行う運用でよく利用される言葉です。

このオンラインとバッチですが数値系と画像系で選択基準が若干違うので分けてご案内させていただきます。


数値の予測

数値の予測である数値回帰・数値分類の場合においては、まずシステム制約があります。 それはモデルジェネレーター予測(オンライン)では 最大1000件 までしか処理できないということです。 なのでオンラインを利用する際はかならず1000件以下のデータ予測したい場合にご利用ください。 逆にモデルジェネレーター予測(バッチ)は件数の制限は(たしか)ありません。 処理時間についてもちろん量にもよりますがGCP側で処理前後のオーバーヘッドがありデータが数件でも10分前後かかるという特徴があります。

あとは使い方によって選びます。

オンラインを選ぶ場合

オンラインを選ぶ場合としては下記のような使い方を想定しています。


  • 検証目的で1000件以下の予測を行う場合
    例えば需要予測で1年分(365件)や1ヶ月分×商品等(31日×30種程度≦1000件)などです。 データが少なくはないのですが、検証で10分は待ちたくないシチュエーションですね。

  • 業務運用として1日分のデータとして1件や1000件を超えない予測を行う場合です。
    例えばセンサーデータを10分ごとに集計して今(1件)の状態を判断する使い方や、 毎朝100店舗分の来店客数を予測して仕込みの量を指示するなどです。 少ないデータでその場で処理してその場で業務に利用するようなシチュエーションですね。

バッチを選ぶ場合

バッチを選ぶ場合としては下記のような使い方を想定しています。


  • 検証・業務運用に限らず1000件超の予測を行う場合
    例えば顧客リストを元に誰にDMを送れば成約率が高いかを判断するモデルの予測などは、 顧客リストがすぐに1000件を超えるのでバッチでしか予測ができません。 要するにデータが多いのでオンラインでは処理できない場合全てですね。

この様に数値に関してはデータ量に基づいてオンライン/バッチの選択を行いますが、 この考え方に適合しない場合には業務を見直す必要があると考えた方が良いです。 (100万件をオンラインで一瞬で処理したい要件があれば要件がおかしい)


画像の予測

画像の場合にももちろんシステム制約があるのですが、ちょっと細かいので使い方でご案内させていただきます。

オンラインを選ぶ場合

オンラインを選ぶ場合としては下記のような使い方を想定しています。


  • 1枚だけ予測する場合
    業務運用としてはほとんどの場合がこうなるかと思います。 生産ラインで不良判定を行う場合や、スマホで撮影した画像を使って何かしら判断を行う場合です。 リアルタイムまたは準リアルタイムな使い方ですね。

  • 数枚(上限前後左右6方向からの画像など)の予測をする場合
    複数枚で注意が必要なのが合計画像サイズです。 内部変換された時のサイズなので正確な値をお伝えできないのですが、 100KB程度の画像を数枚であればオンラインで予測することも可能です。 なので6方向から撮影したの画像について判定する場合などは、 6枚の画像をまとめてモデルジェネレーター予測(オンライン)ブロックで 予測してそれぞれの分類結果を複合して合否を判定するなどに利用できます。

バッチを選ぶ場合

バッチを選ぶ場合としては下記のような使い方を想定しています。


  • 正しく分類できているか検証に利用する場合
    実際の利用シチュエーションが1枚ずつの検品だったとしても、 精度の高いモデルを作るために検証をする段階ではそれなりの枚数まとめて予測し評価する必要があります。 その際は画像を数十枚は準備して予測・予測結果を評価するので必ずモデルジェネレーター予測(バッチ)を利用します。

  • 多量の判断結果を分析に使う場合
    結構あるのが画像で分類した結果を集計して分析に使う場合です。 例えば来店客の分析を目的とした場合、交通量調査の様に人間が来店客のタイプを男性・女性・来日者など人間が記録することが考えられますが、 人員を利用した場合にはどうしても特定の日にしかカウントできません。 しかし来店客の分類するモデルを作れば、毎日大量の予測を閉店後の夜間に行うことで日毎・時間ごとの来店客タイプ毎の人数を分析・モニタリングをすることも可能です。


大まかな考え方は上記の通り書かせていただきましたが、みなさんが実現したい使い方の場合にどの様に処理すれば悩んだ場合は、 MAGELLAN BLOCKSのサポートセンターに問い合わせていただければ最適な方法を案内させていただきます。 「こういう目的でこういう使い方を実現したい」と具体的にご相談いただければ大丈夫ですのでまずお試しいただければと思います。