どうしてこの記事を書こうと思ったのか
自分専用のAI開発環境が欲しい!
きっと誰もが思うことでしょう。かくいう私も競馬AIを開発したいというモチベーションのもと、AI開発環境の構築で試行錯誤を繰り返しました。そしてこの度納得のいく環境を構築できたので備忘も含めて構築手順を残そうと思います。
今回はDockerとmlflowが主な技術要素なんですが、その理由はクラウドを意識したからです。もともとクラウドに構築したかったけど課金されるのは嫌だな→Dockerならクラウド移行が簡単だ、という思いからDockerを採用することにしました。そして、機械学習開発の課題の「実験結果の管理」と「学習済みモデルの管理」を解決するために、mlflowの導入を決めました。この環境を構想から構築するまでに3ヶ月ほど費やしたので、きっと同じ環境を作りたい人がいるだろうなと思い、この記事を執筆することにしました。
※2021/5/12現在、記事は執筆中で順次コンテンツを増やしていく予定です。
※2021/11/17記事を更新しました。
今回構築する環境構成
今回構築する環境は、UIとしてWebブラウザ(Chromeなど)とVScodeを使い、ローカル環境にPython実行環境を構築し、コンテナ環境にデータベースや機械学習の実験モデル管理環境を構築しています。
この環境を構築することで、AIの開発から運用までスムーズに回すことができるようになります。
今回はMac上に環境を構築しましたが、anacondaもdockerもWindowsやLinux環境でも同様に構築できると思われます。(稼働確認は行なっていません)
環境構築手順
次のような流れで環境構築を行います。
[python実行環境構築] (https://qiita.com/kazuki502/items/70825438fdf02979f890)
- ローカル環境にanacondaをインストールする
- tensorflowをインストールする
- optunaをインストールする
- mlflowをインストールする
- ローカル環境にVScodeをインストールする
- 拡張機能をインストールする
- ローカル環境にdockerをインストールする
- 分析用データ保存用MySQLとデータ参照用Adminerを設定する(docker-compose)
- mlflowとデータベース・リポジトリを設定する(docker-compose)