拡張性に優れたアーキテクチャ
このドキュメントのオリジナルバージョンは、Altair AI Hub(当時の名称はRapidMiner Server)がDockerイメージのセットとして再構成される前に作成されたものです。ここでは、システムの核心に重点を置くために、後に導入された周辺コンポーネントの多くを無視して、文章を少し修正しただけです。
設計
AI Hub Server環境の設計は、2種類のアクティビティがある一般的なデータサイエンスのワークフローを反映しています。
- モデル構築(キューに入れ、非同期で実行できる長時間プロセスを含む)AI Hub Serverは、Job Agentを介して外部で実行される長時間ジョブのためのキューシステムを提供します。Job Agentを追加することで処理能力が向上します。
- 予測、またはリアルタイムのレスポンスが最も重要なモデルのその他のアプリケーション予測を生成するためのエンジンは2つあります。
- Web API Agent(外部または内部で実行可能な、管理された負荷分散エンティティ)
- Scoring Agent(AI Hubとは独立して動作する外部エンティティ)
Web API AgentやScoring Agentを追加することで処理能力を向上させることができます。
通常、Altair AI Hub環境で実行するプロセスの設計にはAltair AI Studioを使用します。
下図では、それぞれの青いボックスが独立したマシンを表しています。
- AI Hub Serverは、一番上の大きな青いボックスにインストールされます。
- Remote Job Agentは下部の青いボックスでホストされます。
- Scoring Agentは側面で独立して機能します。
- Web API AgentはAI Hub Server Nodeまたはスタンドアロンに配置できます
- Web API GatewayはAI Hub Server Nodeまたはスタンドアロンに配置できます。
AI Hub Server
AI Hub Serverは、アーキテクチャの中心となるコンポーネントです。webインタフェースまたはAltair AI Studioを介して操作します。主な役割は以下の通りです。
- ユーザー、キュー、権限の管理
- ユーザージョブ(プロセス)のスケジュール設定
- (存在する場合)ローカルJob Agent上で実行されるプロセスの実行
- プロジェクト管理(モデル、プロセスなどの保存とそれらの権限)
- 接続管理(DB, Hadoop/Radoopなど)
Job Agent
Job Agentを専用マシン上でリモートで実行する設計は、高い拡張性を目的としています。
各Job Agentは、AI Hub Server上のキューの1つを指すように設定されています。その唯一の役割は、キューからジョブを取得して実行することです。Job Agentは起動すると、設定可能な数のJob Containerを個別のシステムプロセスとして生成します。その後、ジョブはそれらのJob Containerにリダイレクトされ、生成されたJob Container内でAltair RapidMinerプロセスが実行されます。Job Agentがシャットダウンされると、このJob AgentのすべてのJob Containerもシャットダウンされます。Job Agentごとに、生成できるJob Containerの数と使用可能なメモリを設定可能です。
複数のJob Agentが同じキューを指すことができます。権限を割り当てることで、キューを管理し、リソースの割り当てを管理できます。
参考: Job Agentの設定、Job Containerの設定
Job Container
Job Agentによって生成されたJob Containerは、Altair RapidMinerプロセスを実行可能なAltair AI Studioインスタンスを実行します。REST API経由でJob Agentからのジョブを受け入れるために、システムポートにバインドされています。
デフォルトでは、Job Containerは各プロセスの終了後に終了しないため、ほぼ瞬時にプロセスを実行することができます。
システムの堅牢性を高め、ジョブが以前に実行されたジョブに影響を与えないように、各ジョブを独自のサンドボックスで実行することが望ましい場合があります。この動作は、例えば、プロセスが終了した後にJob Containerを再起動するように設定することもできます。詳細については、Job Agentの設定ページを参照してください。
この安全性の代償として待ち時間が発生します。Job Containerを再起動する際の待ち時間は秒単位で計測されます。各ジョブにはこの待ち時間が追加されます。
もしリアルタイムのレスポンスが最重要であれば、Web API AgentかScoring Agentを使用することをお勧めします。例えば、Job Containerでモデルを構築し、Scoring Agentでそのモデルの予測を生成することができます。
Web API Agent / Scoring Agent
前述のように、予測を生成するためのエンジンは2つあります
- Web API Agents – Altair AI Hubと通信します。
- Scoring Agents – Altair AI Hubとは独立して動作します。
Scoring Agentを介して予測を生成する場合、エンドポイントを作成するためにAltair AI Hubが必要ですが、その後はAltair AI Hubとは独立してプロセスを実行することもできます。
Web APIアーキテクチャは、Altair AI HubがJob Agentに提供するのと同じレベルの管理とサービスをWeb API Agentに提供するように設計されており、Web API Groupがキューの役割を果たします。
以下の表からわかるように、Web API Agent / Scoring Agentは、Job Agent / Job Containerと対をなす、スケーラブルで低レイテンシのエージェントです。
コンポーネント | スケーラビリティ | 低レイテンシレスポンス | 即時実行 |
---|---|---|---|
Job Agent / Job Container | |||
Scoring Agent | |||
Web API Agent |
参考:
デフォルトのポートと通信経路
以下の表は、AI Hubプラットフォームが内部的に使用するデフォルトポートの概要を示しています。docker-composeセットアップのような実際のデプロイメントでは、これらのポートの一部はnginxなどのリバースプロキシを介してルーティングされ、Altair AI Studioやその他のサードパーティアプリケーションからAI Hubと通信する際の唯一のエントリポイントとして機能します。このようなシナリオでは、これらのポートはデフォルトでは公開されていないか、内部ネットワークにのみ存在するように設定されています。
アプリケーション | デフォルトのサービスポート | デフォルトのオプション/デバッグ/メトリックポート | REST通信 | ブローカー通信 |
---|---|---|---|---|
ActiveMQ Artemis (Broker) | 61616 | 8161 | – | AI Hub Backend, Job Agent |
AI Hub Backend | 8080 | 8077 | – | Job Agent |
AI Hub Frontend | 80 | – | AI Hub Backend | – |
Job Agent | – | 8066 | AI Hub Backend, Job Container (localhost経由) | AI Hub Backend |
Job Container | 10000… (localhostはJob Agentでリッスン) | – | AI Hub Backend, Job Agent | – |
Scoring Agent | 8090 | 8067 | – | – |
Web API Agent | 8090 | 8067 | AI Hub Backend, Web API Gateway | – |
Web API Gateway | 8099 | 8078 | AI Hub Backend, Web API Agent | – |
License Proxy | 9898 | 9191 | Altair License Manager, AI Hub Backend, Job Agent, Web API Agent, Scoring Agent(設定により異なる) | – |