機械学習によるホタルイカの身投げ量予測・Webサイト構築の研究の引き継ぎ用ページです。
基本的にローカル(個人のPC内)でコードを動かし、自分と同じ結果を出したり、予測API・Webサイトを動かせるようになることが目標です。
基本的にDockerを使用するので大丈夫だと思いますが、自分の環境がMacOSなのでWindowsだとうまくいかないことがあるかもしれないです。
1. 機械学習コードを実行し、同じ結果を再現する
2. 予測APIをローカルで起動して動作確認する
3. Webサイトをローカルで起動して動作確認する
※データの収集、サーバーへのデプロイ(公開)などは大変なので行いません。
全部Dockerの仮想環境上でコードを動かすので、Dockerが入っていない場合インストールしてください。
https://zenn.dev/upgradetech/articles/8e8b82e9d5c494
Windowsの場合、この記事などを参考にしながらインストールしてください。
この記事の場合「✅ インストール完了!」というところまででいいです。
インストールしたらターミナルで
docker --version
を実行してこのようにバージョン情報が返って来れば大丈夫です。
機械学習の学習コードを動かして、自分と同じ結果が再現できるようにします。
全体構成の中のこの赤枠の部分の内容です。
これをダウンロードして解凍してください。
ここまでできたら自分に連絡して、学習用のjsonファイルをもらってください。
この json ファイルは外部公開・第三者への共有をしないでください!欲しい場合は必ず自分(海野)経由で入手してください。
もらったjsonファイルを、このようにdataフォルダの中に、ファイル名をhotaruika_past_data.jsonとして保存してください。
vscodeでダウンロードしたフォルダを開き、ターミナルを開いてプロジェクトのルートディレクトリ(Dockerfileがある場所)で、以下の2つのコマンドを実行してください。
1. Dockerイメージのビルド
docker build -t hotaruika-ml .
2. Dockerコンテナの実行
docker run --rm -v $(pwd)/output:/app/output hotaruika-ml
2つ目のコマンドを実行すると機械学習の処理が走ります。実行には2〜3分ほどかかります。
処理が終了すると、ターミナルにこのように表示されることを確認してください。
また、outputというフォルダが作成され、その中にこのような結果の2つのグラフが作成されていることを確認してください。
予測APIのコードをローカル環境(Docker)で実行し、サーバーを立ち上げて正常に動作できるようにします。
全体構成の中のこの赤枠の部分の内容です。
これをダウンロードして解凍してください。
ここまでできたら自分に連絡して、5つの機械学習モデルファイルをもらってください。
Webサイトは一般向けに公開予定です。このモデルファイルも外部公開・第三者への共有をしないでください!欲しい場合は必ず自分(海野)経由で入手してください。
もらった5つのファイルを、このようにml/modelフォルダの中に、このように保存してください。
vscodeでダウンロードしたフォルダを開き、ターミナルを開いてプロジェクトのルートディレクトリ(docker-compose.ymlファイルがある場所)で、以下のコマンドを実行ます。
docker compose up --build -d
このコマンドを実行することでDockerコンテナ内にAPIサーバーが起動します。
コマンド実行後、コンテナを起動するまで少し時間がかかります。起動が完了したら、ブラウザで以下のURLにアクセスします。
http://localhost:8081/predict/week
アクセスし、このように7日分の予測値や、気象予報値などが返ってきたら成功です。
基本的にDockerは自分のPCの内部に仮想の新しいPCを建てているようなものなので、Docker起動中はメモリを大量に使用するので重くなることがあります。使用していないときは以下のコマンドで停止しておくことがおすすめです。
docker compose down
※ですが、次のセクションのWebサイトの動作確認ではこのAPIのDockerが起動していないとうまくいきません。
Webサイトのコードをローカル環境(Docker)で起動し、サーバー(フロントエンド、バックエンド、データベース)を立ち上げて正常に動作できるようにします。
全体構成の中のこの赤枠の部分の内容です。
これをダウンロードして解凍してください。
vscodeでダウンロードしたフォルダを開き、ターミナルを開いてプロジェクトのルートディレクトリ(docker-compose.ymlファイルがある場所)で、以下のコマンドを実行ます。
docker compose up --build -d
このコマンドを実行することでDockerコンテナ内に3つのサーバーが起動します。
コマンド実行後、コンテナを起動するまで少し時間がかかります。起動が完了したら、ブラウザで以下のURLにアクセスします。
http://localhost:3001
※前述しましたが、このアプリは、予測APIにリクエストを送信してデータを取得するので、前回の予測APIのサーバーが起動している必要があります。
アク