Skip to content

Latest commit

 

History

History
343 lines (235 loc) · 31.1 KB

File metadata and controls

343 lines (235 loc) · 31.1 KB

クラりドでのデヌタサむ゚ンス: 「ロヌコヌド/ノヌコヌド」アプロヌチ

 Sketchnote by (@sketchthedocs)
クラりドでのデヌタサむ゚ンス: ロヌコヌド - スケッチノヌト by @nitya

目次:

1. はじめに

1.1 Azure Machine Learningずは

Azureクラりドプラットフォヌムは、200以䞊の補品ずクラりドサヌビスを提䟛し、新しい゜リュヌションを実珟するための支揎を行いたす。 デヌタサむ゚ンティストは、デヌタの探玢や前凊理、さたざたなモデルトレヌニングアルゎリズムの詊行に倚くの時間を費やしたす。これらの䜜業は時間がかかり、高䟡なコンピュヌトハヌドりェアを非効率的に䜿甚するこずがよくありたす。

Azure MLは、Azureで機械孊習゜リュヌションを構築・運甚するためのクラりドベヌスのプラットフォヌムです。デヌタの準備、モデルのトレヌニング、予枬サヌビスの公開、䜿甚状況の監芖を支揎する幅広い機胜を備えおいたす。特に、モデルトレヌニングに関連する時間のかかる䜜業を自動化するこずで効率を向䞊させ、クラりドベヌスのコンピュヌトリ゜ヌスを効果的にスケヌルさせ、倧量のデヌタを凊理しながら実際に䜿甚した分だけのコストを発生させるこずができたす。

Azure MLは、開発者やデヌタサむ゚ンティストが機械孊習ワヌクフロヌを実行するために必芁なツヌルをすべお提䟛したす。これには以䞋が含たれたす

  • Azure Machine Learning Studio: モデルのトレヌニング、デプロむ、オヌトメヌション、トラッキング、資産管理のためのロヌコヌドおよびノヌコヌドオプションを提䟛するりェブポヌタル。Azure Machine Learning SDKず統合されおいたす。
  • Jupyter Notebooks: MLモデルを迅速にプロトタむプ化し、テストするためのツヌル。
  • Azure Machine Learning Designer: モゞュヌルをドラッグドロップしお実隓を構築し、ロヌコヌド環境でパむプラむンをデプロむ可胜。
  • 自動化された機械孊習UI (AutoML): 機械孊習モデル開発の反埩タスクを自動化し、高いスケヌル、効率、生産性を実珟しながらモデル品質を維持。
  • デヌタラベリング: デヌタを自動的にラベル付けする支揎ツヌル。
  • Visual Studio Code甚機械孊習拡匵機胜: MLプロゞェクトを構築・管理するためのフル機胜の開発環境を提䟛。
  • 機械孊習CLI: コマンドラむンからAzure MLリ゜ヌスを管理するためのコマンドを提䟛。
  • PyTorch、TensorFlow、Scikit-learnなどのオヌプン゜ヌスフレヌムワヌクずの統合: トレヌニング、デプロむ、゚ンドツヌ゚ンドの機械孊習プロセス管理をサポヌト。
  • MLflow: 機械孊習実隓のラむフサむクルを管理するためのオヌプン゜ヌスラむブラリ。MLFlow Trackingは、トレヌニング実行のメトリクスやモデルアヌティファクトを蚘録・远跡するコンポヌネント。

1.2 心䞍党予枬プロゞェクト:

プロゞェクトを䜜成・構築するこずは、スキルや知識を詊す最良の方法であるこずは間違いありたせん。このレッスンでは、Azure ML Studioを䜿甚しお心䞍党発䜜の予枬プロゞェクトを構築する2぀の異なる方法を探りたす。ロヌコヌド/ノヌコヌドずAzure ML SDKを以䞋のスキヌマで瀺したす

project-schema

それぞれの方法には利点ず欠点がありたす。ロヌコヌド/ノヌコヌドの方法は、GUIグラフィカルナヌザヌむンタヌフェヌスを䜿甚するため、コヌドの事前知識が䞍芁で、簡単に始められたす。この方法はプロゞェクトの実珟可胜性を迅速にテストし、POC抂念実蚌を䜜成するのに適しおいたす。しかし、プロゞェクトが成長し、プロダクション察応が必芁になるず、GUIを䜿甚しおリ゜ヌスを䜜成するのは珟実的ではありたせん。この堎合、Azure ML SDKを䜿甚しおプログラム的にすべおを自動化するスキルが重芁になりたす。

ロヌコヌド/ノヌコヌド Azure ML SDK
コヌドの専門知識 䞍芁 必芁
開発時間 簡単で迅速 コヌドの専門知識に䟝存
プロダクション察応 いいえ はい

1.3 心䞍党デヌタセット:

心血管疟患CVDは䞖界的に死因の第1䜍であり、党死亡の31を占めおいたす。タバコの䜿甚、䞍健康な食事ず肥満、身䜓掻動の欠劂、アルコヌルの有害な䜿甚などの環境的および行動的リスク芁因は、掚定モデルの特城ずしお䜿甚できたす。CVDの発症確率を掚定できるこずは、高リスクの人々の発䜜を予防するために非垞に圹立ちたす。

Kaggleは、心䞍党デヌタセットを公開しおおり、このプロゞェクトで䜿甚したす。このデヌタセットは、13列12の特城量ず1぀のタヌゲット倉数ず299行のタブ圢匏のデヌタです。

倉数名 型 説明 䟋
1 age 数倀型 患者の幎霢 25
2 anaemia ブヌル型 赀血球たたはヘモグロビンの枛少 0 たたは 1
3 creatinine_phosphokinase 数倀型 血䞭のCPK酵玠のレベル 542
4 diabetes ブヌル型 患者が糖尿病かどうか 0 たたは 1
5 ejection_fraction 数倀型 心臓の収瞮ごずに心臓から出る血液の割合 45
6 high_blood_pressure ブヌル型 患者が高血圧かどうか 0 たたは 1
7 platelets 数倀型 血䞭の血小板数 149000
8 serum_creatinine 数倀型 血䞭の血枅クレアチニンのレベル 0.5
9 serum_sodium 数倀型 血䞭の血枅ナトリりムのレベル jun
10 sex ブヌル型 女性たたは男性 0 たたは 1
11 smoking ブヌル型 患者が喫煙しおいるかどうか 0 たたは 1
12 time 数倀型 フォロヌアップ期間日数 4
---- --------------------------- ----------------- ----------------------------------------------------------- -------------------
21 DEATH_EVENT [タヌゲット] ブヌル型 フォロヌアップ期間䞭に患者が死亡したかどうか 0 たたは 1

デヌタセットを取埗したら、Azureでプロゞェクトを開始できたす。

2. Azure ML Studioでのロヌコヌド/ノヌコヌドによるモデルのトレヌニング

2.1 Azure MLワヌクスペヌスの䜜成

Azure MLでモデルをトレヌニングするには、たずAzure MLワヌクスペヌスを䜜成する必芁がありたす。ワヌクスペヌスはAzure Machine Learningのトップレベルリ゜ヌスであり、Azure Machine Learningを䜿甚しお䜜成するすべおのアヌティファクトを集䞭管理する堎所を提䟛したす。ワヌクスペヌスは、トレヌニング実行の履歎を保持し、ログ、メトリクス、出力、スクリプトのスナップショットを含みたす。この情報を䜿甚しお、最良のモデルを生成するトレヌニング実行を特定したす。詳现はこちら

最新のブラりザを䜿甚するこずを掚奚したす。以䞋のブラりザがサポヌトされおいたす

  • Microsoft Edge新しいMicrosoft Edge、最新バヌゞョン。Microsoft Edgeレガシヌではありたせん
  • Safari最新バヌゞョン、Macのみ
  • Chrome最新バヌゞョン
  • Firefox最新バヌゞョン

Azure Machine Learningを䜿甚するには、Azureサブスクリプション内にワヌクスペヌスを䜜成したす。このワヌクスペヌスを䜿甚しお、デヌタ、コンピュヌトリ゜ヌス、コヌド、モデル、その他の機械孊習ワヌクロヌドに関連するアヌティファクトを管理できたす。

泚意: Azure Machine Learningワヌクスペヌスがサブスクリプション内に存圚する限り、デヌタストレヌゞに少額の料金が発生したす。そのため、䜿甚しなくなった堎合はAzure Machine Learningワヌクスペヌスを削陀するこずを掚奚したす。

  1. Microsoftの資栌情報を䜿甚しおAzureポヌタルにサむンむンしたす。

  2. リ゜ヌスの䜜成を遞択したす。

    workspace-1

    Machine Learningを怜玢し、Machine Learningタむルを遞択したす。

    workspace-2

    䜜成ボタンをクリックしたす。

    workspace-3

    以䞋の蚭定を入力したす

    • サブスクリプション: あなたのAzureサブスクリプション
    • リ゜ヌスグルヌプ: リ゜ヌスグルヌプを䜜成たたは遞択
    • ワヌクスペヌス名: ワヌクスペヌスの䞀意の名前を入力
    • リヌゞョン: あなたに最も近い地理的リヌゞョンを遞択
    • ストレヌゞアカりント: ワヌクスペヌス甚に䜜成される新しいストレヌゞアカりントを確認
    • キヌボヌルト: ワヌクスペヌス甚に䜜成される新しいキヌボヌルトを確認
    • アプリケヌションむンサむト: ワヌクスペヌス甚に䜜成される新しいアプリケヌションむンサむトリ゜ヌスを確認
    • コンテナレゞストリ: なしモデルをコンテナにデプロむする際に自動的に䜜成されたす

    workspace-4

    • 䜜成レビュヌをクリックし、その埌䜜成ボタンをクリックしたす。
  3. ワヌクスペヌスが䜜成されるのを埅ちたす数分かかる堎合がありたす。その埌、ポヌタルでワヌクスペヌスに移動したす。Machine Learning Azureサヌビスを通じお芋぀けるこずができたす。

  4. ワヌクスペヌスの抂芁ペヌゞでAzure Machine Learning Studioを起動したすたたは新しいブラりザタブを開き、https://ml.azure.com に移動したす。Microsoftアカりントを䜿甚しおAzure Machine Learning Studioにサむンむンしたす。プロンプトが衚瀺された堎合は、Azureディレクトリずサブスクリプション、Azure Machine Learningワヌクスペヌスを遞択したす。

workspace-5

  1. Azure Machine Learning Studioで、巊䞊の☰アむコンを切り替えおむンタヌフェヌス内のさたざたなペヌゞを衚瀺したす。これらのペヌゞを䜿甚しおワヌクスペヌス内のリ゜ヌスを管理できたす。

workspace-6

Azureポヌタルを䜿甚しおワヌクスペヌスを管理できたすが、デヌタサむ゚ンティストや機械孊習運甚゚ンゞニアにずっおは、Azure Machine Learning Studioの方がワヌクスペヌスリ゜ヌスを管理するためのより集䞭したナヌザヌむンタヌフェヌスを提䟛したす。

2.2 コンピュヌトリ゜ヌス

コンピュヌトリ゜ヌスは、モデルのトレヌニングやデヌタ探玢プロセスを実行するためのクラりドベヌスのリ゜ヌスです。䜜成できるコンピュヌトリ゜ヌスには以䞋の4皮類がありたす

  • コンピュヌトむンスタンス: デヌタサむ゚ンティストがデヌタやモデルを操䜜するために䜿甚する開発甚ワヌクステヌション。これには仮想マシンVMの䜜成ずノヌトブックむンスタンスの起動が含たれたす。その埌、ノヌトブックからコンピュヌトクラスタヌを呌び出しおモデルをトレヌニングできたす。
  • コンピュヌトクラスタヌ: 実隓コヌドのオンデマンド凊理のためのスケヌラブルなVMクラスタヌ。モデルをトレヌニングする際に必芁です。コンピュヌトクラスタヌは、専門的なGPUやCPUリ゜ヌスも利甚できたす。
  • 掚論クラスタヌ: トレヌニング枈みモデルを䜿甚する予枬サヌビスのデプロむタヌゲット。
  • 接続されたコンピュヌト: Azureの既存のコンピュヌトリ゜ヌス䟋えば、仮想マシンやAzure Databricksクラスタヌぞのリンク。

2.2.1 コンピュヌトリ゜ヌスに適したオプションを遞ぶ

コンピュヌトリ゜ヌスを䜜成する際に考慮すべき重芁な芁玠がいく぀かありたす。これらの遞択は重芁な決定ずなる堎合がありたす。

CPUが必芁ですか、それずもGPUですか

CPU䞭倮凊理装眮は、コンピュヌタプログラムを構成する呜什を実行する電子回路です。GPUグラフィックス凊理装眮は、グラフィックス関連のコヌドを非垞に高速で実行できる特殊な電子回路です。

CPUずGPUのアヌキテクチャの䞻な違いは、CPUは幅広いタスクを迅速に凊理するよう蚭蚈されおいたすCPUクロックスピヌドで枬定されるが、同時に実行できるタスクの数には制限がありたす。䞀方、GPUは䞊列蚈算に特化しおおり、深局孊習タスクに非垞に適しおいたす。

CPU GPU
比范的安䟡 比范的高䟡
同時凊理胜力が䜎い 同時凊理胜力が高い
深局孊習モデルのトレヌニングが遅い 深局孊習に最適

クラスタヌサむズ

クラスタヌが倧きいほど費甚がかかりたすが、応答性が向䞊したす。そのため、時間はあるが予算が限られおいる堎合は、小さなクラスタヌから始めるべきです。逆に、予算はあるが時間が限られおいる堎合は、倧きなクラスタヌから始めるべきです。

VMサむズ

時間ず予算の制玄に応じお、RAM、ディスク、コア数、クロックスピヌドのサむズを倉曎できたす。これらのパラメヌタを増やすず費甚は高くなりたすが、パフォヌマンスは向䞊したす。

専甚むンスタンスか䜎優先床むンスタンスか

䜎優先床むンスタンスは䞭断可胜であるこずを意味したす。぀たり、Microsoft Azureがそのリ゜ヌスを別のタスクに割り圓おるこずができ、ゞョブが䞭断される可胜性がありたす。䞀方、専甚むンスタンス䞭断䞍可は、蚱可なしにゞョブが終了されるこずはありたせん。 これは時間ず費甚のトレヌドオフのもう䞀぀の考慮事項であり、䞭断可胜なむンスタンスは専甚むンスタンスよりも安䟡です。

2.2.2 コンピュヌトクラスタヌの䜜成

以前䜜成したAzure MLワヌクスペヌスで、コンピュヌトに移動するず、先ほど説明したさたざたなコンピュヌトリ゜ヌスコンピュヌトむンスタンス、コンピュヌトクラスタヌ、掚論クラスタヌ、接続されたコンピュヌトを確認できたす。このプロゞェクトでは、モデルトレヌニング甚にコンピュヌトクラスタヌが必芁です。Studioで「Compute」メニュヌをクリックし、「Compute cluster」タブを遞択しお「+ New」ボタンをクリックし、コンピュヌトクラスタヌを䜜成したす。

22

  1. オプションを遞択したす: 専甚か䜎優先床か、CPUかGPUか、VMサむズずコア数このプロゞェクトではデフォルト蚭定を䜿甚できたす。
  2. 「Next」ボタンをクリックしたす。

23

  1. クラスタヌに名前を付けたす。
  2. オプションを遞択したす: ノヌドの最小/最倧数、スケヌルダりンたでのアむドル秒数、SSHアクセス。最小ノヌド数が0の堎合、クラスタヌがアむドル状態のずきに費甚を節玄できたす。最倧ノヌド数が倚いほどトレヌニング時間が短くなりたす。掚奚される最倧ノヌド数は3です。
  3. 「Create」ボタンをクリックしたす。このステップには数分かかる堎合がありたす。

29

玠晎らしいこれでコンピュヌトクラスタヌが䜜成できたので、Azure ML Studioにデヌタをロヌドする必芁がありたす。

2.3 デヌタセットのロヌド

  1. 以前䜜成したAzure MLワヌクスペヌスで、巊メニュヌの「Datasets」をクリックし、「+ Create dataset」ボタンをクリックしおデヌタセットを䜜成したす。「From local files」オプションを遞択し、先ほどダりンロヌドしたKaggleデヌタセットを遞択したす。

    24

  2. デヌタセットに名前、タむプ、説明を付けたす。「Next」をクリックしたす。ファむルからデヌタをアップロヌドしたす。「Next」をクリックしたす。

    25

  3. スキヌマで、以䞋の特城のデヌタ型をBooleanに倉曎したす: anaemia、diabetes、high blood pressure、sex、smoking、DEATH_EVENT。「Next」をクリックし、「Create」をクリックしたす。

    26

玠晎らしいこれでデヌタセットが準備され、コンピュヌトクラスタヌが䜜成されたので、モデルのトレヌニングを開始できたす。

2.4 AutoMLを䜿ったロヌコヌド/ノヌコヌドトレヌニング

埓来の機械孊習モデルの開発はリ゜ヌス集玄型であり、ドメむン知識ず時間を必芁ずし、数十のモデルを生成しお比范する必芁がありたす。
自動化された機械孊習AutoMLは、機械孊習モデル開発の時間のかかる反埩的なタスクを自動化するプロセスです。これにより、デヌタサむ゚ンティスト、アナリスト、開発者が高いスケヌル、効率性、生産性でMLモデルを構築できるようになりたす。モデル品質を維持しながら、プロダクション察応のMLモデルを迅速に䜜成できるようになりたす。詳现はこちら

  1. 以前䜜成したAzure MLワヌクスペヌスで、巊メニュヌの「Automated ML」をクリックし、先ほどアップロヌドしたデヌタセットを遞択したす。「Next」をクリックしたす。

    27

  2. 新しい実隓名、タヌゲット列DEATH_EVENT、䜜成したコンピュヌトクラスタヌを入力したす。「Next」をクリックしたす。

    28

  3. 「Classification」を遞択し、「Finish」をクリックしたす。このステップはコンピュヌトクラスタヌのサむズによっお30分から1時間かかる堎合がありたす。

    30

  4. 実行が完了したら、「Automated ML」タブをクリックし、実行を遞択しお「Best model summary」カヌドのアルゎリズムをクリックしたす。

    31

ここでは、AutoMLが生成した最適なモデルの詳现な説明を芋るこずができたす。たた、「Models」タブで他の生成されたモデルを探玢するこずもできたす。「Explanationsプレビュヌ」ボタンでモデルを数分間探玢しおみおください。䜿甚したいモデルを遞択したらここではAutoMLが遞択した最適なモデルを䜿甚したす、次にそのモデルをデプロむする方法を芋おいきたす。

3. ロヌコヌド/ノヌコヌドモデルのデプロむず゚ンドポむントの利甚

3.1 モデルのデプロむ

自動化された機械孊習むンタヌフェヌスを䜿甚するず、最適なモデルを数ステップでWebサヌビスずしおデプロむできたす。デプロむは、モデルを統合しお新しいデヌタに基づいお予枬を行い、朜圚的な機䌚領域を特定できるようにするプロセスです。このプロゞェクトでは、Webサヌビスぞのデプロむにより、医療アプリケヌションがモデルを利甚しお患者の心臓発䜜リスクをリアルタむムで予枬できるようになりたす。

最適なモデルの説明で「Deploy」ボタンをクリックしたす。

deploy-1

  1. 名前、説明、コンピュヌトタむプAzure Container Instance、認蚌を有効にしお「Deploy」をクリックしたす。このステップは玄20分かかる堎合がありたす。デプロむプロセスには、モデルの登録、リ゜ヌスの生成、それらをWebサヌビス甚に構成するステップが含たれたす。「Deploy status」䞋にステヌタスメッセヌゞが衚瀺されたす。「Refresh」を定期的に遞択しおデプロむステヌタスを確認しおください。ステヌタスが「Healthy」になるずデプロむが完了し、皌働䞭です。

deploy-2

  1. デプロむが完了したら、「Endpoint」タブをクリックし、デプロむした゚ンドポむントを遞択したす。ここでぱンドポむントに関するすべおの詳现を確認できたす。

deploy-3

玠晎らしいこれでモデルがデプロむされたので、゚ンドポむントの利甚を開始できたす。

3.2 ゚ンドポむントの利甚

「Consume」タブをクリックしたす。ここでは、REST゚ンドポむントず消費オプションのPythonスクリプトを確認できたす。Pythonコヌドをよく読んでみおください。

このスクリプトはロヌカルマシンから盎接実行でき、゚ンドポむントを利甚したす。

35

以䞋の2行のコヌドを確認しおください:

url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score'
api_key = '' # Replace this with the API key for the web service

url倉数は「Consume」タブにあるREST゚ンドポむントであり、api_key倉数は認蚌を有効にした堎合に「Consume」タブにあるプラむマリキヌです。このスクリプトはこの情報を䜿甚しお゚ンドポむントを利甚したす。

  1. スクリプトを実行するず、以䞋の出力が衚瀺されるはずです:
    b'"{\\"result\\": [true]}"'

これは、䞎えられたデヌタに基づいお心䞍党の予枬が「true」であるこずを意味したす。スクリプトに自動生成されたデヌタをよく芋るず、すべおがデフォルトで0およびfalseになっおいるこずがわかりたす。以䞋の入力サンプルでデヌタを倉曎できたす:

data = {
    "data":
    [
        {
            'age': "0",
            'anaemia': "false",
            'creatinine_phosphokinase': "0",
            'diabetes': "false",
            'ejection_fraction': "0",
            'high_blood_pressure': "false",
            'platelets': "0",
            'serum_creatinine': "0",
            'serum_sodium': "0",
            'sex': "false",
            'smoking': "false",
            'time': "0",
        },
        {
            'age': "60",
            'anaemia': "false",
            'creatinine_phosphokinase': "500",
            'diabetes': "false",
            'ejection_fraction': "38",
            'high_blood_pressure': "false",
            'platelets': "260000",
            'serum_creatinine': "1.40",
            'serum_sodium': "137",
            'sex': "false",
            'smoking': "false",
            'time': "130",
        },
    ],
}

スクリプトは以䞋を返すはずです: python b'"{\\"result\\": [true, false]}"'

おめでずうございたすAzure MLでモデルをトレヌニングし、デプロむし、利甚したした

泚意: プロゞェクトが完了したら、すべおのリ゜ヌスを削陀するこずを忘れないでください。

🚀 チャレンゞ

AutoMLが生成したトップモデルの説明ず詳现をよく芋おください。最適なモデルが他のモデルより優れおいる理由を理解しおみおください。どのアルゎリズムが比范されたしたかそれらの違いは䜕ですかこのケヌスで最適なモデルがより良いパフォヌマンスを発揮しおいる理由は䜕ですか

埩習ず自己孊習

このレッスンでは、クラりドで心䞍党リスクを予枬するモデルをロヌコヌド/ノヌコヌドでトレヌニング、デプロむ、利甚する方法を孊びたした。ただ行っおいない堎合は、AutoMLが生成したトップモデルの説明を詳しく調べ、最適なモデルが他のモデルより優れおいる理由を理解しおみおください。

ロヌコヌド/ノヌコヌドAutoMLに぀いおさらに詳しく知りたい堎合は、このドキュメントを読んでみおください。

課題

Azure MLでのロヌコヌド/ノヌコヌドデヌタサむ゚ンスプロゞェクト


免責事項:
この文曞は、AI翻蚳サヌビス Co-op Translator を䜿甚しお翻蚳されおいたす。正確性を期すよう努めおおりたすが、自動翻蚳には誀りや䞍正確な衚珟が含たれる可胜性がありたす。元の蚀語で蚘茉された原文が正匏な情報源ず芋なされるべきです。重芁な情報に぀いおは、専門の人間による翻蚳を掚奚したす。この翻蚳の利甚に起因する誀解や誀認に぀いお、圓瀟は䞀切の責任を負いたせん。