スケール可能なアーキテクチャ
データサイエンスチームがRapidMiner Serverの環境を構築するために以下2つのコンポーネントが必要です。
・RapidMiner Server – 中核となるコンポーネント
・Job Agents – ローカルあるいはリモートにおいてスケーラビリティを提供します
加えて以下のアプリケーションが必要です。
・RapidMiner Studio – プロセスをデザインし、RapidMiner Server環境で実行します
・データベース – 設定ファイル、cronジョブ、ユーザーレポートリクエスト、その他データを保存します
また以下のコンポーネントは任意でインストール可能です。これはRapidMiner Serverとは独立に動作します。
Real-Time Scoring Agents – レイテンシの低いウェブサービスのスケーラビリティを提供
以下は概略図です。
デザイン
RapidMiner Server環境のデザインは一般的なデータサイエンスのワークフローを反映しています。以下の二つのアクティビティがあります。
1.モデル構築において、キューに配置され非同期的に実行されるような実行時間の長いプロセスを含むものについて
RapidMiner Serverは実行時間の長いジョブにキューシステムを提供します。このようなジョブはJob Agentを経由して外部的に実行されます。Job Agentを追加することで処理能力を高めることができます。
2.予測あるいはモデルの適用において、リアルタイム応答が必要なものについて
予測を生成するために2つのエンジンがあります。
・ウェブサービス – RapidMiner Serverで直接実行されます。
・Real-Time Scoring Agent – RapidMiner Serverとは独立に実行される外部エンティティ
後者のみスケール可能です。Real-Time Scoring Agentを追加して処理能力を高めることができます。
RapidMiner Server
RapidMiner Serverはアーキテクチャの中核となるコンポーネントです。ウェブインターフェイスを通じて操作するか、RapidMiner Studioから操作します。主な機能は以下のものです。
・ユーザー管理、キュー管理、パーミッション管理
・ユーザージョブ(プロセス)のスケジュール実行
・ウェブサービス/ウェブアプリから呼び出されるプロセスの実行
・ローカルのJob Agentで実行中のプロセスの実行
・リポジトリ管理(モデルやプロセスなどの保存とそれらのパーミッションについて)
・接続管理(DB, Hadoop/Radoopなど)
もっと詳しく: RapidMiner Serverのインストール
以下の図では、青色の各ボックスは別のマシンを表しています。RapidMiner Serverは左の大きな青色のボックスにインストールされています。一方で、右側の青色のボックスはJob Agentをホストしています。
Job Agent
遠隔のマシン上で動作しているJob Agentをデザインするのはスケーラビリティが目的です。一方で複数のJob AgentをローカルにすなわちRapidMiner Serverをインストールしているマシンにインストールすることもできます。
各Job AgentはRapidMiner Serverのキューの一つを指します。Job Containerを生成することによってキューからジョブを取り出し実行します。各Job Agentに対して、生成されるJob Containerの数と利用可能なメモリを設定することができます。
複数のJob Agentが同じキューを指すこともできます。パーミッションを指定することによって、キューを管理し、リソースを割り当てることができます。
もっと詳しく: Job Agentをインストールする
Job Container
Job Agentによって生成されたJob Containerはプロセスを実行するRapidMiner Studioのインスタンスを実行します。プロセスが終了するとJob Containerは削除されます。各ジョブはサンドボックス内で動作するのでシステムは非常に堅牢です。一つのジョブで問題が発生しても他のジョブに影響を与えません。
Job Containerを生成する際のレイテンシは秒単位で計測されます。リアルタイム応答が重要でない場合は、このレイテンシは重要ではありません。一方でリアルタイム応答が重要な場合はウェブサービスかReal-Time Scoring Agentを使用することを推奨します。例えば、Job Container内でモデルを構築し、そのモデルを用いて予測を生成したい場合はReal-Time Scoring Agentを使用します。
Real-Time Scoring Agent
すでに述べたように、予測を生成する際には二つのエンジンがあります。
・ウェブサービス – RapidMinerで直接実行されます。
・Real-Time Scoring Agent – RapidMiner Serverとは独立に実行される外部エンティティ
リアルタイムスコアリングエージェントを経由して予測を生成する場合は、RapidMiner Serverでデプロイメントを作成する必要があります。デプロイメントをインストールすると、RapidMiner Serverとは独立に実行することができます。
以下のテーブルをご覧いただくとわかるように、Real-Time Scoring Agentはスケール可能です。また、Job Agent / Job Containerと比較してレイテンシが低いです。すなわちリアルタイム予測に最適と言えます。
もっと詳しく: ウェブサービス
もっと詳しく: Real-Time Scoring