機械学習エンジニアはどこまでコミットしたいのか

藤倉成太氏(以下、藤倉):ここにいらっしゃる方、世の中の機械学習向けエンジニアの方々は、プロダクションのコードを書くところまで、みなさんやりたがっているものなんですか? 例えば、採用などで考えたときに「いやー、俺はそこまでやらないです」みたいな方が果たして出てきてしまうのか。

谷脇大輔氏(以下、谷脇):弊社の場合は特殊で研究系のエンジニアは本当に研究系の人で、アプリ開発とかは一切やらない。ただ、その代わり一点突破というか、研究にすごく強い。それで我々がそれ以外の部分をカバーする感じですね。

逆にプロダクト開発チームは機械学習にすごく強い人はそこまでいないです。とはいえ、機械学習のことがわからないと、どういうインフラ、アプリケーションを作るかが想像できないので、そのへんのキャッチアップがすごく重要になっています。

竹原一彰氏(以下、竹原):メルペイは今8名なんですけど、運よく「モデルだけやりたい」と言う方はいらっしゃらなくて、ソフトウェアエンジニアリング全般をやってくれる方が揃っています。ただ、みなさん得手不得手があります。モデリングが得意な方とかソフトウェアリングが苦手な方、逆にソフトウェアエンジニアリングが得意な方とかあるので、それはチームのアサインで工夫して補うようにしています。

ただ、モデルだけとなると厳しいフェーズがあるんですよね。モデル開発が必要なときとそうじゃないときとかがあったりして、その場合は仕事がなくなっちゃったりする可能性があるので幅広くできる方を採用時に「こういったことが仕事だけど本当に大丈夫ですか?」みたいなかたちのマッチングは、かなり意識的にやっています。

あとはそうですね。モデリングや数理的なことに興味がある方は、会社ではビジネスコミットをしつつプライベートで大学院に行かれる方もいらっしゃったりして、うまく切り分けながらやられているのかなという感じなのがメルペイです。

西場正浩氏(以下、西場):エムスリーでは採用時に「プロダクションコードもやってもらいますよ」みたいなことは言ってますね。そういう人だったらいいとか、それにチャレンジしたい人だったらOKみたいな感じで一応受け入れてます。得手不得手はあるんですけど、みんながんばってやってますね。

例えば今日登壇した2人も、彼らのコードをコードレビューはするけどそれ以上のことは僕はやってない感じなので、MLとインフラの両方を見る人は少ないんですけど、ML側だったらDockerまで作ってCI環境を自分で作ってインフラ側に渡すのはDockerイメージを渡す感じまでは全部やるみたいなところはやっています。

あとは障害が起きたら結局MLEngも「起きなきゃ! 起きなきゃ!」と対応しないといけないので、そういうところで品質管理みたいなところをやってますね。結局採用時に僕らは言っていますという感じですかね。

一人がシステム全体の技術を見渡せるようになった

藤倉:そうすると幅広く対応できるなと。もちろんAWSやクラウドプラットフォームの進化もあるでしょうし、コンテナの技術の進化もそうですし、最近はGCPもAWSもMLOpsというか、例えばWeb上のIDEみたいなものだったり、わりとML系をただ動かすだけじゃなくて周辺のサービスとかツールが充実しているじゃないですか。

そういうのも助けになっているというか、そういう状況だからこそできる話なんですかね。

竹原:おっしゃる通りかと思いますね。コンテナ技術の発達とクラウドのマネージドサービスが使いやすいのが出てきているから、そこまで昔ほどネットワーク設定とかサーバ構築からとか、そこまでやらなくてもシステムが構築できるようになってきたので、わりと1人の人間がシステム全体の技術を見渡せる感じになったかと思います。

とはいえ、全部身に付けるのはそれぞれ専門性が深くて難しかったりするので、補いながらというかたちではあります。

西場:そうだと思う。

(一同笑)

僕らはまだまだサービスとかシステムの設計でそんなに多様性がなくて、バッチ処理をやって30分に1回動かすところをやって、データをAPIとして提供するところが大きいので、そうするとあまり多様性がないと思っています。

あとは僕らはデータパイプラインをLuigiを楽にしたgokartを自分たちでGitHubに上げているんですけど、それを使っています。それでは型が決まっちゃうので、そういうOSSの恩恵をすごい受けてがんばっている感じですね。ゼロから設計するのは厳しいですけど、それに乗っかればキャッチアップは可能かなとは一応思っています。

谷脇:そうですね。Preferred Networksの場合はモデルを日々更新していくとか、リアルタイムで更新するようなユースケースがまだないので、AWSのSageMakerなどの手法のものは今は使っていないです。なので、モデルはS3にアップロードして、それをロードして使うかたちになっています。

藤倉:なるほど。今までのところはわりとこれまではうまくやれていた話を少なからずしてくれていますが、一方で失敗や苦労が当然あったはずで、そのへんの話を聞きたいなと思います。

まだ安定した手法になっていない

藤倉:ご自身が所属するようなチームで、今最も解決したいけど難易度が高いなと思う課題は何かありますか?

谷脇:今の課題というか、ある程度解決しかけているところですけど、まだ安定した手法になっていないです。推論サーバをどう作るかで研究者とプロダクト開発のエンジニアが完全に分かれているので、研究者側がJupyter Notebookなどでザザッと書いたコードなんですよね。

それをプロダクションで使えるようなコードにする。それでパラメータとかも調整できるようにするとか、そういったところを今は案件がそこまで多くないので個別に調整して直してもらっているんですけど、そのあたりの手法を考えてインタフェースなどを統一してやっていけるともう少し楽になれるかなという感じですね。

とくに最近すごい大変だったのは、マルチスレッドの想定をそもそも研究の時点ではあまり考えないので、こちら側で開発していたアプリケーションがマルチスレッドで動くようになっていて、まだ今はデバッグ中です。たぶんグローバル変数か何かなんですけど、エラーが起きることがあって、そういったところもどう調整していくかが今後の課題となっています。

竹原:今後の課題……。言えるネタをすごい考えてたんですけど。

藤倉:言える範囲で。

竹原:そうですね。実は先ほどの与信モデルみたいなところ……機械で一人ひとりの与信枠の金額を決めているとお話をしたんですけど、完全にフルオートマティックのマシンラーニングで決めているかと言うと、実はそうじゃなかったりします。基本的にはモデルベースで与信枠がきまるのですが、そのあとにビジネスロジックを吸収するレイヤーがあって、そこは人間の設定がちょっと入ってたりするんですね。

人間系とマシンラーニング系をうまく融合させてビジネス成功させるところが課題かなと思います。ただ、それも人間系の業務を型化して、自動化の範囲を広げていけば解決できる課題なのかなと思っています。

抽象的な話し方になってしまって、すみません。少しセンシンティブなところだったので(笑)。ログミーさんにログにしないでいただきたいなというところではありますね(笑)。

西場:うちは技術的な課題というところは他のところとだいたい同じで、うちのチームで抱えている一番の課題というのは「どういうプロダクトを作るか」というところですね。

ソリューションは、がんばったらどうにかなるところがあるんですけど、作るべきソリューションというか「解決すべき問題が正しいの?」みたいなところがあって、そこをMLもエンジニアリングもビジネスもわかった人がプロジェクトマネージャーとして一緒に働いてくれるのが理想なんですけど、そういうところがほしい。

うちはMLエンジニアは優秀な人が来ているので、彼らもアルゴリズムによって競争の源泉になるみたいな、何かすごいかっこいいものを作ってくれる、設計してくれる人がほしいなとは思いますね。

藤倉:なるほど。でもそれは本当に難しいというか、機械学習がうんぬんじゃなくて、そもそもビジネスソリューションというかビジネスの問いの発見が極めて難しいという根本的な問題ですもんね。なるほど、わかりました。ありがとうございます。

信用を創造して、なめらかな社会を創る

藤倉:ということで、このパネルディスカッションもあと残り5分ぐらいになってきました。あとは今の課題の解決策でもいいですし、それ以外も含めて各社みなさんがこれからどんなチャレンジをしていこうと思っているのかを言って、締めに近づいていきたいなと思うんですが……。

西場:先ほど言ったように、プロダクトマネジメントというか新しいプロダクトの発見をグローバルにやりたくて、そこの挑戦をどうやっているかと言うと、まずは強いエンジニアを集めるところと、あとは僕がPDM、プロダクトマネージャーとして働いています。

そういうふうに問題解決をしようかと思っているんですけど、医療を良くしたくて医療費やばいじゃないですか。ここにいる人はだいたい大学の研究や教育にお金を回したいなと思っている人がいると思うんですけど、医療費は非常に大きいんですよね。

40兆円ぐらいあるので、それを10兆円減らして10兆円が大学などに回ったらいいなと思うんですよね。

(会場笑)

それを一緒にミッションを高く持ってくれる仲間がほしいですね。僕らはそこに技術力を求めるんですけど、そういう方と一緒に世の中の医療を変えたいなという強い思いを持って、かつ、腕に自信がある人や今後腕を磨いていきたい人と一緒に働けたらいいなぁとは思っていますね。

竹原:メルペイも先ほどお話させていただいたように与信モデルとか不正検知みたいなものはこの先もやり続けると思うんですね。それがうまくいってくるとお金の流動性がどんどん高まるなと。先ほどのはお金がない中で与信枠を与えて1ヶ月後に返すという、お金自体を滑らかにしていると思うんですけど、さらにそれを長期化していく。

例えば、「1ヶ月じゃなくて3ヶ月でもいいですよ」「もっと長期的に、とあるタイミングで1回清算すればいいですよ」とかができればいいんですけど、滑らかな社会を築くためにどんどんそういうかたちでお金の流動性を高めていこうとは思っているんですね。

次のチャレンジとしてはお金の自由度はあがったけど何すればいいの? とか、何が欲しいの? とか、その人の欲求を満たす推薦と検索の領域が本当に重要になってくるなと思っていて、次はそこのチームを立ち上げようかなと思っています。

我々もマシンラーニングはすごく大好きだし、どんどん極めていきたいんだけど手段の一つとして捉えていて、会社のミッションの「信用を創造して、なめらかな社会を創る」、そういった社会を一緒に築けるようなエンジニアの方とぜひ一緒に働きたいなと思うので、ぜひ興味を持っていただいたら、ジョブディスクリプションもありますし見ていただいて、コミュニケーションを取っていただけるとうれしいです。

Preferred Networksの成長環境

谷脇:Preferred Networksは、今はまだ新しい事業をどんどん作っていくフェーズになるので「私はここしかやりません」みたいな人よりも、抜け漏れが絶対に発生するのでそういうところをどんどん拾って、周りと協力しながら進めていける方にはすごく働きやすい環境だなと思っています。

とはいえ専門分野以外がわからないことが多いと思うんですけど、そういうのをキャッチアップすることに会社自体がすごく協力的です。例えば、いろんな機械学習の勉強会だったり、論文とかの勉強会だったりを社内でいろいろやっていて、そういう研究の方からのインプットもすごい多いので、キャッチアップするモチベーションのある人にとってはすごくおもしろい環境かなと思います。

藤倉:今後のチャレンジみたいなテーマだったのに、各社さんは人がほしいみたいな話にしかならないと。

(会場笑)

だから、あれですよね。それはそうなんですよね。それは逆の言い方をするとやれることはまだあると思っているし、それが事業につながる可能性も考えているんだけど、リソースは限られているので、まずは先立つものがほしいという話なんですかね。

(一同笑)

西場:でもSansanさんも同じなんですよね?

藤倉:それはそうですよ! それはそうでございますよ。

(会場笑)

西場:どういうチャレンジを?

機械学習分野にはまだまだチャレンジの領域がある

藤倉:そうですね。先ほど言った例えばレコメンデーションみたいなものもまだ法人向けのほうだとベータ版として、もう利用者さんにはすでに使えるようになっているんですけど、まだまだ精度は上げる余地があると思っていますし、別のアプローチもあるなと思っているんですね。

あとはデータ化の部分もうちは「人力をけっこう使ってます」という話をさせてもらったんですけど、人力もいわゆるクラウドオペレーションというかクラウドワーカーたちを使っているので、数十万人単位の人たちが裏で動いているんですね。

もちろん可能であればそれを100パーセントソフトウェアの力に変えたいですし、ただ今はソフトウェアだけだと難しいから、人力も合わせて使っているという話なので、まだまだチャレンジの領域はありますからね。

そういう意味では機械学習のエンジニアの方々が来て、それまでこの手のものは、今までできなかったことをできるようにする、わりと進化の大きい領域なので、やりたいことややれることはまだいっぱいありますよね。

谷脇:そういう意味で言うと、機械学習周りだと弊社は国際的な論文を出していたり、すごい開発しています。年間何度も通して特許とかも取ったりするので。

それを研究で終わらせず、どうやって事業化していくかということを考えるのがすごいチャレンジだと思いますね。

藤倉:みなさん何か言い残したことはないですか? 向こうから「残り0分ですよ」という札も出ていますが、ここまででいったん大丈夫そうでしょうか?

ということで、みなさんそれぞれ成功体験もあり、課題もあり、人のほしさもありというところで。このあとの懇親会で細かいことをお聞きいただければなと思います。ここでパネルディスカッションは以上でさせていただきたいと思います。ありがとうございました。

西場:ありがとうございました。

(会場拍手)