Oracle Cloud Infrastructure Data Science Service 初期セットアップ

本記事では下記ハンズオンセミナーで利用するオラクルの機械学習サービス Data Science Service の初期セットアップについてご紹介します。ご参加いただく方は事前のセットアップをよろしくお願いいたします。

https://oracle-code-tokyo-dev.connpass.com/event/273425/


本ハンズオンセミナーにご登録いただいた皆様には、すでにフリートライアルのご案内が届いていると思いますのでそちらの内容にそってアカウントを作成ください。

# オラクル・クラウドへのログイン

アカウント作成後、オラクルクラウドにログインする際には、下記のようにテナント名を入力後、「Oracle Cloud Infrastructure Direct Sign-Inのほうからログインをお願いいたします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/dd34df1b-f7ab-14bb-5f51-596f56b7a599.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/459e36eb-f23f-2afa-da6d-c654293462b6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/316074eb-f5f2-99b8-65c0-cc6fb86b2374.png)

作成したアカウントでオラクルクラウドにログインすると下記のトップページが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/e1c47133-8d23-4e51-b827-5351ea86d6de.png)

日本語がいいという方は右上の地球儀のマークをクリックして、メニューから日本語を選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/21bd4636-9930-75de-dd05-b27e53c529c9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/1d80cbfd-4e9e-f35f-e483-e1ee03837d6a.png)

下記のように日本語表記になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/d0a3d800-2556-1406-8939-2678363093ea.png)

# コンパートメントの作成


オラクルクラウドには、契約したテナントの中を、複数の環境に分割するためのコンパートメントと呼んでいる機能があります。例えば、2つのコンパートメントを作ると、コンパートメントAはコンパートメントBの設定や性能の影響を受けない全く別の環境となります。このコンパートメントの機能を使って、テナントの中に複数の環境(例えば、開発用にコンパートメントA、本番用にコンパートメントB)を作り、便利に運用してゆくことができます。デフォルトではルートコンパートメントが一つある状態ですので、追加でもう一つコンパートメントを作り、それをハンズオン環境としたいと思います。

トップ画面左上のメニューボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/23381e4d-e5a0-1799-92cf-a287743003e5.png)

ここにオラクルクラウドのすべてのサービスがカテゴリに分けられてリストされており、ここから「アイデンティティとセキュリティ」を選択し、このカテゴリの中から「コンパートメント」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/f2d2cb60-48e6-df15-b143-994f42fa63db.png)

コンパートメントの画面に遷移しますので、そこから「コンパートメントの作成」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/feba922a-2543-68b0-5caf-70478a1b97c9.png)

コンパートメントの作成画面に必要事項を入力し、「コンパートメントの作成」ボタンをクリックします。

- 名前：任意ですが、本ハンズオンセッションではorajamと入れていただけるとよいかと思います。
- 説明：任意ですが、本ハンズオンセッションではorajamと入れていただけるとよいかと思います。
- 親コンパートメント：ルート

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/723d1041-a2cc-63a1-367f-c4b58615c475.png)

これでコンパートメント作成は完了です。作成したコンパートメントがリストにあることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/cf944047-63cd-68d0-a2cb-59863bfe8a7f.png)

# Data Science Serviceのインスタンス作成

作成したコンパートメントに、Data Science Serviceのインスタンスを作成します。Data Science Serviceでは最初にプロジェクトと呼んでいる論理的なエンティティを作成します。これは文字通り、プロジェクト単位でData Science Serviceでの設定を纏めておく器のようなものです。

先ほどと同じように、トップ画面の左上のメニューボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/0e755c34-c199-f5c1-5f39-ab35353932fd.png)

サービスのカテゴリから「アナリティクスとAI」をクリックし、「データ・サイエンス」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/99500043-c521-1524-d7ee-bddf85f3bdc6.png)

下記のようにData Science Serviceのトップ画面に遷移しますので、Data Scienceをプロビジョニングします。プロビジョニング先は作成済のコンパートメント(今回はorajam)です。左側の「コンパートメント」のプルダウン部分をクリックしてください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/6e36ef2e-f21a-321e-a1af-c0224fe1184b.png)

下記のようにプルダウンから作成済のコンパートメントをクリックし、選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/a5a6e8d6-e250-2b9b-1ebe-1a9727cc8db6.png)

コンパートメントが設定できたことを確認し、「プロジェクト作成」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/cbd09da9-729a-e446-c59d-66ae01f8be2e.png)

プロジェクトの作成ウィザードが表示されますので、必要な情報を入力して作成ボタンをクリックします。

- コンパートメント：作成済の任意のコンパートメント(今回の場合はorajam)
- 名前：任意(今回の場合はhandson01)
- 説明：任意

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/8afaf476-d1cb-b6ac-a3bd-6f134dbd6062.png)

次に、作成したプロジェクトの中にノートブック・セッションを作ります。このノートブック・セッションは機械学習開発環境のためのコンピューティングリソースそのものとなります。作成したプロジェクトのトップ画面の「ノートブック・セッションの作成」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/cd764fdd-5da8-9694-b359-cb4e969e6449.png)

必要な情報を入力します。とりあえずは下記の項目だけを入力し、その他の項目はデフォルト値で作成ボタンをクリックします。

- コンパートメント：作成済のコンパートメント(今回の場合orajam)
- 名前：任意の名前(今回の場合dev01)
- コンピュートシェイプ：選択ボタンをクリックし、ウィザード内で、仮想マシン、Intel、VM.Standard3.Flex(8コア、32GBメモリを入力)を選択 (※下記の図では4コア、16GBメモリとなっていますが今回は処理が重いので倍のリソースで実行します。)
- ブロックストレージサイズ：50
- ネットワーキングリソース：デフォルト・ネットワーキング

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/d37cab18-176b-4683-fcf6-f13cc49da898.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/dc0a5006-68a5-a186-4e09-0ae6631f43d1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/ca5cdf5c-0a81-3225-74d2-2e2b0458e83e.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/690ccdeb-56f6-19cf-b1db-61dea602e6ed.png)

作成ボタンを押してから5分くらいでノートブック・セッションが作成されインスタンスが起動し、下記のような画面に遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/0d8cfd0d-192a-0701-166d-9535cd8f3196.png)

作成したノートブックセッションの「開く」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/694c9444-3fbe-0cd0-0d59-cca4b9386eeb.png)

サインインの画面が表示されますのでテナント名を入力し、continueボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/63cd5af4-3ad8-da67-1f48-ed26d196fe6c.png)

次の画面で右下の下矢印のマークをクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/0fb6c7b1-1fc3-b07f-e149-3a6acf46a14e.png)

Oracle Cloud Infrastructure Direct Sign-Inのほうにアカウント名とパスワードを入力しSign-Inボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/0a8ad881-be73-a91f-f615-a98cf4953bde.png)

下記のようにJupyter Notebookのトップ画面が表示されましたらログイン成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/4c1341d6-390a-e365-d905-1ae49853db52.png)






#conda仮想環境の作成

ここまでの作業でPythonの環境はもうできています。このPython環境の中にConda仮想環境を一つ作り、本ハンズオン専用の環境にします。

ノートブックセッションのトップ画面のLauncherのタブを下方向にスクロールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/9058df5b-1586-6604-8505-3d2baa586b25.png)

Terminalのアイコンをクリックし、Terminalの画面に移動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/606c902b-7963-bb99-7fbb-f727d0d78bcc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/3096a183-8e5f-9727-0028-9c35e1ebe4a7.png)

このターミナルで下記コマンドを実行し、このPython環境にconda仮想環境を作成します。このターミナルはCtrl+c、Ctrl+vでコピー、ペーストできますので、下記のコマンドをそのままターミナルにペーストしてコマンドを実行してください。


```shell
仮想環境の作成コマンド
odsc conda install -s mlcpuv1
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/367f7d1f-8863-3430-ae0b-33f5654fa16a.png)

※もし何らかの理由で仮想環境を作り直したいときは下記コマンドでいったん削除してから再作成してください。問題なくConda仮想環境が作成できた場合は下記コマンドは実行しないで次のステップへ進んでください。

```shell
仮想環境の削除コマンド
odsc conda delete -s mlcpuv1
```

作成コマンドの処理が終われば、仮想環境作成完了です。

次に、下記コマンドで作成した、仮想環境mlcpuv1に移動します。移動したあとは、コマンドプロンプトのコマンドラインに常にカレントの仮想環境が表示されますので、今後の作業は間違った環境に設定をしないように、この部分を常に意識しながら設定作業を行います。

```shell
source activate /home/datascience/conda/mlcpuv1
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/89c7ed4d-cf1f-1a4d-a9af-81d6d237302d.png)

この仮想環境に、ハンズオンで利用するライブラリをインストールします。その前にまずは、下記コマンドでpipのアップグレードを行います。

```shell
pip install --upgrade pip
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/48be611b-dda8-c3d5-7a31-ef8bedc68d94.png)

:::note warn
2023年3月1日のハンズオンセミナーではこのセクションの以降の作業は不要ですので、[インスタンスを非アクティブにし、課金を停止](#インスタンスを非アクティブにし課金を停止)に移動し、作業を完了させてください。
:::

続けて、下記3つのライブラリをインストールします。

```shell
pip install dtreeviz

pip install auto-sklearn

pip install pipelineprofiler
```

下記が、dtreevizのインストール時の出力画面です。続けて他2つのライブラリ(auto-sklearn、pipelineprofiler)を上記コマンドでインストールしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/503a04fa-1fff-1159-1412-50e09a0c735a.png)

インストール完了後、再度、Laucherのタブに戻り、Pythonのアイコンをクリックし、「Create Notebook」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/98a7c862-e41e-0cc8-32c4-1e387085ef3b.png)

下記のようにノートブックが作成されますので、右側の赤枠の部分をクリックし、このノートブックを実行するカーネルを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/f644662d-8a81-2be0-4d96-a1a48219baa9.png)

ドロップダウンから、作成済のmlcpuv1を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/5d22d16e-28d7-e66f-aa07-51ac55619d36.png)

これでカーネルが選択できている状況になっていますので、下記コードを入力し、インストールした3つのライブラリのバージョンを確認してみます。

```shell
import dtreeviz
import sklearn
import autosklearn

print(dtreeviz.__version__)
print(sklearn.__version__)
print(autosklearn.__version__)
```

下記のように何もエラーが表示されずバージョンが表示されれば問題なくインストールが完了しています。
エラーが出た場合は、ライブラリがうまくインストールされていないか、誤った仮想環境で作業をしていたかのどちらかだと思いますので、本記事の仮想環境の作成、ライブラリのインストールの部分を見直してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/28f1b3c4-0a84-0b84-1fdc-612501c2bca0.png)

ハンズオンの事前準備は以上になります。






# インスタンスを非アクティブにし、課金を停止

事前準備完了後はインスタンスを非アクティブにすることでCPU課金を止めることができますので必ずこちらの設定をお願いいたします。

ノートブック・セッションの画面に戻り、「非アクティブ化」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/899843ed-4ad0-407f-ce08-a08ec9b78056.png)

確認ダイアログが表示されますので「非アクティブ化」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/173c5d81-10c1-23cc-6f87-9c1de65713bd.png)

数分でインスタンスが停止し、CPU課金は停止します。ブロックストレージの課金は継続されますのでご注意ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/3bd40669-a1a7-c562-b8fc-2860d47b66a2.png)

ハンズオン当日に下記、アクティブ化のボタンをクリックし、シェイプを選択することでインスタンスが起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109260/7eefce2f-6cf4-8d62-49f9-d5bf30f87e36.png)


ハンズオン当日は、下記記事で概説している機械学習の基礎について学び、回帰問題と分類問題のサンプルコードをData Science Serviceの上で実際に動かします。

https://qiita.com/ksonoda/items/fed7b6d5cd839c9e8220

https://qiita.com/ksonoda/items/6fdab4522437ae5b0417

https://qiita.com/ksonoda/items/01d52d01d08929cd20f8