見出し画像

MLOpsのススメ

はじめに

本記事は" フェンリル デザインとテクノロジー Advent Calendar 2022 " 1日目の記事です。
✴︎この記事は、9日目から1日目に変更しました。

どうもYoukeyです。最近クレー射撃を始めましたが、これがまあ難しくて当たらない。それでも、反動を制御しつつ的に当てるという難しい事が出来た時に感じられる達成感は格別ですね。所持許可はミロク製作所のMS2000GR1トラップモデルです。

さて今回は" MLOps "について書きます。

MLOpsという単語の扱いについて

本記事ではMLOpsを機械学習(ML)と運用(Ops:Operation(s))を組み合わせた一般技術用語として使用します。もし類似・同様の商標や別な意味合いの用語があったとしても、上述の用語として読み解いてください。

MLOps

前置きが長くなりました。
さて皆様、タイトルに書いた" MLOps "という言葉はご存知でしょうか。

Googleが機械学習を自社サービスで継続的に利用する中で提唱され、2021年ぐらいからジワジワと広がった印象です(何か別なご意見があればコメント頂けますと、幸いです)。Google Cloudのアーキテクチャセンターの中で、 MLOpsが解説されており、状況ベースのレベリング(0-2)分類で簡潔に文書化されており、理解されたい方にはぜひお勧めのドキュメントです。

【MLアイデアを試すアプローチ】
MLOps レベル 0 : 手動プロセス
MLOps レベル 1 : MLパイプラインの自動化
MLOps レベル 2 : CI/CDパイプラインの自動化

MLOps: 機械学習における継続的デリバリーと自動化のパイプライン より一部抜粋

雑ですが、手動・一部自動・完全自動と思ってください。
一部自動は、人間参加型(HITL : Human In The Loop)とご認識ください。

機械学習を運用する事自体は、広義の意味で" システムオペレーション "に含める事ができます。ですが、MLの予測結果はアプリの機能と性質が異なり、その予定した機能・もたらす予測結果が最初から完成している事が稀です。
筆者は2、3年機械学習に関わってきましたが、見た事はないです。
そのため予測結果が人間の納得が得られるまで、データ再学習やチューニングといった改修を継続する必要があります(RPAやソースコードを書く事と似ている)。

作って終わりじゃない、MLの活用サイクル

機械学習をビジネスに取り込み価値を出していく場合に、これらを熟成醸成と言った表現を見かけます。こういった継続的なアプローチをもって、ようやく予測結果を作り出せるようになります。
筆者はほどほどの予測結果しか出ず、それどころか端にも棒にもかからないケースで頭を抱える事も珍しく無いです(残念なケースはコイントスの表裏で予測する方がマシ)。

そこまで苦労して実現する意味はあるのか?

はい。この熟成する苦労を乗り越えてでも機械学習はビジネスに組み込む意味はあるのです。

価値を考える

AIや機械学習を使う。
この手前で、筆者が今まで多くぶつかってきた壁は「価値がわからない」という認識でした。
システムやアプリケーションは要件や機能が定義され、その価値が人間の作業と置き換えて考えやすいと感じます。では、AIや機械学習は何と置き換えて考えるのが良いでしょうか。

筆者のおすすめは、人の" 考える時間 "との置き換えです。

閃きや良いアイデア、もしくは予測。これらは人がじっくり考えることにより産まれると筆者は考えます。
例えば、旅行先で明日の天気を予測するならいかがでしょうか(天気予報は見ない)。靴を投げて予測する事も良いですが、空を見上げて今日の天気から考えてみたり鳥や虫の行動から考える人もいるかも知れません。

そう、予測には時間が掛かります。それも短くない時間が。

その考える(短くない)時間を大雑把でも良いので、何かが置き換えてくれたら楽しいとは思いませんか?

費用対効果

MLOpsの費用対効果を考える事は非常に重要です。でも実はデータによるなんらかの特徴を出す事は、さほど難しい事ではないです。
ただその中から、ビジネス的価値のある特徴を見つける事が難しいのです。そう、見つけた特徴をビジネス的価値と紐づける事です。面白い特徴だけど、お金に繋がらないケースを筆者はいくつも見てきました。特徴をビジネスに活かすため、アイデアの仮説立証を繰り返す事はお勧めです。

MLOpsが実現出来た組織

その苦労を超え、晴れて機械学習をビジネスに組み込み始める。それはMLOpsという文化が皆様の組織に定着し始めた偉大な一歩です。

MLOpsを実現した組織の役割分担を見てみましょう。花形というか、想像が容易いデータサイエンティストとシスアドはスキップします。

MLOpsの実現体制

もちろん兼務は可能ですが、役割として必要なので考えてみます。

Data Engineer

データの発生から蓄積管理、ETLといったデータにまつわるエトセトラ。
アプリのデータ設計や種々のデータの取り扱い方を知り、機械学習だけでなくビジネス分析などに利用するデータも作る役割。

MLOps Engineer

MLを使うクラウドの運用基盤やパイプラインと呼ばれる連携機構を考える。
MLの予測って単一の機能でしか無いので、その活かし方を考えて作る役割。

ML Engineer

データサイエンティスが考えた仮説をNotebook用のPythonで受け取り(酷いと口頭)。それらを学習基盤上で、最適な事前学習済みの学習モデル(最近イカす)を選んだり、フルスクラッチで学習モデルを作る役割。

Security/Compliance Administorator

MLとデータに関わるセキュリティと統制を担う役割。

MLOps組織として

ただのWebシステムと異なりデータは、MLのロジック源泉となるため、MLOpsにおいては非常に重要な位置付けになります(量の愚痴を言う事は内緒)。
例えばWebアプリの特定のユーザー行動を源泉としたデータで学習を継続的にさせる場合を考えてみましょう。悪意のあるユーザーによって振る舞い(Behavior)を実施されると、学習モデルの再学習時に悪影響が出る可能性があります。すなわち、データそのものだけでなくデータ発生についても統制を利かし制御をしていく事が重要です。

最後に

すいません、最後の最後で宣伝です。
フェンリルでは、GIMLE ブランドのクラウド活用サービスにおいてMLOpsの支援メニューを提供しております。お気軽にお声がけください。
最後までご覧頂き、ありがとうございました。

扉絵は鳩です。
クレー射撃の標的は、過去の経緯からPigeon(鳩)と呼ばれる事にちなんで鳩選ばせて頂きました。作者の"atsukonohoshi"様、ありがとうございました。クレー射撃のススメはまた別の機会に。

GIMLE MLOps by Fenrir

https://www.fenrir-inc.com/jp/business/gimle/download/MLOps_by_gimle.pdf


AI・人工知能EXPO【秋】出展しました


Join now



この記事が気に入ったらサポートをしてみませんか?