ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社のコーポレートサイトはこちらです。
当ページに記載されている情報は、2023年9月30日時点の情報です。

2023.04.26

「Yahoo! JAPAN Advent Calendar 2022」Best Authorと小久保CTOが語り合う──ヤフーのAIプラットフォームとMLOps推進とは

ヤフーの技術やデザイン、カルチャーを発信する「Yahoo! JAPAN Tech Blog」。毎年12月の25日間、新しい記事を毎日公開するアドベントカレンダー企画を実施。サービス開発を支えるエンジニア、デザイナーがさまざまな投稿を行います。

「Yahoo! JAPAN Advent Calendar 2022」のBest Authorに選ばれたのは、「Feature Attributionを使ったモデルモニタリングの開発と実際の機械学習モデルへの適用」を書いたエンジニアの黒松信行。CTOの小久保雅彦とランチ会を行い、ヤフーにおけるAIプラットフォームの意義やその技術的特徴・今後の活用など、さまざまな話題で盛り上がりました。

プロフィール

黒松さんのプロフィール画像

黒松 信行
データ統括本部 データプラットフォーム本部 AIプラットフォーム部
2019年にヤフー株式会社に入社。前職を含め、2016年からKubernetesを使った機械学習基盤の開発と運用を担当。MLOpsの実現と普及のために、機械学習を使ったシステム開発のトイルを組織のなかから削減していくことに関心を持つ。
小久保さんのプロフィール画像

小久保 雅彦
取締役 常務執行役員 CTO
SIerでの銀行ネットワーク構築、C++コンパイラ開発、インターネットプロバイダーの認証・課金システムの開発・運用などを経て、2004年にヤフー株式会社に入社。ポイント、カード、公金決済システムのほか、法人向け課金プラットフォーム、IDプラットフォームなど主に決済・ID系の開発業務に携わる。2022年4月よりヤフーのCTOに就任。

ヤフーへの転職は、Kubernetesがテーマのミートアップがきっかけ

黒松さん、Best Author受賞おめでとうございます!今回はCTOの小久保さんと「人形町今半 東京ガーデンテラス紀尾井町店」のランチを楽しみながら、お話を聞かせてください。

▲ 会場は「人形町今半 東京ガーデンテラス紀尾井町店」。前菜・お造り・すき焼・お食事・デザート

小久保:黒松さんがAIに初めて触れたのは、いつですか?

黒松:大学卒業後です。学生時代はAIと直接関わりがなく、主にビッグデータの研究をしていました。具体的には、学部ではビッグデータ処理に関わるHadoopの冗長化構成を、大学院ではGraphアルゴリズムの高速化などを研究していました。

富士通研究所(現在は富士通に吸収合併)に就職し、ビッグデータに関する研究開発を数年続けた後にAI基盤の開発に着手するようになったのがきっかけです。機械学習のモデルなどを開発したことはあるのですが、業務として扱ったことはありませんでした。

当時開発していた機械学習基盤について、ヤフーの紀尾井町オフィスで開催された「Kubernetes Meetup Tokyo #16」にて発表したことがありました。そこでイベントに参加していたヤフーのエンジニアの方から、「ヤフーでAIプラットフォームを立ち上げるので、一緒にやらないか」と誘われたのが転職のきっかけです。ヤフーの技術力やカルチャーに興味を持っていたこともあり、2019年にヤフーに入社しました。

小久保:実際、入社してみてどうでしたか?

黒松:優秀な人たちが多かったですね。最初の配属先には、ヤフーのスペシャリストである「黒帯」の方をはじめ、他にも強いエンジニアばかりで正直驚きました。想像の5倍くらい、すごいところにきてしまったなと思いました(笑)。

ヤフーが内製したモデルモニタリングツール。新たに導入した機能とは
あらためて、黒松さんが今回の記事で主に伝えたかったことは何でしょう?

黒松:技術的な面では、社内で使われるモデルモニタリングのためのツール「Dronach(ドロナック)」に今回「Feature Attribution」というデータドリフトを検定する機能を導入し、実データでうまく動いていることを証明したことです。

Dronachにはモデルドリフトが起きている可能性を示す指標を自動的に収集する機能があります。これまでデータドリフトとサービスのKPIで判断していましたが、新しい軸で指標を収集できるようになったのです。

今回は Feature Attributionを導入することで、さらにドリフト検知の解像度が上がったことがポイントです。モデルの入力と出力の関係をモニタリングできるようになったことで、これまで気づかなかったモデルドリフトに気づけるかもしれません。

小久保:Dronachはヤフーが内製した技術ですね。

黒松:一般的なモデルモニタリングツールは、OSSで提供されているものもあり、パブリックなクラウドサービスのなかに似たような機能を提供しているものもあります。ただ、それらがヤフーの要件をすべて満たしているわけではありません。前提条件を満たし、かつ利用者がすぐに使うことができて、保守が不要な仕組みを作りたいと思っていました。

クラウドサービスが提供している機能を使うには、サービスプロバイダごとの制約を前提とする必要があります。その前提でうまく使いこなす知識を得るまでの時間やコストがかかりますし、そもそもヤフーにおいてはその制約を受け入れられない場合もあります。そこで、ヤフーの実情に適したモデルモニタリングを実現するために内製することにしました。

小久保:ヤフーが内製でプラットフォームを作る理由の一つには、コスト面があります。プラットフォームが巨大になればなるほど、内製した方がコストメリットがでますし、ヤフーが保有しているデータセンターも活用できる。内製のもう一つのメリットは、カスタマイズが容易であることですね。

そもそもプラットフォームを自分たちで作れるという意義は大きい。パブリッククラウドを利用するだけと、自分たちで環境自体をつくることもできる場合では、将来的に技術力の差が大きく出るのではないかと思います。

黒松:「自分たちで作れる」ということは、何が必要かを理解したうえで無駄のないシステムを組み込み、全体の流れを理解して使えるようになるということ。

サービス側との密なコミュニケーションで、精度の高い実験に成功

今回の記事を書くにあたり、実データをどう扱うか、という点で苦労されたと伺いました。

黒松:Feature Attributionによるドリフト検定について記事を書くうえで、Feature Attributionのドリフト検知を新しく実装したことでどんな嬉しいことがあるのかを、実データをもとに証明する必要がありました。そこで、われわれのプラットフォームを使っているサービス側のエンジニアのなかで、データとモデルを提供してくださる方を集めることからスタートしました。

サービス側とはいつも親密なやりとりをしていることもあり、複数の社内サービス担当者から協力をいただきました。そこまでは良かったのですが、いざ検証実験をしてみるとバグが見つかるなど、想定していなかったことが起こりました。

アドベントカレンダーを書くことが決まった後に、さまざまなデータを取って、見つかったバグを修正するという作業を繰り返し、ギリギリまで実験を続けていました。振り返ってみると、その過程で実データやモデル使った機能検証をきちんと行えたので、機能のクオリティーは上がったと考えています。

私たちの仕事は、プラットフォームを作って提供するだけで終わりではない。それが実際にどのように使われているか、どんな点で困っているのか、社内ユーザーからもらったフィードバックに真剣に向き合い、改善を重ねてきた。そうした実績を積み重ねてきたことが、今回の記事にもつながっていると思います。

小久保:AIプラットフォームの開発者と社内ユーザーの関係、これはいい事例ですね。コミュニケーションが密に行われており、機能を提供しているだけではなく、ユーザー目線で物事を考えられている点も重要なポイントです。ヤフーの社内でも、これだけレスポンスの良いコミュニケーションが行われているコミュニティーはそう多くありません。

いまMLOpsが求められ、モデルモニタリングが必要とされる理由とは

黒松さんの現在の業務は、AIプラットフォームの構築と運用ですよね。このプラットフォームには、どのような特徴があるのでしょうか?

黒松:ヤフーのAIプラットフォームは、基本的にオンプレミスで構築されている点が最大の特徴です。ヤフーの事業や業務のスタイルに合わせて、必要な機能を内製で作り込んでいる。いわばヤフーのための仕様になっているので、これを利用するデータサイエンティストやサービス開発エンジニアは、本来の業務に注力しながらAI開発を手軽に行えます。

小久保:そのヤフーに特化した開発スタイルに対して、エンジニアによっては「世の中一般のエンジニアスキルを身につける機会がないのでは?」と捉える人もいますね。

黒松:そうですね。独自仕様を覚えても社外では活かせないのではないかという不安があるのだと思います。われわれは基本的には世界で普及している仕組みや技術を参考にしながら開発しています。使い勝手という観点でも、一般的なAIプラットフォームと極端に変わるものではありません。ですから、ヤフーのAIプラットフォームを使っていても、世の中の一般的なノウハウを身につけることができると思います。

小久保:Kubernetesを使った機械学習基盤の開発と運用、それらを通してヤフーにおけるMLOpsを実現し普及させることも、黒松さんのミッションですね。従来のDevOpsでは機械学習による開発がうまくいかない原因は何だと考えますか?

黒松:DevOpsが扱っているものと、機械学習システムの開発が扱う要素が違うことが大きいですね。わかりやすいのがデータです。DevOpsが扱うデータは、ソフトウェアの入力・出力が大体固定されているので、テストや継続的開発がしやすいのです。

ところが機械学習の場合、「こういうデータがきたらこう出力を返せばいい」というルールがないものが多い。そのデータの不確かさを、きちんとハンドリングできる枠組みとして、MLOpsが提唱されているわけです。

小久保:ビジネスロジックの場合は、Aが来たらBを返すという決まりがありますが、機械学習ではそうではありません。いろいろなパターンに対して、いろいろな答えが返ってくる。そうした反応に対してはどのような環境が必要か、新しいアプローチを考えることも必要ですね。

今回の機械学習に限らず、システムの不具合や障害の兆候にもっと早く気づくことができればリスクも減らせるし、事故も小さく抑え込むことができるので、その分開発効率も上がるはず。今回の記事に書かれていたモデルモニタリングにおけるドリフト検定機能は、ほかの開発プロセスにも考え方が応用できるかもしれませんね。

黒松:機械学習システムでは答えをちゃんと返していても、それが受け取る側にとって正しいものであるかどうかは、また別の話になりますよね。DevOpsではエラーだとはっきりわかるのですが、MLOpsではそれがわからないことが多くあります。

最初はエラーではなかったものが、後からエラーになることもある。それをどれだけ早く検知できるかが、機械学習モデルを使ったシステムでは重要だと思います。結果的に、ビジネス利益の毀損を最小化することにもつながりますから。
やはりモデルモニタリングによって気づき、防げる事故がありますね。

プラットフォームの運用がビジネスに与える影響は大きい

小久保:ビジネス開発やAIモデルの開発に比べて、プラットフォームは地味ではあるものの、その構築と運用はとても重要な業務。AI開発のベースとしてその点を理解し、データを劣化させたり、障害に気づけなかったりといったことが起きぬよう運用することが重要です。

黒松:もちろん優れたAIモデルを作ることも大事です。しかし、モデルは作った後の運用がより重要なので、きちんと運用できる仕組みを事前に考えておく必要があります。その一方で、運用面もデータサイエンティストが担うことは、スキルのミスマッチもあって難しい。私たちが運用まで考えたAIプラットフォームを開発して、うまく回せる仕組み作りをしています。

モデルモニタリングだけでなく、テスト環境を用意することも大切です。モデルモニタリングに関しては世の中にまだベストプラクティスがないなかで、今後は技術的負債が増えることも考慮し、早めに自動化する必要性があると考えました。

さらに言えば、世の中的に取り組みの少ない分野だからこそ、Tech Blogの記事として社外にも発信すべきではないか。むしろ、出さないのはもったいないと考えて、自分から手を挙げて記事を書きました。社外のエンジニアから反響があれば、社会全体の仕組みの改善につながり、世の中に与えるインパクトも大きくなります。

実は今回の記事を書く前に、2022年1月に「MLOpsを支えるヤフー独自のモデルモニタリングサービス」というDronachを紹介する記事を書いています。

これを読んだ人が、ヤフーがモデルモリタリングを内製していることに関心を持ち、ヤフーに転職して私たちのチームにジョインしてくれました。とても頼りになるエンジニアで、いま一緒にDronachの開発を担当しています。

プラットフォーム運用は「宝の山」。まだまだ改善できる

小久保:AIプラットフォームの内製化について、私もCTOとして全体像を把握しています。一方で、開発の詳細については「そこまでやっているのか!」と、黒松さんの記事で初めて知ったこともあります。特にオペレーション系の仕組みを作っている話は、とても興味深かったですね。

ビジネス開発を担当するエンジニアたちも、システム運用保守に工数の約4分の1を割いているのがヤフーの現状です。ただ、オペレーション自体はもっと自動化して、工数を削減できる。そうなれば、エンジニアとしても本当にやりたいサービスやビジネス開発に注力できるはずです。

そのため、自動化などに取り組んでいる黒松さんたちの仕事はとても重要。私自身も、運用やプラットフォーム開発の経験が長かったので、とても興味深く読ませていただきました。

黒松:今回、ほかのアドベントカレンダー記事にも大きな反響がありました。そのなかで、私の記事を選んでいただいたのはとてもありがたいこと。プラットフォーム運用側での取り組みを小久保さんに、より詳しく理解していただけたこともうれしいです。

小久保:プラットフォームの運用には、技術的な伸びしろとなる「お宝」がたくさん埋まっています。また少し話がそれますが、ヤフーのビッグデータにもまだまだ埋もれているデータがある。データの組み合わせ次第では、思わぬ価値が生まれる可能性がある、というわけです。

どのようなデータを発掘し、どのように組み合わせるか。その効果がわからないもの程、判断をAIに任せたほうが良いと思っています。チャレンジの回数を増やし、当たりをたくさん見つけるためにもAIプラットフォームの自動化が大事になってきますね。

黒松:そうなれば、限られた人数のデータサイエンティストがたくさんのプロジェクトを回している現状から脱却できるかもしれない。

また、プラットフォームの内製化は、いまのメンバーだからこそ実現できたと思っています。ゼロからのフェーズをイチに仕立てることができる人や、そのイチを社内に広めることが得意な人もいる。

それぞれの会社のなかでうまく回せているかという点が大切であり、回し方も会社によって違う。自分たちの会社に必要な課題をブレイクダウンして、一つひとつ解決する。そういったモチベーションとスキルのある人がきちんとそろっている、ということが重要だと思います。

エンジニアも、「サービス」を絶えず追い続けることが重要

黒松さん、最後に聞かせてください。今後、AIプラットフォーム構築やMLOps浸透のために何をしていきたいですか。そのために会社に求めたいことはありますか?

黒松:日本では、MLOpsをきちんと行えている会社はまだ多くはありません。これからも、それらを広めていくための活動は続けていきたいですね。

もちろんMLOpsを導入すること自体が目的ではなく、継続的なモデル改善や安定運用をきちんとプラットフォームで自動化できる仕組みを進めていきたい。会社に求めたいことは、より多くの計算機資源と人が切実に欲しいです(笑)。

小久保さんからは、黒松さんへのメッセージと、AIプラットフォームへの期待をぜひお聞かせください。

小久保:黒松さんは技術に関する考え方がとても明確。しかもTech Blogなどで積極的に情報発信されています。ユーザーを増やして、さらにその声を聞いて改善を行う。そうした循環を作ることがとても大切なので、今後も期待しています。ヤフーは社内ユーザーとなりえるエンジニアだけでも約3000人いますから、その声を生かさない手はありません。

AIプラットフォームのチームには、さまざまなアセットを使いこなすためのストーリーを作ってほしいと思っています。自分たちが開発している直接的な技術の話だけでなく、それが最終的にどういうサービスの改善につながっていくのか。AIモデルにしても、モデルを数多く作り出すことが目的ではなく、そのモデルによってこのサービスがどう変化するか? という視点が重要です。エンジニアも絶えずサービスを追い続ける、その点をもっと意識してほしい。これはAIプラットフォームチームだけでなく、すべてのヤフーのエンジニアに期待していることですね。

関連記事

このページの先頭へ