AIの開発で使う道具として、Python・Jupyter Notebook・Docker・クラウド・Web API・MLOpsが出てくる。それぞれどの場面で使うん?
【疑問】AIの開発と運用の道具、Python・Jupyter Notebook・Docker・クラウド・Web API・MLOps【G検定】
前提のおさらい。AIのプロジェクトは、データの理解・準備・モデリング・評価・展開を行き来しながら進めて、展開したあとも監視と保守を続ける
>>1
開発の場面から
Python:機械学習で一番よく使われる言語。数値計算・表データの処理・機械学習・ディープラーニングのライブラリがそろってる
Jupyter Notebook:コードを小さい単位で動かして、結果のグラフや表をその場で見ながら進められる。データを調べる段階に向いてる
>>3
Jupyter Notebookは、上から順番どおりに実行してないと、自分の画面では動いたのに、ほかの人が上から実行すると動かん、ということが起きる。分析の記録はええけど、そのまま運用のコードにするのは向かん
>>1
Dockerは、プログラムと、それが動くのに必要なライブラリや設定を、コンテナという箱にまとめて持ち運ぶ道具
「自分のパソコンでは動くのに、サーバーでは動かん」をなくせる
>>5
クラウドは、計算機をネット越しに必要なときだけ借りる仕組み。学習のときだけGPUをたくさん借りて、終わったら返す、ができる
>>6
クラウドに置いたらデータが外に出るやん。個人情報とか大丈夫なん?
>>7
そこは確認が要る。どこの国のサーバーに置くか、誰が見られるか、契約で何が決まってるかを確かめる。データを外に出せない場合は、自社の中の計算機で動かす選択もある
>>1
Web APIは、学習したモデルを、ほかのシステムからネット越しに呼び出せる形にしたもの。画像を送ると判定結果が返ってくる、みたいに使う
>>9
MLOpsは、機械学習のモデルを作って、展開して、監視して、学習しなおす流れを、自動化して回し続ける考え方
展開したモデルは、世の中のデータが変わると精度が落ちる。たとえば正解率が0.92から0.85に下がってきたら、0.88を下回ったところで学習しなおす、のように監視の基準を決めておく
>>10
入力のデータの分布が変わることもあるし、入力と正解の関係そのものが変わることもある。どっちも、出しっぱなしでは気づけん。モデルのヘルスモニタリングはそのためにやる
管理人のひとこと
- Pythonは機械学習で一番よく使われる言語。Jupyter Notebookは結果を見ながら進められるが、実行順の問題があり運用のコードには向かない。
- Dockerはプログラムと動く環境をコンテナにまとめる。クラウドは計算機を必要なときだけ借りる(データの置き場所や契約は確認する)。
- Web APIはモデルをほかのシステムから呼び出せる形にする。
- MLOpsは作る・展開する・監視する・学習しなおすを自動化して回し続ける考え方。正解率が基準を下回ったら学習しなおすなど、監視の基準を決めておく。