見出し画像

機械学習エンジニアやデータサイエンティストなど、MLシステム導入に向けて必要な役割

こういった意見が最近増えているという印象があります。そこでどんな人材が機械学習導入に必要なのかを考えてみました。

前提として、この内容は私個人的な意見で何かしらの組織や団体の意見を代表するものではないことをご理解ください。

機械学習は実験から実用のフェーズへ

この4〜5年間で好景気も後押して、機械学習やディープラーニングなどの技術に関する実証実験がで多くなされてきたと思います。しかし最近の経済状況から今まで通り機械学習やAIの「実験」に簡単に投資を出来なくなり、実際に「事業会社としてビジネスに繋がる投資」が中心となってくるのではないかと考えています。このような「実験から実用」という流れがどの業界や分野で起きるのでしょうか。

@m_sb04さんの記事では52もの事例が紹介されています。業界問わず様々な分野で機械学習が取り入れられていることがわかります。ここから私は「どの分野で実用が一気に進み始めてもおかしくない」と思っています。

全ての機械学習やAI導入事例を知っているわけではないのですが、感覚的には回帰分析を用いた需要予測などはデータ収集や効果が見えやすく実用に近いところにいるのではないかと見ています。その他の分野としては、建設(インフラ点検)周りや製造ラインでも事例が増えてきており、ここでは画像を取り扱うことが多い印象です。

実用のためにどんな役割の人が必要か

よく聞くのはタイトルにも書いた、機械学習エンジニアやデータサイエンティスト。そもそもこの違いもピンとこない人が多いのではないかと思いますし、私自身も明確に回答できるわけではないのですが、私の中で回答としているのは、@TJO_datasciさんのBlogに書いているこちらです。

データサイエンティスト:「アナリスト」の発展版
機械学習(人工知能)エンジニア:「エンジニア」の発展版

そして、冒頭にpasteしたTweetで言われているのは、AIプランナー/ディレクターといったような役割が必要だということです。いわゆるビジネス職の方々のことでしょう。

さて、では一体全体ホールで考えた場合にはどういった役割の方々が必要なのでしょうか。2020年3月20日時点で私が考えたのは下記のような役割です。

- Account manager
- UX designer
- Data scientist
- Project engineering manager
- ML engineer
- MLOps engineer
- Application engineer
- Infrastructure engineer

それぞれの役割について考えていることをざっと書きます。

Account managerと言うとWEB広告や代理店の営業担当のことを思い浮かべると思いますが、自分の中ではそれに似たことを行うイメージです。冒頭のTweetにおけるAIプランナーやAIマネージャーに当たるかと思います。なんとなくの実験に対する投資には必要ないかと思いますが、本格的に実用を見据えた上では械学習で行う新たなビジネスに対する経営陣や現場の理解を得ないと投資のGoは得られません。一言だと「機械学習システム導入に向けた経営の意思決定促進を行う人」だと思います。

UX designerは世間で知られている役割と同じで、結構不足している要素ではないかと考えています。サービスや製品のユーザーは機械学習があると何が嬉しいのか、どんなexperineceを得られるからお金を支払うのかを設計するイメージです。たとえばCustomer Journey Mapがアウトプットの1つになってくるのではないかと思っています。「機械学習で誰がどんな体験を経て何故喜んで対価を支払うのかを設計する人」みたいな感じかと。

Data scientistは先ほどのBlogで下記のように記載されています。

「都度情報を分析し結果をレポーティングして意思決定に貢献する」のが仕事

「アナリスト」の発展版としてビジネスにおける意思決定を加速させるのが役割なため、集まったデータや課題情報から「どの解析手法を用いるのが最適かを決める人」だと自分では考えています。よくある"AIは目的じゃない手段だ"みたいなこともあるため(そもそも起こらないようにしたいが...)、機械学習だけではないデータ解析の手法もふまえて検討する必要があります。

Project engineering managerは、project managerとほぼ一緒ですが、開発におけるプロジェクトの計画と実行という意味で、"engineering"というワードを付け加えました。プロジェクトの計画と実行だけでなく、組織作りや利益を見据えたリソース管理ももちろん役割に入ってくると思います。「エンジニアチームをまとめ立てた計画に沿ってプロジェクトを遂行しながら、ビジネスとの連携を図っていく人」かと考えています。

ML engineerは、機械学習プログラムの設計・実装を担う開発担当です。機械学習関連の知識ももちろん必要ですが、それに加えて実用システムの開発や運用の知識や経験が求められるでしょう。この後のMLOpsと違って、検証段階や本番で使う機械学習モデルの"初めの実装"を行うのが主となるのではないかと思っています。反対を言うと、MLOpsはその運用が主となると考えています。

MLOps engineerは、機械学習プログラムの継続的な運用を行う開発基盤を構築する方々です。一度作った機械学習モデルがそのまま一生使われ続けることはないでしょう。適宜追加データを収集し教師データを作成した上で、再学習させるなどのフローが発生します。そういった機械学習構築環境を作り上げることが、実用においては重要だと思います。この職種については最近取り上げられることが多くなってきましたね。

Application engineerは、ユーザーに届ける機械学習プログラムを含んだシステム全体を設計・実装するエンジニアを想定しています。機械学習のI/Oだけではビジネス的な価値は創出しにくいので、ユーザーが対価を払ってくれるようなアプリケーションまで落とし込む必要があります。既存システムにインテグレーションする場合もあるでしょうし、一から設計・実装するパターンもあるかと思います。システム全体に関わるので、全体での結合テストも発生するでしょう。

Infrastructure engineerもほぼそのまんまですが、システムを利用してもらうにあたってのネットワークや情報管理などのIT基盤を構築・運用する人を想定しています。インフラエンジニアも色々分け方があると思いますが、「システム全体の保守・運用する人が必要」という意味合いから入れています。

役割は与えられるものではなく作っていくもの

今回記載した役割だと、システム要件定義は誰がやるのか?みたいな話にもなったりします。(個人的にはPMがリードしながら作り上げていけば良いと思っています)しかし、役割はユーザーが求めるものによって変わっていくので、これで正解は一生ないと思いますので、大事なのは「多くのユーザーに使ってもらってビジネスにするために不足している要素は何か」を考え続けることだと思います。

先にも書いたように、これからは「実験から実用」に向かうことは間違いないと思うので、事業会社でやるのであればきちんとビジネスを成立させて、自分の報酬にも嬉しく跳ね返ってくるように、様々な強みを持っている方々と協働できればなと思っています。

ちなみに狙うべき市場を特定するMarketerも必要かなと思ったのですが、少し範囲が広すぎるので割愛しました。

このテーマに関しては色々ディスカッションもしたいので、ご意見等たくさんいただけると嬉しいです! では〜

▼Twitter▼


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