DeNAの「人」と「働き方」の " 今 "を届ける。

DeNAのデータサイエンティストを支える「MLエンジニア」という仕事

2021.08.23

世界的な機械学習コンペ「Kaggle」(※)の成績優秀者“Kaggle Master(カグル・マスター)”が数多く在籍し、ゲームやエンターテインメントからヘルスケア、オートモーティブまで、高レベルのAI技術を用いたサービスを提供するDeNA。

その幅広い事業とサービスを磨き上げるため、データサイエンティストと密に連携しステークホルダーに機械学習技術を届けるのが、MLエンジニアのチームです。

MLOps(Machine Learning+Operations)と呼ばれる新しい領域を手掛けるチームのメンバー2人に、「DeNAのMLOps」について、またその醍醐味を聞きました。

※……世界最大の機械学習コンペティションのプラットフォーム。企業や研究機関などが提供するデータについて、世界中から集まる参加者が機械学習モデルの性能を競う。Kaggleに熱心に参加する人々はKaggler(カグラー)と呼ばれる。

Kagglerと二人三脚で機械学習のアルゴリズムを実装

――初めに、DeNAのAI体制について教えてください。どのようなチーム構成なのでしょうか。

藤原 秀平(以下、藤原):DeNAのAI技術に関わる部署は、「AI研究開発部」「データサイエンス部」「AI基盤部」「分析推進部」の4つの部署に分かれています。

川瀬 拓実(以下、川瀬):我々が属するのは、その中の「AI基盤部」。MLOpsと言われる領域を担当する部署です。

――「MLOps」とは?具体的に教えてください。

川瀬:MLOpsは、実サービスに対して機械学習モデルをデリバリーするまでの「AI以外のほぼすべて」を担っています。

機械学習のモデルをつくるとして、アルゴリズムを実装するところまではデータサイエンティストの仕事。DeNAでいうと「データサイエンス部」の担当領域になります。

川瀬 拓実
▲システム本部データ統括部AI基盤部MLエンジニアリング第一グループ 川瀬 拓実(かわせ たくみ)
2020年にDeNAに新卒入社。学生時代は、インターンやスタートアップでフロントエンド、バックエンド、インフラ、機械学習と興味次第でさまざまな開発に携わる。その頃の経験が今のMLOpsの業務にとても役立っていると感じている。趣味はPCゲーム、サイクリング、投資。

藤原:確かに、MLOpsのカバー領域は広いですよね(笑)。DeNAの場合は、このデータサイエンス部に「Kaggler(カグラー)」(以下、Kaggler)と呼ばれる世界的にもトップレベルの人材がそろっていて、素晴らしいアルゴリズムが上がってきます。しかし、これをそのままサービスに簡単に組み込めるわけではないんですね。

川瀬:たとえば、「AWSやGCPなどのクラウドサービスに組み込んで動くようにするには」といった具合に、Kagglerのつくったアルゴリズムをサービスの基盤に組み込むエンジニアの手が必要になります。

藤原:機械学習のアルゴリズムに、データサイエンスの視点、インフラ設計の視点、ビジネス領域の視点、UXの視点など、あらゆる視点を加味したうえで、サービス側にスムーズにアルゴリズムを実装する。そして円滑な運用を進めていくのがMLOpsの仕事で、我々「MLエンジニア」の仕事、というわけです。

――なるほど。データサイエンティストとMLエンジニアが二人三脚で連携。機械学習のアルゴリズムが実装されて、サービスやプロダクトの精度があがってくるわけですね。

藤原 秀平
▲システム本部データ統括部AI基盤部MLエンジニアリング第一グループ グループマネージャー 藤原 秀平(ふじわら しゅうへい)
2019年にDeNAに中途入社。データサイエンティストやGoogle Cloud Platformの公認トレーナーを経て、現在はMLOpsに従事。コミュニティ活動も多く行っており、TensorFlow User Group Tokyoのオーガナイザーなどをしている。Google Developers Expert (Machine Learning)。

藤原:はい。もっとも、まだまだこれからの領域とも言えます。AIや機械学習が広く世の中のサービスに使われ始めたのは、ここ数年ですからね。

以前は、大学などアカデミアの世界で研究されたAIのアルゴリズムをPoC(Proof of Concept。実現の可能性を検証すること)するというのがほとんどでした。しかし、ここ数年で機械学習はPoCだけで終わらず実サービスに組み込むというフェーズに移行したと感じています。

DeNAでもゲームやエンターテインメント、ヘルスケアなどの多くのサービスで当たり前のようにリコメンド機能などでAIが使われるようになり、「機械学習のアルゴリズムを作成するデータサイエンティスト」と「機械学習のアルゴリズムをサービスに実装するMLエンジニア」という役割の違いが意識されるようになってきたと思っています。

――いわば、データサイエンティストとMLエンジニアの境界が曖昧だったということでしょうか?

藤原:今もその面はあると思います。データサイエンティストが自ら手を動かして実装したり、基盤系のエンジニアが手掛けたり。

ただ前述のとおり、DeNAには数多くの事業があり、機械学習の実装ニーズも幅広にある。加えて、データサイエンスの領域はKagglerという優れた人材がいる。彼らの能力を最大限に活かすためにも、「実装部分は、また別のプロフェッショナルが切り分けて手掛けたほうがいいよね」との結論から、我々MLエンジニアの部隊がしっかりとつくられたわけです。

川瀬:ここまで機械学習のプロジェクトが実践レベルで動いている会社って少ないですよね。

藤原:私はこれまで2回転職していますが、DeNAほど多くの機械学習プロジェクトが走っているところは珍しいと思います。裏を返せば、MLエンジニアのスキルが最も磨ける場がここにはあるということです。

「データサイエンティスト寄り」か「エンジニア寄り」か

――お二方はどのような経緯でMLエンジニアに?

藤原:私はもともとデータサイエンスの領域からキャリアをスタートさせました。大学院でも応用数学から機械学習の研究を手掛けていましたし、前職では機械学習チームに所属し、ポジションとしてはアルゴリズムを書く側でした。

――DeNAに転職されたのは?

藤原:2年前です。前職でも機械学習を実装し、仕事の満足度は高かった。さらに振り返ると、大学院にいた頃はまだまだ実証さえ進んでいないときで……。そう考えると、サービスに優れた機械学習のアルゴリズムが乗り、ユーザーの方々に使われ磨かれていくのは感慨深いものがありました。

DeNAに転職したのは、「もっと多くのサービスで機械学習を活用したい」と考えたからです。1社で多彩なサービスを展開し、AIを実装させている会社として稀有な存在だと思います。機械学習に携わる人間にとって、幅の広い機械学習の応用事例と身近に触れられるのはとても貴重で、選んだポイントでもありましたね。

藤原 秀平

――なるほど。そう考えると、藤原さんは「データサイエンティスト寄りのMLエンジニア」になるわけですね。

藤原:完全にそうですね。川瀬さんは私とは逆ですよね。

川瀬:そうですね。僕の軸足は「エンジニアリング」だと思います。

――川瀬さんは、2020年にDeNAに新卒入社されています。エンジニアとしてのキャリアはいつスタートされたのですか?

川瀬:もともと学生時代から遊びの延長線上でプログラミングなどをしていました。大学院では物理学系の研究をしていて、どっぷりその世界にいましたが、日本のアカデミアの状況はなかなか厳しいものがあって。他の道はないかと考えたときに、ずっと好きだったエンジニアの世界だと考えました。

アルバイトやインターンで、フロントエンド、バックエンド、クラウドなど手掛けていくうちに、「モノづくりの楽しさ」を実感するようになりました。ちなみにDeNAもインターン先の1つでした。

――機械学習には触れてこなかった?

川瀬:いえ。これもあるインターン先で触っていて、おもしろさを感じていました。藤原さんが言ったように、ここ2~3年で、画像認識などが当たり前のようにプロダクトやサービスに実装されるようになって、その進化の過程は肌で感じていました。

ただ、いろいろ手掛ける中ではインフラに最も魅かれまして。DeNA入社後の配属先としては、インフラ、基盤系に希望を出していました。

結果として、「基盤系が希望で、機械学習もわかっているなら……」と現在のMLエンジニアチームに配属され、これまでフロントエンドもバックエンドもクラウド周りもひと通り触れることができています。領域広くエンジニアリングに携われるのは、MLエンジニアならではの醍醐味でとても楽しいですね。

藤原:まさにその「幅広な知見を求められる」ことはMLエンジニアの特徴だと思います。「AI以外のほぼすべて」という表現がぴたりとはまるくらい幅が広い(笑)。エンジニアリング周りのみならず、ビジネスサイドとの折衝やデザイナーとの調整、法務部などとも連携して仕事を進めますから。

当然、1人でカバーできる範囲を超えてくるので、得意領域を持つ人間が雑多に集まるのがMLOpsを手掛ける我々チームの強さになるのかなと。私がデータサイエンス寄りで、川瀬さんがエンジニアリング寄りなのは端的にそれを表しているかもしれませんね。

Kagglerの強みを活かすコンペ形式の社内共通基盤『Hekaton』を開発したワケ

――DeNAのMLエンジニアは、凄腕のデータサイエンティストであるKagglerのアルゴリズムを実サービスで活用するわけですよね。また独特の仕事への興奮があるものですか?

藤原 秀平

藤原:間違いなくありますね。特に私はアルゴリズムを書く側からきたので、とても興味深い。Kagglerの方たちは、とにかく手を動かす速さが尋常ではない。そこは毎回驚かされます。

あとはやはり完成度の高さ。信頼度の高いアルゴリズムのおかげで、我々MLエンジニアは安心して実装に集中できる。ムダなすり合わせややり戻しがないのは、中にいると気づきにくいけれど、DeNAならではの強さだと思いますね。

――それだけ多くのプロジェクトを手掛けられる。スキルを磨けることにもつながりますよね。

川瀬:そうですね。繰り返しになりますが、このレベルの高いAIを目の前で見られるのは貴重だと感じます。その上で、私のようなエンジニアリング寄りのMLエンジニアが多く手を動かせるのはありがたいですね。

藤原:こちらも自然とスキルが上がっていくのを感じます。そもそも機械学習は、「動かしてナンボ」の世界。MLOpsがうまく回らないと、アルゴリズムは実装したけれどリリースできなかったり、リリースはしたけれど継続的に運用できなかったりと、これらはこの界隈の共通の悩みだと思います。我々の強みは、もちろんKagglerのアルゴリズムの凄さもありますが、この運用のクオリティもあると自負しています。

――ではその運用の仕組みについて、社内共通の機械学習基盤『Hekaton』の開発理由を教えてください。そもそもなぜ『Hekaton』が必要になったのでしょうか。

藤原:これはDeNAが多彩な事業を手掛けているからこそのニーズですが、「いいアルゴリズムがあればうちのサービスにも活かしたい」という声が前からありました。一方で、MLOpsの領域は属人化しがちな面もあって。それだとMLエンジニアが異動したり、転職した場合にムダな労苦がありました。

また、Kagglerの開発サイクルと比較して、機械学習モデルをサービスに投入するまでのリードタイムがかかっていることは課題の1つでした。Kagglerがつくったモデルをシームレスにサービスに投入することができれば、プロジェクトの推進力は高まり、さらに類義案件でのノウハウ共有もしやすくなる。これらを解決し、社内共通の機械学習基盤として開発したのが『Hekaton』です。

――開発において、こだわられた点などはありますか?

藤原:Kagglerに馴染みのあるコンペティションという形を採用し、Kagglerのつくった機械学習モデルをサービスで使える形にしてリリースできるようにしました。また定期的に新しいデータで機械学習を回し直せる仕組みを実装。『Hekaton』によって、開発のサイクルが早まり、より気軽に機械学習を導入できるようになりました。もちろん今も我々のチームがブラッシュアップし続けています。

――『Hekaton』はDeNAのどんなサービスに活用されているのですか?

藤原:ライブコミュニケーションアプリの『Pococha(ポコチャ)』(以下、『Pococha』)や無料週刊マンガ雑誌アプリ『マンガボックス』、ヘルスケアエンターテインメントアプリ『kencom(ケンコム)』など、さまざまなサービスに投入されています。

――『Pococha』のAIによるマッチングにも定評があると聞きました。まさに運用がうまくいっている証拠なわけですね。

藤原:ありがとうございます。特に『Pococha』は先行していると思います。早くからユーザーの方の好みにマッチした、ライブ配信者(以下、ライバー)のレコメンドシステムを機械学習によるマッチングで実践し、運用の中で現在も精度を改善し続けています。

川瀬:数多いるライバーの中から「自分にフィットするライバーとの出会い」が促されたらよりユーザーの方に楽しんでいただけますし、サービスの満足度にもつながる。そして、この『Pococha』のアルゴリズムを他のサービスにも横断的に展開し、あるいはもっと他のアルゴリズムも共通基盤として、他のサービス上で活用できるモノづくりを極めているのが我々のチームでもあるんです。

藤原:『Hekaton』というのはデータサイエンス部の方が命名してくれたものです。ギリシャ神話の神で50個の頭と100の腕を持つ巨人「Hekatoncheir」から取られていて、多くのKagglerの力を事業貢献という1つの目標に向けていきたい、という意味が込められています。

常にベストプラクティスを探求する

――チームのムードと言いますか、DeNAのMLエンジニアの色があるとしたら、どんな雰囲気ですか?

川瀬 拓実

川瀬:得意領域の異なるメンバーが集まっているからか、モノづくりへの発想も発言も自由度が高いです。これはチームリーダーの藤原さんの人柄によるものかもしれませんが(笑)。

藤原:(笑)。ただMLOpsにしろ、『Hekaton』のような共通基盤にせよ、まだまだこれからの世界です。「ベストプラクティスがない」ので、意見がぶつかり合うことも少なくありません。でもそれは本気で考えているからこそのぶつかり合いで、気持ちよく仕事に向かえていると思います。

あとはミーティングでも「開発の話をする時間」を意図的にとるようにしていますね。

――「開発の話をする時間」ですか?

藤原:ええ。特に今はフルリモートに近い状態で全員がそれぞれの場所で仕事をしています。ミーティングは事務的な話や進捗の話に偏りがちなので、あえてしっかりと「こういう機能がほしいよね」「ここの実装はどうしようか」といった話をする時間を多めにとっています。

川瀬:そうした時間があるから、新しい技術やサービスを試したいという声を上げやすいと感じます。チャレンジしたいと伝えると、藤原さんはすぐに後押ししてくれますよね。

藤原 秀平

藤原:そこはありますね。あと技術選定のときも「どっちでもいいかな」と迷ったときは、モチベーションが高い人間がいるほうを選ぶようにしています。やる気のある人に思う存分力を発揮してほしい思いは強いですね。これはDeNAの特徴かもしれません。

――今後、どのような方にジョインしてほしいですか?

川瀬:新しいサービスや技術に貪欲で、すぐに試してみたいと行動に移す。そんなフロンティア精神をもった人と一緒にチームを盛り上げていきたいですね。

藤原:それこそベストプラクティスがないですからね。そうした道の領域でワクワクして手を動かせる人は活躍できる場だと思います。あとは先に言ったように、スキルセットはむしろ、本当に広い領域をカバーするので、何かしらの強みを持ってチームを補完してくれる方。一緒に新しい挑戦にモチベーション高く挑んでくれる方であれば、大歓迎です。

DeNAエンジニアの発信・登壇内容・Blogなど、最新情報は公式Twitterアカウント(@DeNAxTech)で発信しています。ぜひご確認ください!

※本記事掲載の情報は、公開日時点のものです。
※本インタビュー・撮影は、政府公表のガイドラインに基づいた新型コロナウイルス感染予防対策ガイドラインに沿って実施しています。

執筆:箱田 高樹 編集:川越 ゆき 撮影:小堀 将生

open menu