AI Center
2021.10
バナーの背景画像
AI Center ガイド
最終更新日 2024年3月11日

フル パイプライン

フル パイプラインを使用すると、新しいマシン ラーニング モデルのトレーニングと、この新しいモデルのパフォーマンスの評価を一度に行うことができます。さらに、トレーニングの前に前処理手順を実行して、データの操作/トレーニングされたマシン ラーニング モデルのトレーニングを行うことができます。

このパイプラインを使用するには、データを処理し、モデルをトレーニング、評価、保存するコード (train.py ファイルの process_data()train ()evaluate()、および save() 関数) がパッケージに含まれている必要があります。このコードとデータセットまたはデータセット内のサブフォルダー、および評価セット (任意) によって、新しいパッケージ バージョン、スコア (新しいバージョンのモデルに対して evaluate() 関数から返された)、およびユーザーがスコアとともに保持する任意の出力が生成されます。

フル パイプラインを作成する

こちらで説明しているように、新しいフル パイプラインを作成します。以下のフル パイプライン固有の情報を忘れずに指定してください。

  • [パイプラインの種類] フィールドで [フル パイプラインの実行] を選択します。
  • [入力データセットを選択] フィールドで、フル トレーニング用データのインポート元のデータセットまたはフォルダーを選択します。このデータセット/フォルダーのすべてのファイルは、data_directory 変数に格納されているパスで、パイプラインの実行中にローカルで使用できる必要があります。
  • (任意) [評価データセットを選択] フィールドで、評価用データのインポート元のデータセットまたはフォルダーを選択します。このデータセット/フォルダーのすべてのファイルは、test_data_directory 変数に格納されているパスで、パイプラインの実行中にローカルで使用できる必要があります。フォルダーが選択されていない場合、パイプラインは process_data 関数の test_data_directory 変数に何らかのパスを書き込みます。フォルダーを選択せず、さらに process_datatest_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。既定値は falsetrue に設定した場合、パイプライン実行の最後に、training_data_directory フォルダーがパイプラインの出力として training_data_directory ディレクトリにアップロードされます。
    • save_test_data。既定値は falsetrue に設定した場合、パイプライン実行の最後に、test_data_directory フォルダーがパイプラインの出力として test_data_directory ディレクトリにアップロードされます。

評価データセットを選択するかどうかによって、フル パイプラインを以下のように作成できます。

評価データを明示的に選択する

以下のビデオで、新しくトレーニングされたパッケージ バージョン 1.1 でのフル パイプラインの作成方法を確認してください。入力データセットと評価データセットの両方に同じデータセット (この例では、tutorialdataset) を選択してください。



評価データを明示的に選択しない

以下のビデオで、新しくトレーニングされたパッケージ バージョン 1.1 でのフル パイプラインの作成方法を確認してください。入力データセットは選択しますが、評価データセットは未選択のままにします。



フル パイプライン実行の結果

注: パイプラインの実行には時間がかかることがあります。しばらくしてからステータスを確認してください。

パイプラインの実行後、[パイプライン] ページのパイプラインのステータスは [成功] に変わります。[パイプラインの詳細] ページには、パイプラインの実行に関連する任意のファイルとフォルダーが表示されます。

  • train() 関数は、データ フォルダーの未変更のコンテンツ (example1.txtexample2.txt) ではなく、train.csv でトレーニングされます。process_data を使用して、任意のユーザー定義パラメーターに基づいてデータを動的に分割できます。
  • 最初のフル パイプラインは、example1.txtexample2.txt、および test.csv を含むディレクトリで評価を実行します。2 番目のフル パイプラインは、test.csv のみを含むディレクトリで評価を実行します。この違いは、2 番目のフル パイプライン実行の作成時に評価セットを明示的に選択しなかったことによるものです。このようにして、UiPath Robot からの新しいデータの評価を行い、プロジェクトに既に存在するデータを動的に分割することができます。
  • 各コンポーネントは、パイプラインの一部として任意の成果物を作成できます (ヒストグラム、TensorBoard ログ、分布プロットなど)。
  • ML パッケージの zip ファイルは、トレーニング パイプラインで自動的に生成される新しいバージョンのパッケージです。
  • 成果物フォルダーはパイプラインで生成されたすべての成果物を再グループ化するフォルダーで、artifacts_directory フォルダーに保存され、空でない場合にのみ表示されます。
  • トレーニング フォルダーは training_data_directory フォルダーのコピーであり、save_training_datatrue に設定されている場合にのみ表示されます。
  • テスト フォルダーは test_data_directory フォルダーのコピーであり、save_training_datatrue に設定されている場合にのみ表示されます。

独自のフル パイプラインを構築するための概念的な類似性

ここでは、いくつかのパッケージでの類似の概念に基づくフル パイプラインの実行、すなわちバージョン 1.0 でのトレーニング パイプラインをバージョン 1.1 に出力する方法を説明します。

重要: これは簡略化された例であり、データセットとパッケージがフル パイプラインでどのように対話するかを示しています。これらの手順は概念を示しているに過ぎず、プラットフォームがどのように動作するかを表しているわけではありません。
  1. パッケージ バージョン 1.1 を ~/mlpackage にコピーします。
  2. ./dataset というディレクトリを作成します。
  3. 入力データセットのコンテンツを ./dataset にコピーします。
  4. ユーザーが [評価データセットを選択] フィールドに何かを設定した場合は、その評価データセットをコピーして ./dataset/test に保存します。
  5. 環境変数 training_data_directory=./dataset/trainingtest_data_directory=./dataset/test を設定します。
  6. 以下の 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'])
  7. ~/mlpackage のコンテンツをパッケージ バージョン 1.2 として保持します。成果物が作成されている場合は保持し、save_datatrue に設定されている場合はデータをスナップショットに保存します。
    注: 環境変数 training_data_directorytest_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 が設定されている場合、他の種類のパイプラインと同様に、トレーニングおよび評価データをスナップショットに保存できます。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.