見出し画像

ITコンサル企業のAIチームでMLOpsをすることの面白みと今後の展望

みなさんはじめまして。フューチャーの山野光太郎です。Strategic AI Groupに所属し、MLOpsに携わっています。MLOpsとは機械学習(Machine Learning)と運用(Operations)を合わせた造語で、近年注目度が高まっている分野です。本記事では、MLOpsエンジニアである私から見たフューチャーにおけるMLOpsの紹介と今後の展望について紹介します。

AI/MLを社会実装・実運用化するためのキー「MLOps」

AI/ML(機械学習)案件は、データサイエンティストが自身のラップトップでモデルを開発すれば終わり、ではありません。そのモデルがシステム・プロダクトに組み込まれ、価値を発揮し続けるためには、様々な工程を繰り返し経る必要があります。

AI界隈の方は見飽きた図かと思いますが、下記は2015年のAI・機械学習分野の国際会議NeurIPS(Neural Information Processing Systems)でGoogleのチームから提出された『Hidden Technical Debt in Machine Learning Systems』という論文から引用した図です。実世界のMLシステムのうち、MLコード(いわゆるモデル開発)で構成されているのは中央の小さなブラックボックスで示されるごく一部であることを示しています。

出展:https://proceedings.neurips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf

モデル開発以外の必要な工程・機能とは具体的にいうと、データ基盤構築・学習環境構築・実験管理・MLパイプライン開発・特徴量管理・モデル管理・サービング環境構築・CI/CDパイプライン開発・モニタリング、等です。

MLOpsの定義は様々されています。いくつか引用すると、「データ前処理、モデル開発、デプロイ、運用などを含む機械学習のライフサイクルを管理する技術/知見」(出展:MLOps勉強会)、「MLOps is the art and science of bringing machine learning to production, and it means many things to many people. 」(出展:https://www.zdnet.com/article/the-state-of-mlops-in-2021/)、「Software2.0のためのDevOps​​」(出展:https://speakerdeck.com/icoxfog417/mlopsfalsekoremadetokorekara)などです。

MLOpsを実現するためには、エンドツーエンドでの機械学習システムの設計・開発・運用のライフサイクルと勘所の理解、そしてそれを解決するためのエンジニアリング力が必要となります。

下記は『Machine Learning Operations(MLOps): Overview, Definition, and Architecture』という論文から引用した図ですが、MLOps Engineerが領域横断的なスキルが必要になることを示しています。

出展:https://arxiv.org/pdf/2205.02302.pdf

私がMLOpsを始めるまで

私は2018年に、現在も所属するStrategic AI Group(通称SAIG)に異動し、業務としてMLOpsをやり始めました。当時SAIGは基本的にはデータサイエンティストのみが所属しており、研究開発やPoCが業務の中心でした。それらが上手くいきはじめ、次のステップとしてAI/MLの社会実装・実運用化も並行して本格化していくべきではというタイミングで、自分から当時のグループ長に連絡して希望を伝え、アサインが決まりました。

SAIG異動前はTechnology Innovation Group(通称TIG)に所属し、インフラエンジニアとして基幹システム刷新プロジェクトに参画していました。また、2017年ごろから少しずつAI/MLに興味を持ち、CourseraのMachine Learningコースを修了したり、Pythonでモデル開発をしたりしていました。勉強する中で改めてAI/MLの可能性を感じて社会実装・実運用化していきたいと強く思ったこと、またそれまで積み上げてきたエンジニアリングスキルを活かせると確信したことが、SAIGへの異動を希望することになった経緯でした。SAIG配属直後は、MLOpsをやっていく上で欠かせないAI/MLの理解を深めるために、手厚いフォローの中で、今まで経験のないモデル開発やAI/ML案件のプロジェクトリーダーを担当させていただくこともありました。

フューチャーのMLOps

SAIGに異動してからは、AI/MLの社会実装・実運用化のスピードと品質向上のために様々な取り組みをしてきました。大きく分けると、開発者体験の向上と、モデルをシステム・プロダクトに落とし込んでユーザに価値を提供させ続けるためのシステム実装・運用設計をやってきました。

SAIGの抱えるプロジェクトとしては、AIコンサル・開発としての受託案件が多いですが、自社サービスもあります。それらのプロジェクトにMLOpsエンジニアとして、データサイエンティストと協調しながら、提案・PoC・構築・運用フェーズを一貫して、かつ複数プロジェクトに横串で参画しています。最近は、MLOps特化の案件として、クライアント企業にMLOpsの導入支援をする案件なども実施しています。

ITコンサル企業のAIチームでMLOpsをする特徴としては、様々な業界・業種のクライアント企業の、様々なデータ・アルゴリズムに触れ、MLOpsを設計・構築できることだと思います。自社サービスで最新の技術を試して評価し、それをAIコンサル・開発案件やMLOpsコンサル案件で活かしていく横展開やフィードバックサイクルを多く回していけることも魅力の一つです。一方、Web系企業などでMLOpsをする場合と違ったデメリットもあります。例えば、受託案件であってもMLOpsの場合はリリースして終わりとはならないので比較的長い案件にはなるものの、多くの場合は内製化支援もスコープには含まれるので、いずれ自分がいなくても回るようにして案件から離れなければなりません。MLOpsを設計・構築して運用が始まり、精度改善のループが軌道に乗った頃に抜けることになる場合があります。

MLOpsをやっていて良かったなと思える瞬間は、やはり自分で設計したプロセス・インフラ上でAI/MLモデルがサービスとして稼働し、クライアントや一般利用者に喜んでもらえた時です。特に、グローバルで利用される大規模なMLOpsの構築をリードしたときは、不安もありましたが、それ以上に動いたときの喜びも大きかったです。また、AI/MLモデルを開発するための環境を整え、実験管理がやりやすくなったとデータサイエンティストに感謝されることや、さらによりスピーディかつ品質高く開発できるようディスカッションしながら仕組みを改善していくプロセスも楽しい要素だと感じます。

ご存知のようにAI/MLは猛烈なスピードで進化しています。実はMLOpsはそれ以上に発展途上で、興隆が激しい領域です。次々と出てくる最新技術をキャッチアップして試していく必要があり、大変な面もありますが、常に先端に触れられることはエンジニアとして面白さを感じるところです。

MLOpsに関わる中で大切にしているフューチャーの文化があります。それは「ないものはつくる」「中立の立場で技術を選定する」です。AI/MLのような発展途上の分野では、様々な未経験の課題が発生します。解のない状況も多いのですが、先端を追求していればないものはつくる(提案する)ことができるようになります。また、未知の難題であるほど中立の立場であらゆる手段をゼロベースで考える事が重要です。そのような考えを持って日々、エンジニアリングの醍醐味を感じながら最適を追求しています。

今後の展望

AI/MLの活用がビジネスにとって重要になって久しいですが、この流れはより加速すると考えています。ITの活用が当たり前なくらい、AI/MLの活用も当たり前になる。そんな中で、MLOpsはAI/MLをビジネス的な価値に変換していくために重要な要素であると考えているので、フューチャーのミッションである「お客様の未来価値を最大化させること」を達成し続けるために、最高のMLOpsチームを作っていきたいと考えています。MLOpsは領域横断的なスキルが必要かつ発展が速い分野なので、幅広いバックボーンを持つメンバーが有機的につながって進化し続けられるようなスペシャリストの集団にしていきたいです。MLOpsエンジニアとして、お客様のAI/MLの社会実装・実運用化というエキサイティングな領域をこれからもリードしていきます。

「MLOpsエンジニア(Strategic AI Group)」ポジションを募集しています。ご興味がおありの方は気軽にお問い合わせください。

Tech Castでも山野さんが登場しました。ぜひ聞いてみてください!(追記:2022/10/31)



Twitterでも情報発信しています!