- リリース ノート
- はじめる前に
- スタート アップ ガイド
- プロジェクト
- データセット
- ML パッケージ
- パイプライン
- ML スキル
- ML ログ
- AI Center での Document Understanding
- ライセンス
- 使い方
- 基本的なトラブルシューティング ガイド
フル パイプラインを使用すると、新しいマシン ラーニング モデルのトレーニングと、この新しいモデルのパフォーマンスの評価を一度に行うことができます。さらに、トレーニングの前に前処理手順を実行して、データの操作/トレーニングされたマシン ラーニング モデルのトレーニングを行うことができます。
このパイプラインを使用するには、データを処理し、モデルをトレーニング、評価、保存するコード (train.py ファイルの process_data()、train ()、evaluate()、および save() 関数) がパッケージに含まれている必要があります。このコードとデータセットまたはデータセット内のサブフォルダー、および評価セット (任意) によって、新しいパッケージ バージョン、スコア (新しいバージョンのモデルに対して evaluate() 関数から返された)、およびユーザーがスコアとともに保持する任意の出力が生成されます。
フル パイプラインを作成する
Create a new full pipeline as described here. Make sure to provide the following full pipeline specific information:
- [パイプラインの種類] フィールドで [フル パイプラインの実行] を選択します。
- [入力データセットを選択] フィールドで、フル トレーニング用データのインポート元のデータセットまたはフォルダーを選択します。このデータセット/フォルダーのすべてのファイルは、
data_directory変数に格納されているパスで、パイプラインの実行中にローカルで使用できる必要があります。 - (任意) [評価データセットを選択] フィールドで、評価用データのインポート元のデータセットまたはフォルダーを選択します。このデータセット/フォルダーのすべてのファイルは、
test_data_directory変数に格納されているパスで、パイプラインの実行中にローカルで使用できる必要があります。フォルダーが選択されていない場合、パイプラインはprocess_data関数のtest_data_directory変数に何らかのパスを書き込みます。フォルダーを選択せず、さらにprocess_dataがtest_data_directoryへの書き込みを行わない場合、評価関数に渡されるディレクトリは空になります。 - [パラメーターを入力] セクションに、パイプラインで定義され、使用される環境変数を入力します (存在する場合)。環境変数は次のとおりです。
training_data_directory(既定値は dataset/training): パイプラインでトレーニング データにローカルでアクセスできる場所を定義します。このディレクトリは、train()関数の入力として使用されます。ほとんどのユーザーは、UI を使用してこれをオーバーライドする必要はなく、process_data関数のos.environ['training_data_directory']にデータを書き込むだけで、train(self, data_directoryの引数 data_directory がos.environ['training_data_directory']で呼び出されることを期待できます。- 既定値の
test_data_directorydataset/test: パイプラインでテスト データにローカルでアクセスできる場所を定義します。このディレクトリは、evaluate()関数の入力として使用されます。ほとんどのユーザーは、UI を使用してこれをオーバーライドする必要はなく、process_data関数のos.environ['test_data_directory']にデータを書き込むだけで、evaluate(self, data_directoryの引数 data_directory がos.environ['test_data_directory']で呼び出されることを期待できます。 artifacts_directory(既定値の 成果物): これにより、このパイプラインに関連する補助データとして保持されるディレクトリへのパスが定義されます。すべてのユーザーではないにしても、ほとんどのユーザーは、これを UI で上書きする必要はありません。パイプラインの実行時に、画像、PDF、サブフォルダーなど、あらゆるものを保存できます。具体的には、パスos.environ['artifacts_directory']で指定されたディレクトリにコードが書き込むデータは、パイプライン実行の最後にアップロードされ、[ パイプラインの詳細 ] ページから表示できます。save_training_data(既定値は true): True に設定すると、training_data_directoryフォルダーは、パイプライン実行の最後に、パイプラインの出力としてtraining_data_directoryディレクトリ下にアップロードされます。save_test_data(既定値は true): True に設定すると、test_data_directoryフォルダーは、パイプライン実行の最後に、パイプラインの出力としてtest_data_directoryディレクトリ下にアップロードされます。
評価データセットを選択するかどうかによって、フル パイプラインを以下のように作成できます。
評価データを明示的に選択する
Watch the following video to learn how to create a full pipeline with the newly trained package version 1.1. Be sure to select the same dataset (in our example, tutorialdataset) both as the input dataset and as the evaluation dataset.
評価データを明示的に選択しない
Watch the following video to learn how to create a full pipeline with the newly trained package version 1.1. Select the input dataset, but leave the evaluation dataset unselected.
フル パイプライン実行の結果
パイプラインの実行には時間がかかることがあります。しばらくしてからステータスを確認してください。
パイプラインの実行後、[パイプライン] ページのパイプラインのステータスは [成功] に変わります。[パイプラインの詳細] ページには、パイプラインの実行に関連する任意のファイルとフォルダーが表示されます。
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>"
}
}
}
モデルのガバナンス
パラメーター save_training_data = true および save_test_data = true が設定されている場合、他の種類のパイプラインと同様に、トレーニングおよび評価データをスナップショットに保存できます。