こんにちは!神戸デジタル・ラボ、DI(DataIntelligence)チームの垣内です。
機械学習やデータ分析など、データサイエンスに取り組む方は必ずと言っていいほどお世話になるJupyter Notebook。対話型インターフェイスの使いやすさは勿論、簡単にソースコードが共有できるという特徴があります。
チームメンバーにJupyter Notebookの好きな点を聞いてみたところ、以下のような意見が出てきました。
Notebook内に図を貼ることができる
コメントが書きやすいので実験の説明がしやすい
呼び出した変数をRAMに保ったまま作業ができる
今回は、便利なJupyter Notebookをコンペや技術検証、業務で利用できるように情報を集約しようと思います。
AWSやGCPなど、同じくJupyter Notebookが使えるサービスはありますが、弊社ではMicrosoft Azure(以下 Azure)を利用する機会が多いので「Azure Machine Learning」を用いた環境の作り方をご紹介します。
Azure Machine Learningとは
サービス概要
Azure Machine Learningはブラウザ上で機械学習のモデル構築から再学習といったMLOpsが実現できるサービスです。Azureのアカウントさえあればどなたでも利用できます。 また、MLOpsの実現以外にも以下のように様々な特徴があります。
共同でJupyter Notebookを利用できる
Gitで管理できる
機械学習ワークフローを自動化できる
データ、モデル、リソースを追跡し、記録して分析できる
料金プラン
気になるのは価格や料金プラン。 Azure Machine Learningでは利用した時間に応じて料金が発生するようになっています。 利用するAzure仮想マシン(インスタンス)ごとに一時間当たりの利用料金が変わってきます。
価格 - Azure Machine Learning | Microsoft Azure
簡易な技術検証をしたい場合は、ミニマムの機能・料金の仮想マシンから始めていくと良いと思います。
実務やコンペなどでモデルを作成する場合はCPUを用いるのか?GPUを用いるのか?メモリは何GiBが必要なのか?といった、要件を洗い出した後に最適な仮想マシンを選択しましょう。
VM サイズ - Azure Virtual Machines | Microsoft Learn より
いざ環境構築!
Step1)Azure Machine Learningをみつける
Azureポータルから「Machine Learning」と検索しましょう。 すると下の画像のように複数のサービスが候補に出てきます。一番下の「機械学習」がAzure Machine Learningになるので、クリックします。
※「(classic)」は似たサービスです。2024年でサービス提供を終了すると発表されています。。
Step2)ワークスペースを新規作成する
Azure Machine Learningを始めるには「ワークスペース」の準備が必要です。 いわゆる作業場を作るステップにあたります。オレンジで囲っている「新規作成」というボタンをクリックします。 すると「Machine Learning ワークスペースを作成する」という画面が表示されますので、必要な項目を入力していきます。
実際操作してみるとわかりますが、ワークスペース名を記入するとストレージアカウント、キーコンテナ、Application Insightsに値が自動入力されます。
自分でも作成できますが、今回はそのまま進めていきます。
ワークスペースの項目の説明
ここからはワークスペースを作成する際に、入力する項目について見ていきます。
サブスクリプション
サブスクリプションとは課金管理・リソース管理を行うための機能です。ここには支払契約・スケール・法的契約など管理に必要な情報がデータとして保持されています。
※日本マイクロソフト株式会社様の公式YouTubeチャンネルでも解説されていますので、併せてご覧ください。*1
リソースグループ
Azureの各種サービスを管理できる論理コンテナです。
リソースグループがある事で、サービス提供で利用している一連のAzureサービス(Webサーバーやデータベースサービス、ファイルストレージなど)を一元管理できるようになります。
ワークスペース名
ここではAzure Machine Learningの作業場所に名前を付けます。
重複しないように命名しましょう。
ストレージ アカウント
ワークスペースの既定のデータストアとして使用されます。
新たにAzure Storage リソースを作成するか、サブスクリプション内の既存のリソースを選択することができます。
キー コンテナー
ワークスペースに必要なシークレットやその他の機密情報を格納するために使用されます。
新しい Azure Key Vault リソースを作成するか、サブスクリプション内の既存のリソースを選択することができます。
コンテナレジストリ
学習やデプロイをする際に、Dockerイメージ作成が必要な場合に作成します
既にサブスクリプション内にコンテナレジストリサービスを使っている場合は、そちらを指定できます。
既存のサービスと統合できる点もとても便利ですね!
これらが設定出来たら、「確認および作成」という青いボタンをクリックください。
設定の確認ができます。問題がなければ「作成」というボタンをクリックして下さい。デプロイが始まるので、完了するまでお待ちください。
デプロイの完了とスタジオの起動
デプロイが完了すると「デプロイが完了しました」と表示されます。「リソースに移動」というボタンをクリックすると、以下の画面が表示されますので「スタジオの起動」をクリックしてください。
最終的に「Welcome to the Azure Machine Learning Studio」という画面が出てきたらワークスペースの作成は完了です!
Step3)Notebookの作成
ワークスペースが作成できたので、早速Notebookを作成していきましょう!!
まず最初に左側のバーにある「Notebooks」をクリックします。
画面が変わるので、「Start with an empty notebook」をクリックしてください。
するとNotebookを作成するためのポップアップが表示されるので必要事項を入力していきます。
①File nameを付けます。
今回は技術調査用なので「tech-research」としました。「.ipynb」はNotebookのファイル拡張子です。
②ファイルの形式を決めます。
デフォルトでNotebookのファイル形式が設定されています。他のファイル形式も選択できますので、必要に応じて変更しても良いでしょう。
この2つの値がセットできたら、「Create」ボタンをクリックしてファイル作成を完了させましょう!
Step4)コンピュータリソースの設定
作成したNotebookを実行するためにはコンピュータリソースの作成が必要です。
これまでの手順ではコンピュータリソースの作成について触れていないので、ここで作成と設定方法を説明していきます。
コンピュータリソースを作成する際は、最初にお話しした通り目的に合わせて最適なコンピュータリソース(仮想マシン)を選択してください。
コンピュータリソースの新規作成
では早速コンピュータリソースを新しく作成していきましょう!まずはオレンジの線で囲んだ+ボタンをクリックください。
すると「Create compute instance」という英語で書かれた画面が右側から表示されるので、設定項目を入力していきます。
まずは「コンピュータインスタンス*2に使用する名前」を付け、「仮想マシンのサイズ選択」をします。
細かい設定はNotebookの利用目的に応じて設定していきましょう。1点、Compute nameは他と重複しない分かりやすい名前を付けてください。
コンピュータインスタンスの注意点
①他のNotebookとコンピュータインスタンスの共有ができません。
・分かりやすい名前を付けます(Notebook名と同じ名前にしておくとよいでしょう)
・用途以上のスペックを準備しないようにする必要があります。
②割り当てられた1人のユーザーのみが使用できます。
・デフォルトでは、コンピュータインスタンスは作成者に割り当てられる仕様になっています。
・詳細設定セクションで別のユーザーに変更することができます。
下にスクロールするとおススメのマシンのスペック・コストなどの情報が出てきます。好きなものを選んでみましょう。
ここまで出来たら、Createボタンを押しましょう!
するとNotebookの画面に戻ります。 右上の「Compute」に作成したコンピュータリソースの名前があれば設定完了です。 コンピュータリソースを止めたい場合はその隣にある赤いストップマークをクリックください。
補足)Next Advanced Settingsの設定
コンピュータインスタンスの設定時に「Next Advanced Settings」というボタンがありました。
ここではSSH アクセスを有効にするかどうか?他のユーザーが代理でコンピュータ・インスタンスを作成できるようにするか?などの上級設定ができます。
「Startup and shutdown schedule」という項目では、コンピュータインスタンスの起動・終了のスケジュールができます。
コンピュータインスタンスは起動時間に応じて料金がかかるので、使っていない時は止めるといった無駄のない設定をする必要があります。
今回は使う予定がないので、スキップしますが実際の業務で使う場合はチェックして見ると良いでしょう。
Step5)Notebookの実行
では動作確認をしていきましょう。
1行目に「print('Hello World')」を入力し、Run Cellボタンを押します。
すると・・・・・・
でました!!Hello World!!無事にNotebookの実行環境が作れましたね!
まとめ!
Azure Machine LearningはAzureアカウントさえあれば誰でも簡単に機械学習ができる環境を整えることができます! 複数のNotebookが作れる点、チームメンバーと共有できる点、簡単にGPUが使えるのでとても便利ですね。 ipynb形式のファイルさえあればノートブックの移行もできます。今回はNotebookにフォーカスしたご紹介でしたが、様々な機能があるので是非お試しください。
データインテリジェンスチーム所属
テキスト活用するプロジェクトを担当。ビジネスを意識したデータ活用を考えるデータアナリスト。初心者向けの情報・テキスト活用について発信していきます!
*1::Microsoft Azure 利用ガイド -5章 サブスクリプション管理 | 日本マイクロソフト - YouTube
*2:コンピュータインスタンス : リソースの中で実際に実験やNotebookで実行する特定のコンピュータリソースのこと