ベストプラクティス
このドキュメントでは、RapidMinerのプロセスやモデルの開発およびデプロイするチームへのベストプラクティスを推奨しています。
一般的には、作業を開発プロジェクトと本番プロジェクトに分け、大規模なユースケースや重要度の高いユースケースには中間テストを設けることを推奨します。プロセスとモデルは一貫した方法で次の段階へと移動させ、プラットフォームは開発中の各段階のスナップショットを保持し、いつでも戻せるようにしておきます。
以下を含む環境の概略図を下に示します。
開発環境
プロジェクトを開始するには、
- RapidMiner AI Hub内でプロジェクトを作成し、すべてのチームメンバーが以下を持っていることを確認します。
- その後、各チームメンバーはRapidMiner Studio(またはGitクライアント)から対象のプロジェクトに接続します。
以下の点に注意してください。
- プロジェクトでは、RapidMiner Studioはリポジトリと同様に機能します。
- プロジェクトには、RapidMiner内で作成されたプロセスやモデルだけでなく、任意のファイルタイプを含めることができます。
- 各チームメンバーはプロジェクトの完全なコピーを持ち、独立して作業することができます。
- スナップショットとしてまだ共有されていないローカル変更を除き、プロジェクトのすべてのコピーは同一です。
- ローカルの変更が機能していることを確認したら、スナップショットを作成します。
- ローカルの変更に不備がある場合は、ローカルの変更を破棄することができます。
- チームメンバーが作成したスナップショットが必要な場合は、アップデートを取得することができます。
競合
競合を回避するには、開発者向けの一般的なアドバイスに従うことをお勧めします。すなわち、プロジェクトのさまざまな部分をできるだけ独立させておくことです。例えば、一人のチームメンバーがデータの前処理を行い、もう一人のチームメンバーがモデリングを行う場合、少なくとも2つの独立したプロセスを作成し、それぞれに想定される入力と出力を明確に定義します。
競合が発生した場合、RapidMiner Studioは、基本的な競合解決機能を備えたユーザーインタフェースと、競合するファイルごとに以下のオプションを提供します。
- use my version
- use my colleague’s version
すべての関連情報は、3つの異なるスナップショット(自分のスナップショット、チームメンバーのスナップショット、競合の解決策を含むスナップショット)として、Snapshot Historyに保存されるため、この時データの損失は発生しません。
テスト環境と本番環境
テスト環境と本番環境は、根本的に開発環境とは異なりますが、RapidMinerでは同じプロジェクトコンセプトでサポートしています。違いは、環境の設定方法と使用方法です。
以下の違いに注意してください。
- 権限が異なります。開発環境では、チームメンバーがすべてにアクセスできます。テスト環境と本番環境は、通常Machine Learning Ops(会社によっては、IT、DevOps、またはデータサイエンスチーム内の特定のグループ)によって管理されます。
- 接続が異なるデータソースを指します。通常、プロセスが3つの環境すべてで同じ場合でも、テスト環境や特に本番環境の接続は特定のデータソースを指す必要があります。
- プロセスは通常、定期的に実行されるようにスケジュールされます。
- 履歴が短いです。開発環境のSnapshot Historyには、最終バージョンの作成に必要だったすべての変更と中間ステップが含まれています。テスト環境と本番環境は、新しいバージョンがデプロイされたときにのみ変更されます。つまり、安定した最終バージョンのみが履歴に含まれます。
- 例外 : 例えば、学習したモデルやプロセス出力を自動で追加するなどして、プロセス自身がプロジェクトを修正する場合は例外です。
- テスト環境では、スケジュールされたプロセスの出力が、以下のようなたくさんの標準的なケースに対して正しいかどうかをテストする追加プロセスが含まれます。
- 出力データの一貫性(出力がExampleSetの場合)
- モデルの正解率(またはその他のモデルの評価指標)
- 既知のリクエストへの応答時間など、潜在的な他のメトリクス
本番環境
環境を設定したら、継続的インテグレーション/継続的デプロイ(CI/CD)のサイクルを開始する準備が整います。現時点では、このサイクルを完全に自動化することはできません。
テスト環境と本番環境の作成
開発チームが最初の結果を出したら、RapidMiner AI HubのSnapshot Historyページから安定したスナップショットをダウンロードできます。結果は接続を含むスナップショットの完全なコンテンツを含むZIPファイルになります。
このスナップショットを使用して、テスト環境または本番環境で新しいプロジェクトを作成することができます。通常、いくつかの追加ステップが必要です。
- 新しい環境で正しいデータソースを指すように、接続を確認します。
- テストプロジェクトにテストプロセスを追加します。
- 必要に応じてスケジュールを設定します。
テスト環境と本番環境のアップデート
開発チームが作業を続けるにつれ、追加のデプロイメントが必要になります。以下の手順をお勧めします。
- RapidMiner AI Hubのwebインタフェース内から、プロジェクトに関連するすべてのスケジュールを一時停止にします。
- RapidMiner Studioを起動し、開発環境とテスト環境に対応するプロジェクトに接続します。
- 接続を除く、テスト環境のプロジェクトのコンテンツを削除します。または、部分的な変更のみの場合は、影響を受けるフォルダのみを削除します。
- 開発環境から新しいコンテンツをコピーして貼り付けます。
- テスト環境で新しいスナップショットを作成します。
- 定義したテストを実行し、結果が期待通りであることを確認します。
- RapidMiner AI Hubのwebインタフェース内から、すべてのスケジュールを再開させます(スケジュールされたプロセスの名前が変更されていないこと、削除されていないことを確認してください)。
本番環境の場合、手順はユースケースによって異なります。
- リアルタイムスコアリング
- Projectフォルダからデプロイメントパッケージを作成し、アクティブなデプロイメントを更新します。
- webサービス
- プロジェクトのコンテンツを本番サーバーのリポジトリにコピーします。
- すべての接続が正しいデータソースを指していることを確認します。
- 新しいプロセスを指すように、webサービスを編集します。
- RapidMiner AI Hubのスケジュール
- プロジェクトのコンテンツを本番サーバーのリポジトリにコピーします。
- すべての接続が正しいデータソースを指していることを確認します。
- 新しいプロセスを指すように、スケジュールを編集します。