- リリース ノート
- はじめる前に
- 基本情報
- プロジェクト
- データセット
- ML パッケージ
- パイプライン
- ML スキル
- ML ログ
- AI Center での Document Understanding
- ライセンス
- 使い方
- 基本的なトラブルシューティング ガイド
フル パイプライン
フル パイプラインを使用すると、新しいマシン ラーニング モデルのトレーニングと、この新しいモデルのパフォーマンスの評価を一度に行うことができます。さらに、トレーニングの前に前処理手順を実行して、データの操作/トレーニングされたマシン ラーニング モデルのトレーニングを行うことができます。
process_data()
、train ()
、evaluate()
、および save()
関数) がパッケージに含まれている必要があります。このコードとデータセットまたはデータセット内のサブフォルダー、および評価セット (任意) によって、新しいパッケージ バージョン、スコア (新しいバージョンのモデルに対して evaluate()
関数から返された)、およびユーザーがスコアとともに保持する任意の出力が生成されます。
こちらで説明しているように、新しいフル パイプラインを作成します。以下のフル パイプライン固有の情報を忘れずに指定してください。
- [パイプラインの種類] フィールドで [フル パイプラインの実行] を選択します。
- [入力データセットを選択] フィールドで、フル トレーニング用データのインポート元のデータセットまたはフォルダーを選択します。このデータセット/フォルダーのすべてのファイルは、
data_directory
変数に格納されているパスで、パイプラインの実行中にローカルで使用できる必要があります。 - (任意) [評価データセットを選択] フィールドで、評価用データのインポート元のデータセットまたはフォルダーを選択します。このデータセット/フォルダーのすべてのファイルは、
test_data_directory
変数に格納されているパスで、パイプラインの実行中にローカルで使用できる必要があります。フォルダーが選択されていない場合、パイプラインはprocess_data
関数のtest_data_directory
変数に何らかのパスを書き込みます。フォルダーを選択せず、さらにprocess_data
がtest_data_directory
への書き込みを行わない場合、評価関数に渡されるディレクトリは空になります。 - [パラメーターを入力] セクションに、パイプラインで定義され、使用される環境変数を入力します (存在する場合)。環境変数は次のとおりです。
training_data_directory
ph b。既定値は dataset/training。パイプラインがトレーニング データにアクセスできるローカルの場所を定義します。このディレクトリは、train()
関数の入力として使用されます。ほとんどのユーザーは、UI を使用してこれを上書きする必要はありません。process_data
関数のos.environ['training_data_directory']
にデータを書き込めば、train(self, data_directory
によりos.environ['training_data_directory']
の引数 data_directory が呼び出されます。-
test_data_directory
。既定値は dataset/test。パイプラインがテスト データにアクセスできるローカルの場所を定義します。このディレクトリは、evaluate()
関数の入力として使用されます。ほとんどのユーザーは、UI を使用してこれを上書きする必要はありません。process_data
関数のos.environ['test_data_directory']
にデータを書き込めば、evaluate(self, data_directory
によりos.environ['test_data_directory']
の引数 data_directory が呼び出されます。 artifacts_directory
。既定値は artifacts。このパイプラインに関連する補助データとして保持されるディレクトリへのパスを定義します。ほとんどのユーザーは、UI を使用してこれを上書きする必要はありません。パイプラインの実行中は、画像、pdf、サブフォルダーなど、あらゆるものを保存できます。具体的には、コードがパスos.environ['artifacts_directory']
で指定されたディレクトリに書き込むあらゆるデータは、パイプライン実行の最後にアップロードされて、[パイプラインの詳細] ページに表示されます。save_training_data
。既定値は false。true に設定した場合、パイプライン実行の最後に、training_data_directory
フォルダーがパイプラインの出力としてtraining_data_directory
ディレクトリにアップロードされます。save_test_data
。既定値は false。true に設定した場合、パイプライン実行の最後に、test_data_directory
フォルダーがパイプラインの出力としてtest_data_directory
ディレクトリにアップロードされます。
評価データセットを選択するかどうかによって、フル パイプラインを以下のように作成できます。
以下のビデオで、新しくトレーニングされたパッケージ バージョン 1.1 でのフル パイプラインの作成方法を確認してください。入力データセットと評価データセットの両方に同じデータセット (この例では、tutorialdataset) を選択してください。
以下のビデオで、新しくトレーニングされたパッケージ バージョン 1.1 でのフル パイプラインの作成方法を確認してください。入力データセットは選択しますが、評価データセットは未選択のままにします。
パイプラインの実行後、[パイプライン] ページのパイプラインのステータスは [成功] に変わります。[パイプラインの詳細] ページには、パイプラインの実行に関連する任意のファイルとフォルダーが表示されます。
train()
関数は、データ フォルダーの未変更のコンテンツ (example1.txt と example2.txt) ではなく、train.csv でトレーニングされます。process_data
を使用して、任意のユーザー定義パラメーターに基づいてデータを動的に分割できます。- 最初のフル パイプラインは、example1.txt、example2.txt、および test.csv を含むディレクトリで評価を実行します。2 番目のフル パイプラインは、test.csv のみを含むディレクトリで評価を実行します。この違いは、2 番目のフル パイプライン実行の作成時に評価セットを明示的に選択しなかったことによるものです。このようにして、UiPath Robot からの新しいデータの評価を行い、プロジェクトに既に存在するデータを動的に分割することができます。
- 各コンポーネントは、パイプラインの一部として任意の成果物を作成できます (ヒストグラム、TensorBoard ログ、分布プロットなど)。
- ML パッケージの zip ファイルは、トレーニング パイプラインで自動的に生成される新しいバージョンのパッケージです。
- 成果物フォルダーはパイプラインで生成されたすべての成果物を再グループ化するフォルダーで、
artifacts_directory
フォルダーに保存され、空でない場合にのみ表示されます。 - トレーニング フォルダーは
training_data_directory
フォルダーのコピーであり、save_training_data
が true に設定されている場合にのみ表示されます。 - テスト フォルダーは
test_data_directory
フォルダーのコピーであり、save_training_data
が true に設定されている場合にのみ表示されます。
ここでは、いくつかのパッケージでの類似の概念に基づくフル パイプラインの実行、すなわちバージョン 1.0 でのトレーニング パイプラインをバージョン 1.1 に出力する方法を説明します。
- パッケージ バージョン 1.1 を
~/mlpackage
にコピーします。 ./dataset
というディレクトリを作成します。- 入力データセットのコンテンツを
./dataset
にコピーします。 - ユーザーが [評価データセットを選択] フィールドに何かを設定した場合は、その評価データセットをコピーして
./dataset/test
に保存します。 - 環境変数
training_data_directory=./dataset/training
とtest_data_directory=./dataset/test
を設定します。 - 以下の Python コードを実行します。
from train import Main m = Main() m.process_data('./dataset') m.evaluate(os.environ['test_data_directory']) m.train(os.environ['training_data_directory']) m.evaluate(os.environ['test_data_directory'])
from train import Main m = Main() m.process_data('./dataset') m.evaluate(os.environ['test_data_directory']) m.train(os.environ['training_data_directory']) m.evaluate(os.environ['test_data_directory']) ~/mlpackage
のコンテンツをパッケージ バージョン 1.2 として保持します。成果物が作成されている場合は保持し、save_data
が true に設定されている場合はデータをスナップショットに保存します。注: 環境変数training_data_directory
とtest_data_directory
が存在するということは、process_data
がこれらの変数を使用してデータを動的に分割できることを意味します。
_results.json
ファイルには、パイプライン実行の概要が記載されており、フル パイプラインのすべての入力/出力と実行時間が公開されています。
{
"parameters": {
"pipeline": "< Pipeline_name >",
"inputs": {
"package": "<Package_name>",
"version": "<version_number>",
"input_data": "<storage_directory>",
"evaluation_data": "<storage_directory>/None",
"gpu": "True/False"
},
"env": {
"key": "value",
...
}
},
"run_summary": {
"execution_time": <time>, #in seconds
"start_at": <timestamp>, #in seconds
"end_at": <timestamp>, #in seconds
"outputs": {
"previous_score": <previous_score>, #float
"current_score": <current_score>, #float
"training_data": "<training_storage_directory>/None",
"test_data": "<test_storage_directory>/None",
"artifacts_data": "<artifacts_storage_directory>",
"package": "<Package_name>",
"version": "<new_version>"
}
}
}
{
"parameters": {
"pipeline": "< Pipeline_name >",
"inputs": {
"package": "<Package_name>",
"version": "<version_number>",
"input_data": "<storage_directory>",
"evaluation_data": "<storage_directory>/None",
"gpu": "True/False"
},
"env": {
"key": "value",
...
}
},
"run_summary": {
"execution_time": <time>, #in seconds
"start_at": <timestamp>, #in seconds
"end_at": <timestamp>, #in seconds
"outputs": {
"previous_score": <previous_score>, #float
"current_score": <current_score>, #float
"training_data": "<training_storage_directory>/None",
"test_data": "<test_storage_directory>/None",
"artifacts_data": "<artifacts_storage_directory>",
"package": "<Package_name>",
"version": "<new_version>"
}
}
}