Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 # 1. チュートリアル - Foundryで機械学習プロジェクトを設定する このチュートリアルのステップでは、Foundryで機械学習プロジェクトを作成します。このステップは必須であり、以下の内容をカバーします: 1. [Foundryプロジェクトを機械学習用に構造化する方法](#11-how-to-structure-a-foundry-project-for-machine-learning) 2. [機械学習のためのデータを管理する方法](#12-how-to-manage-data-for-machine-learning) 3. [Foundryで機械学習モデルを管理する方法](#13-how-to-manage-machine-learning-models) 4. [Foundryで機械学習プロジェクトを管理する方法](#14-how-to-manage-machine-learning-projects) ## 1.1 Foundryプロジェクトを機械学習用に構造化する方法 Foundryプロジェクトは、関連する作業を保存するためのフォルダ構造です。各機械学習プロジェクトに個別のFoundryプロジェクトを持つことをお勧めします。このプロジェクトには以下のものが含まれている必要があります: * このプロジェクトで使用されるデータセットを保存するための `data` フォルダ、 * このプロジェクトのモデルを保存するための `models` フォルダ、 * このプロジェクトで使用されるモデルのトレーニングロジックを保存するための `code` フォルダ、 * 本番モデルを管理およびデプロイするためのモデリングオブジェクティブ。 新しいプロジェクトを作成する権限がない場合は、既存のプロジェクトに新しいフォルダを作成して、機械学習プロジェクトのルートディレクトリとして機能させることができます。 **アクション:** このチュートリアルのために[新しいFoundryプロジェクトを作成](../projects/create.md)し、上記のフォルダを作成します - [方法を見る](../projects/create.md)。新しいFoundryプロジェクトを作成できない場合は、既存のプロジェクトに空のフォルダを作成して、新しいプロジェクトのルートを模倣します。 **アクション:** Foundryプロジェクトで、**+新規 > モデリングオブジェクティブ** を選択します。モデリングオブジェクティブは、解決しようとしている機械学習問題の名前に関連して命名する必要があります。この場合、オブジェクティブの名前を「House Price Prediction Objective」とします。 ![新しいモデリングオブジェクティブの作成例](../../foundry-docs/model-integration/media/tutorial_create_new_modeling_objective.png) ### 完成したプロジェクト構造 ![モデリングプロジェクト構造の例](../../foundry-docs/model-integration/media/tutorial_completed_project_structure.png) ## 1.2 機械学習のためのデータを管理する方法 このチュートリアルでは、アメリカの国勢調査地区の中央値の住宅価格を推定する機械学習モデルを構築します。 フィーチャーデータ(アメリカの国勢調査地区に関する過去の詳細)とラベル(その時点でのその国勢調査地区の中央値の住宅価格)を使用して、フィーチャーとラベルの関係を明らかにし、その関係をFoundryで再利用可能なモデルとして保存します。将来、最新のフィーチャーデータ(アメリカの国勢調査地区に関する詳細)があるが、最新のラベル(中央値の住宅価格)がない場合、国勢調査地区のフィーチャーデータにモデルを適用して、その国勢調査地区の住宅価格の推定値を見つけることができます。このタイプの機械学習プロジェクトは、教師あり機械学習と呼ばれ、最も一般的な機械学習プロジェクトのタイプです。 Foundryでは、教師あり機械学習プロジェクトには2つのデータセットが必要です: 1. モデルのトレーニングとテストに使用できる**ラベル付きデータセット**、 2. 最新のフィーチャーを含むがラベルがない**ラベルなしデータセット**。このデータセットにモデルを適用して、ラベルの推定(予測)を生成します。 これらのデータセットは、多くの場合、[本番ソースへのデータ接続](../data-connection/overview.md)や[オントロジー](../ontology/overview.md)から来ます。しかし、このチュートリアルでは、これらの本番ソースをシミュレートするためにCSVファイルをアップロードします。 **アクション:** [ラベル付きアメリカ住宅データソース](../../foundry-docs/model-integration/media/housing_features_and_labels.csv)をダウンロードし、`data` フォルダに `housing_features_and_labels` としてアップロードします。[ラベルなしアメリカ国勢調査データソース](../../foundry-docs/model-integration/media/housing_inference_data.csv)をダウンロードし、`data` フォルダに `housing_inference_data` としてアップロードします。CSVファイルをFoundryにアップロードするには、フォルダ構造にドラッグアンドドロップします - このチュートリアルでは、構造化データセットとしてアップロードします。 ### 完成したデータフォルダ ![モデリングプロジェクトデータフォルダの例](../../foundry-docs/model-integration/media/tutorial_completed_data_folder.png) ## 1.3 機械学習モデルを管理する方法 Foundryでトレーニングされたモデルは、それらをトレーニングするために使用されたデータ、コード、および開発環境にリンクされています。これは、すべてのモデルがどのように生成されたかの管理された記録を提供し、過去の実験の詳細を記録および共有するのに役立ちます。 機械学習モデルは、FoundryのCode Repositoriesアプリケーションでトレーニングできます。 ### Code Repositories Code Repositoriesアプリケーションは、データパイプラインや機械学習ロジックを作成するためのWebベースの開発環境です。Foundryには、`Model Training` テンプレートと呼ばれる機械学習用のテンプレートリポジトリが提供されています。 Code Repositoriesはローカルコードの反復作業のためにGitをサポートしていますが、Foundry内でビルドを実行するためにはコミットされたコードが必要です。Code Repositoriesアプリケーションは、本番グレードのデータパイプラインや機械学習ロジックを作成するのに最適です。 ### 既存のモデルを統合する 既に使用したいモデルがある場合は、次の方法で既存のモデルを統合できます: * [コンテナイメージをモデルとしてアップロード](../integrate-models/container-overview.md) * [外部ホストモデルのプロキシとしてモデルを作成](../integrate-models/external-model-connection.md) Foundryは、モデリングオブジェクティブアプリケーションを通じてインポートできるいくつかの[オープンソースの言語モデル](../integrate-models/language-models-import.md)も提供しています。 **このチュートリアルのこのステップには必須のアクションはありません。** ## 1.4 機械学習プロジェクトを管理する方法 Foundryでは、機械学習プロジェクトはモデリングオブジェクティブアプリケーションで管理されます。モデリングオブジェクティブは、次の方法で機械学習プロジェクトの管理にベストプラクティスを提案します: * 特定の問題に焦点を当てた機械学習プロジェクトを指向する * システマティックなモデル評価の標準を作成する * 本番使用前にモデルの多方面レビューを可能にする * 本番で使用されたすべてのモデルの履歴記録を維持する * バッチパイプラインやリアルタイムホスト推論にモデル開発を統合する このチュートリアルでは、モデリングオブジェクティブは国勢調査地区の中央値の住宅価格を予測することです。 **アクション:** 以前に作成した "House Price Prediction Objective" モデリングオブジェクティブに移動します。モデリングオブジェクティブのヘッダー部分にプロジェクトのコンテキストを追加して、他のチームに問題を説明します。右側のペンアイコンを選択して編集モードに入り、オブジェクティブの要約と説明を追加します。説明フィールドはMarkdownをサポートしています。推奨される内容の例は以下の通りです:

目標: アメリカ全州の中央値の住宅価格を予測するモデルを構築する。

データ

このデータセットは、1990年の米国国勢調査のカリフォルニア州の回答に基づいており、国勢調査ブロックグループごとに1行を使用しています。ブロックグループは、米国国勢調査局がサンプルデータを公開する最小の地理単位であり(通常、ブロックグループの人口は600〜3,000人です)。

対象変数は、カリフォルニア州の地区のmedian_house_valueです。

参考文献

Pace, R. Kelley, and Ronald Barry, "Sparse Spatial Autoregressions," Statistics and Probability Letters, Volume 33, Number 3, May 5 1997, p. 291-297.

データはStatLibリポジトリから取得されました。http://lib.stat.cmu.edu/datasets/


![オブジェクティブ詳細の編集](../../foundry-docs/model-integration/media/tutorial_add_modeling_objective_context.gif)

## 次のステップ

機械学習プロジェクトの構造を整えたので、次はモデルのトレーニングに進みます。このチュートリアルでは、次のステップは[モデルをJupyter®ノートブックでトレーニングする](./tutorial-train-jupyter-notebook.md)か、[Code Repositoriesでモデルをトレーニングする](./tutorial-train-code-repositories.md)のどちらかです。Jupyter®ノートブックは迅速かつ反復的なモデル開発に推奨されますが、Code Repositoriesは本番グレードのデータおよびモデルパイプラインに推奨されます。