第31回目のインタビューは、ヤフー株式会社 CTO 技術戦略本部 TI室 室長 角田様 ・ TI 宮崎様にお話をお伺いしました。
2017年、スーパーコンピューターの電力効率を競うGreen500にて世界第2位を記録した「kukai」。
今回は、開発に携わったお二人に、kukai導入に至るまで、導入からGreen500獲得まで、導入後のkukai実用化にスポットをあてお話を聞かせていただきました。
また、2018年2月に発表された「データフォレスト構想」により、Yahoo! JAPANが保有するビッグデータを活用し、新たなインサイトを発見することが可能となります。この実現にもkukaiが活躍し、サービスの改善等に活かされております。
まず角田様と宮崎様が入社される前にしていたこと、そして入社してからkukai導入に至るまでの経緯をお伺いできればと思います。
角田様:
それでは私から話します。私がYahoo! JAPANに入社したのは2005年の8月で中途入社です。それまでに2社を経験していて、Yahoo! JAPANが3社目でした。Yahoo! JAPANに入る前は、Webのシステム開発やネットワークのサポートなど、IT関連のことは基本的に何でもやるような感じで、本当に雑多な仕事をしていましたが、Yahoo! JAPANに入ってからはサービスの開発を中心にやっていました。
今回のスーパーコンピューターとの関わりとしてはデータやAIという繋がりだと思います。そのようないわゆるデータ領域に携わるようになったのが2012年ぐらいからで、そこからいわゆるビッグデータやデータサイエンスに取り組んできました。今回のスーパーコンピューターkukaiに関するような業務をいつから行っていたかは曖昧ですが私のイメージでは2015年ぐらいからではないかと思います。
次に、宮崎様、お願いいたします。
宮崎様:
私は2011年に中途入社しました。もともとは大学で生物系を基本として研究員をしていました。そのときは脳の研究をしていて顕微鏡で撮像した画像の解析を行っていました。その後、つくばのベンチャー企業に入り、画像処理や動画のアルゴリズムの開発をしていました。
その後、Yahoo! JAPANに入り、ここでも画像認識などに携わっています。画像認識は、私が入社して2年ぐらい経った時、ディープラーニングという大きなブームがやって来て、それまで使われていた画像認識のアルゴリズムとは全く違う系統の方向になったことで劇的に実用化という話になってきました。ただ、ディープラーニングになったことでたくさんのデータを用意して大規模な計算機を使って計算する必要が出てきました。そこで、画像認識をやるためにハードウエアをいろいろ追究し始めたという感じです。そのような流れから「kukaiをやってください」と言われ、今回の話につながってきています。
そうなんですね。入社されるまでは扱うデータ量は今と比べていかがでしたか?本格的にビッグデータを扱うようになったのはスーパーコンピューターを作ろうとしてからのことでしょうか?
角田様:
そうですね。私がデータの取り組みを始めた2012年頃は世間的にもビッグデータというワードがすごく飛び交っていた時代で、Yahoo! JAPANでも検索ログとかアクセスログとかそのようなデータを中央集権的な形で管理していて、全社的にかなりのデータ量を扱っていました。しかし正直なところ今ほどうまく生かし切れてはいませんでした。
当時ビッグデータのトレンドのシステムであったHadoopを大規模に導入して、日本で最大級、世界的に見てもかなりトップクラス規模のクラスターを作りました。その当時、どちらかというとAI的な側面よりはデータ解析や集計などアナリティクスを行うためのベースとなるデータを作る基盤を中心に取り組んでいました。
一方、サイエンスのほうではYahoo! JAPANの様々なサービスに適用する際に必ずしもビッグデータを使っていたわけではありませんでした。ビッグデータを存分に活用していたのは広告といった一部だけでした。他は比較的小さなデータで機械学習のアルゴリズムや特徴量をチューニングする方向で精度を高めていったケースが多かったように思います。時を経てディープラーニングのブームが来て、大量のデータをニューラルネットワークで学習させることによってデータ量が多くなればなるほど精度がどんどん上がってくることが分かってきました。そのようなことから大量のデータをディープラーニング処理にかけるニーズが今後出てくるだろうと予想しました。そこでそれに耐え得るハードウエアの必要性が出てきてkukaiの開発のきっかけに繋がったと思っています。
2017年にGreen500でkukaiが世界2位になりました。今から2年前のことになります。そのときの思い出深いエピソードはありますか?
角田様:
思い出深いのは、Green500ベンチマークのスコアを登録する締め切り日時の、もう本当にぎりぎり数時間前にあった出来事です。私は出張でアメリカにいたのですが、帰りの空港に行こうとしていたときに宮崎からリポートがメールで送られてきました。最新のベンチマークの値がものすごくいいけれども、TOP500に落ちる可能性がありますという内容でした。
Green500にランクインする条件として、まずTOP500にランクインさせることが必要です。その前提条件であるTOP500に落ちる可能性があるけれども、もし載ったらGreen500で大きな結果が出せるスコアと、確実にTOP500には載るけれども Green500的にはそれなりのスコアと、最終的にどちらを採用するかを問われました。
今回のプロジェクトでは何とかしてGreen500にランクインさせたい思いがあるものの、かなり慎重になっていました。もちろんチャレンジングな取り組みということで失敗してもそれなりに許容してくれるとは思っていましたが、ここまで頑張ってきたのでランクインさせたい気持ちがありました。また、出ている数値はランクインすればかなり上位にいくのが確実と思われるようなものでしたので、どちらを登録するかについては2人で随分とやりとりを重ねました。その日は日本時間では土曜日か日曜日で、いずれにしても休日でしたが駄目でもともとと思い、経営層の方たちに判断を仰ぐべくメールを送ってみましたが残念ながらすぐに返信は来ませんでした。
締切を過ぎた後に来た回答は私たちに任せますというもので、最終的に私たちに決めさせてもらえて本当に良かったと思っています。私が「やるならチャレンジングなほうにしよう」と言って、意見を押し通したこともあって、いわゆるTOP500には落ちるかもしれないぎりぎりのラインを攻めてGreen500ではかなり良い数値のほうを採用しました。登録用のアカウントは私が持っていたので、日本に帰る飛行機の搭乗コールが鳴る数分前ぐらいに大急ぎで登録して、もう最終コールが鳴っているときに飛び乗るような感じでした(笑)
臨場感溢れるkukai裏話ですね!その時の情景が目に浮かびます! 宮崎様は思い出深いことはございましたか?
宮崎様:
エピソードはいろいろありますが、その中でも私が思い出深いのは、時系列的に言うと締め切りの直前にあった出来事です。本当に締め切りぎりぎりのタイミングで一回システムが故障しました。修理して最後に計測というタイミングで取ったデータが先ほどの角田の話に出た数値でした。その時は、もう修理が終わった段階で結構遅い時間になっていたので、直後に解散しましたが、私は諦めきれずに解散した後に帰りの東京行きの新幹線の中でベンチマークを走らせてみました。そこで、そこまでの段階で出ていた数値よりもかなり良い数値が出たわけです。故障でしばらく止まっていた間に設定を変えたこともあって、まず私は何か間違えたのだと思いました。その時に実は1個パラメータを変えていて、それで結果的に良い数字が出たことが分かりました。しかし最初に数値を見たときは何かおかしいと思い、そのことが気になって仕方がなかったので大宮駅のホームで数値を全部チェックしました。
値が良過ぎると思って全部チェックしたのですが、間違っている所はなさそうだと分かり、少し安心して、先ほど話に出たとおり、良い数値が出たことを角田にメールで伝えました。
角田様:
宮崎からのメールは、もしかしたら何かエラーの可能性もありますということや、ベンチマークを取っている間にkukaiのハードウエア自体が壊れたりすることもあるので、もう二度とこの値は再現できませんというような内容でした。
大宮とアメリカでそのようなやりとりをしていたわけですね!?
角田様:
そうです(笑)
宮崎様:
ぎりぎりのところでした(笑)
今までWebのニュースなのでkukaiにまつわる色々な話を読んできましたが、この話は初めて聞きました。とても面白いお話でした!
角田様:
確かにインタビューで話したのは初めてですし、たくさんあるエピソードの中の一つでもあります。
世界2位になってからkukaiが社内で徐々に活用されるようになったと思いますが、kukaiが入る前はどのような形でシステムを運用されていたのですか。GPUマシンを何台も使うような環境でしょうか?
角田様
そうです。kukai前はそもそもマルチGPUやマルチノードで動かすケースがあまりなかったというのが実情でした。先ほどもお話ししたとおり、データ集計などの処理に関してはHadoopが担っていました。いわゆるデータサイエンス、機械学習的な処理というのはサイエンティストが手持ちの研究用のマシンでやることがかなり多かったので、ローカル環境でデータを作って何かしらモデルを作成して検証を行い、うまくいったら本番で適用してみる、というプロセスが最も一般的でした。
これは今でも大体がそうです。kukaiを作る前でもいくつかGPU環境はありましたが、基本的に1人がシングルGPU環境で試すことが比較的多かったように思います。
kukaiの導入によって何日もかかっていたものが数時間で終了したという話を聞いたことがありますが、かなり変わりましたか?
角田様:
だいぶ変わったと思います。プレスリリースやメディアとして公開されているケースでは、特にうまくいったケースをとりあげてます。こういった事例が次から次へと出てきているわけではないですが、これからだと思っています。当時はそもそもマルチGPUやマルチノードでディープラーニングを処理することが技術的にとてもハードルが高かったので、誰でも簡単にできることではなかったと思っています。
しかし最近では、その辺りのナレッジがたまりフレームワークなどが対応してきて、ある程度ハードルが下がってきていますのでkukaiのスペックを生かした形でのGPU処理が増えつつあるのではないかと思っています。
少し前にYahoo!知恵袋の検証をしているというお話を角田様から聞いた数か月後に私が読んだ記事で、9カ月かかっていたものがkukaiでは1日半でできるようになったことを知りました。
これはすごい!と思いました。今、Yahoo! JAPAN様はビッグデータを活用したデータフォレスト構想が話題になっていますが、その説明の中でkukaiを使った実用化事例が公表されていると思います。
例えばヤフオク!のお話では偽物検知や、それからGYAO!やYahoo!トラベルのレコメンドについて等・・・。角田様や宮崎様は直近ではどの辺に携われてるのでしょうか?
角田様:
私と宮崎は、そのような実際のディープラーニングを使ったサービス改善に直接関わることはあまりありません。kukaiを提供してメンテナンスや運用など実際に使ってもらうところにフォーカスしている形です。今挙げてもらったような実際のサービス改善にkukaiが使えるよう、そこの場所というか環境を提供する形で関わらせてもらっています。その際に何かしらのトラブルや困ったことがあれば相談を受けることはたまにあります。基本的に私たちはkukaiの環境を提供し、それによってサービス側がその環境の中でいわゆる実装してサービスに生かすという関わり方です。
ただ、Yahoo!知恵袋に関しては中心的に関わったメンバーが私と宮崎と現在同じ部署にいるという偶然もあり、若干密な形で情報のやりとりをした部分があったと思います。
そうなんですね。以前、Yahoo!知恵袋で不適切な質問や回答を検知するアルゴリズムの開発に苦労したという話を読みましたが、今回はサービスサイドのお話ではなく、開発サイドのお話の方がお話されやすいですよね。
角田様:
そのような苦労については同じチームだったので普通に聞いていました。うまくいかないこと、データを集積すればするほど確かに精度が上がること、この手法を使うと精度の違いがこれだけ出ることなど、そのような試行錯誤の過程を聞いたりはしていましたし、サービスのほうもある程度は把握しています。
Yahoo!知恵袋の質問と回答にある口語表現部分のアルゴリズムを開発するのが大変だったそうですね。5000から1万パターンを作ったところで限界を感じて、その後、Twitterの対話モデルを基にアルゴリズムを開発したと・・・。
角田様:
Yahoo!知恵袋の質問と回答のペアのデータ構造がTwitterのリプライと似ているという考えです。例えば、ただいまとツイートしたらリプライでおかえり、この女優はかわいいよね、そうだよね、俺はこっちのほうが好きというようなものです。
そのようなTweetのペアと知恵袋の質問回答が似ているということでTwitterのデータが使えると思ったことと、リアルタイム検索というサービスを提供しているためにTwitterのデータを大量に保持していたことに気づきました。そこで、まずいわゆる対話的な会話をしているデータのみを集めてkukaiに学習させました。それをYahoo!知恵袋の質問回答的な構造に合わせてみたらうまくいきました。
会話になっていない不適切なもの専用の共通データも作って出していると聞きました。kukaiは大活躍していますね。
角田様:
そうです。大活躍です。おかげさまでkukai1、kukai2共に今も順調に使ってもらっています。
ありがとうございます。では次に、kukai1から1年後にkukai2を導入されていて、納品は確か昨年の9月だったと記憶しています。実際に稼働したのは9月よりも後と考えますと、ヤフオク!の偽物検知のサービスはkukai1のほうで行ったのでしょうか?
角田様:
そうです。偽物検知に関してはkukai1で処理したものです。
そうなんですね。では、kukaiの利用環境について伺います。
社内ではどのような形でリソースを配分しているのでしょうか?
宮崎様:
期間を登録してもらうようにしています。どのくらい登録するかは使いたい人同士で融通し合ってもらっています。だから誰か一気に独占する人がいると他の人が使えなくなってしまうこともあります。その辺は空気を読んで譲り合ってやってもらっています。
角田様:
今はそのように人的リソースの面で問題があって、kukaiに関してはインテリジェントなリソース管理があまりまだできていない状態なので現状としてはkukai1とkukai2を併せた形で、複数ノード単位で切り分け、それらに対して使いたい人を割り当てる形でやっています。
今はkukai1、kukai2共にたくさん使われている状況です。どのノードに対しても何かしらのアカウントというか使っている人がいて、もう空きがないというケースはたまに起きているのでやはり将来的には先ほど言ったようなインテリジェントなリソース管理を導入したいと思っています。
ありがとうございます。
また、質問がサービスのほうに寄ってしまいますが、データフォレスト構想の話を伺いたいと思っています。私自身がWebを担当していることもありユーザーインサイトにはとても興味があります。ぜひお聞かせください。
角田様:
これは先日、社外に向けて発表したものです。Yahoo! JAPANは、先程お話したように大量のデータを持っています。どのような人たちがどのページにアクセスしているか、どのようなキーワードで検索しているか、どのような商品を買っているかなど、いろいろなデータを持っています。そこからいわゆるトレンドや傾向が分かります。不定期ですが、そのようなものをまとめていくつかリポートを出しています。例えばインフルエンザです。
ここ数年、Yahoo! JAPANはインフルエンザの流行を事前にリポートしています。それはYahoo! JAPANにあるデータを基に、予測したものです。例に挙げたのはインフルエンザの予測ですが、このような分析手法は新商品の開発など他にも応用が期待されます。このようなアイテムがはやりそうとか今度発売されるこのようなものが実はこの年代の人の間ですごく人気が出そうとかトレンドが予測できると考えています。あるいは東京ではこれがはやっているけれども関西では違うとかそのような地域的なトレンドもデータから読み取ることができます。
このようなデータはYahoo! JAPANのサービスに生かすのはもちろんですが、他の企業にも活用してもらえるのではと考えました。例えば食品を開発している企業、あるいは別の製品、車とか化粧品とか、そのようなものを販売している企業です。トレンドやニーズを踏まえた新商品の開発や機能改善のために、データから導きだされるインサイトを提供するという形でお手伝いができると考え、事業化も目指しています。
データフォレスト構想としてYahoo! JAPANのデータ、または企業や大学、あるいは公的機関や研究機関などいろいろな所のデータを組み合わせることによって新たなインサイトを発見することが可能です。そしてそれを基に何かしらその企業の事業に貢献したり、あるいは公的機関、日本全体をより良くしたりできると思っています。最終的には日本に住んでいる人々のより豊かな生活を実現するため何かしら貢献できると考えています。今はまず第1弾として、先ほど申し上げたとおり、Yahoo! JAPANの持っているデータを他の企業や自治体のデータと掛け合わせて分析し、一部そのようなインサイトという形でトレンドやレコメンデーションエンジンなどの提供に向けて取り組んでいます。
クライアント企業とYahoo! JAPANのIDを紐付けてサービスに生かすということができると聞いていますが、ユーザーの興味や関心を把握してそれを提供するサービスは、弊社のような一般企業でもいずれ便利に使えるようなものになりますか。
角田様:
どのようなユーザー層にどの商品やソリューションをアプローチしたらいいかというような課題は各企業とも多かれ少なかれそれなりに持っていると思っています。ターゲットごとの興味や求めているもの、商品などのトレンドを把握するお手伝いとして私たちのデータフォレストのソリューションが何かしら貢献できるのではないかと思っています。日本では数千万人がYahoo! JAPANを使っていて、また弊社には100以上のサービスがあるので多種多様なデータが揃っています。ですから大げさに言えばYahoo! JAPANのデータを調べることで日本の傾向が分かるということです。今はこのような想定の中でソリューションを作っている形です。
それが生かせるのは個々人のインサイトが分かるので、私としてはB to Cのビジネスのほうにより有用ではないかというイメージがあります。
角田様:
そのとおりだと思います。一方で、B to Bのケースでもその先に一般ユーザー層のようなものがあると思います。あるいはトレンドをつかむことによって、B to Bの動きを予測することもできると思っており、使い方次第ではないかと思います。
以前角田様は、「日本のインターネットを良くするために全知全能なAIを作りたい」と話されていましたが、kukai導入によって何か大きく飛躍できた点はありましたか?
角田様:
kukaiを導入したことによってYahoo!知恵袋やヤフオク!で皆さんに目に見える形でいくつか大きな成果を生み出すことができました。そのような意味でkukaiを導入した価値はあったと思っています。なおかつ今回のようにいろいろな所で取り上げてもらって、Yahoo! JAPANがAIという最新のテクノロジーを使ってより良いサービスをつくっていることがアピールできていると思いますし、歴史上Yahoo! JAPANは日本のインターネットをリードしてきたと自負しています。
kukaiの導入は、Yahoo! JAPANが最新の技術で引き続きリードしていくという点で、一つの大きな役割を果たしているのではないかと思っていますが最終目標である全知全能には当然のことながらまだまだです。私たちはサービスを通して得られたデータからつかんだ発見やインサイトを生かして今後もサービス向上に取り組んでいきたいと思っています。
ユーザー側として、よりユーザビリティーの高いサービスが増えることは楽しみです!
kukaiの導入後は専用の開発部隊というかデータサイエンティストの人数は増えていますか?
角田様:
kukaiの導入がきっかけかどうかは分かりませんが、Yahoo! JAPANは、データを強みとした戦略を進めていますので全社的にデータサイエンスには非常に力を入れています。その中でkukaiの導入によって強力なGPUを生かしたディープラーニングの環境ができたので、先ほども話したようにkukaiの利用者がとても増えています。社内ではディープラーニングという観点でのデータサイエンスへの取り組みは引き続き増えていると思っています。
ただ、データサイエンティストを今後もっと増やしていきたいとは思いつつも、一気に増えるかというとそうではないと思っています。データサイエンティストになるためのハードルがとても高いからです。
これは日本に限らず世界のどこの国でもそうだと思いますが、データサイエンスの分野では人材不足や育成に対する難しい課題があると思います。その一つのソリューションとして、弊社ではディープラーニングの知識やスキルがなくてもその効果をある程度の学習で得られるようなプラットフォーム的なものを作ろうとしているところです。現在、その取り組みがkukai上で行われています。
そうなんですね。kukaiはプラットフォームを作るというところでも活躍しているのですね。
ではもう一つ、興味深いことをお聞きしたいと思います。kukai1がGreen500で2位になりました。またGreen500にチャレンジすることはkukai2も含めて何かお考えですか?
角田様:
まず、Green500にチャレンジしたきっかけについて話します。最初にスーパーコンピューターを作ることになったとき、単に作るのではなくて何かYahoo! JAPANらしい特徴を持ったものを作ろうという話になりました。Yahoo! JAPANらしいスーパーコンピューターがどのようなものかを考えたとき、私たちの課題の一つである電力コストに目を向けました。
私たちはデータセンターというインフラを持っているため電力コストをすごくシビアに考えていて、できるだけ省電力に努めていますので、スーパーコンピューターも省電力に特化する形でやってみることになりました。そしてちょうど省電力スーパーコンピューターのランキングであるGreen500があったわけです。省電力を定量的に示すことができると考えチャレンジしました。
私たちはkukai1で2位になったことで電力効率の高いスーパーコンピューターが導入できたと自負していますし、世間にもそのことを示せたとも思っています。ですから次のフェーズとして、私たちはサービスの改善や活用にスーパーコンピューターを最大限に生かすことにフォーカスしています。
ありがとうございます。次の記録へのチャレンジというよりは次のフェーズはkukaiを活用してサービス へ展開するということなのですね。
さて、最後の質問になります。弊社はExaScaler社のシステムインテグレーションや運用サポートをしています。今後、弊社に対して期待することがあればぜひお聞かせください。
角田様:
Yahoo! JAPANのインフラはシステムを含めて基本的に自社で管理運用しています。なぜかというとYahoo! JAPANのサービスを安定的に届けることでユーザーにいつでも安心して利用してもらいたいからです。また、日本のインターネットを支えているという自負もありますし、いつでもつながるという信頼性や安定性を重視していることもあります。例えば地震が起きたときもYahoo! JAPANのトップページにすぐにアクセスして調べる人が多いので、いつでもアクセスできる環境が求められます。そのため自社運用という方法をとってそれを支えるインフラの安定性を追求しています。
しかし今回の場合はkukaiというスーパーコンピューターで、しかも液浸システムという一般的なYahoo! JAPANのシステムとは全く異なるアーキテクチャとスペックを採用しています。そのためプロフェッショナルであるHPCシステムズさんが最適だということでお任せしている形です。
今のところkukaiがオンラインで使われることは想定していないので、安定性という意味では他の一般的なシステムと比べてそこまで要求は厳しくはないと思っていますが、今後kukaiやディープラーニングをはじめとするAIがYahoo! JAPANのいろいろなサービスに使われることになるので、私たちが求める高いクオリティーの安定性を実現するためには、そのプロフェッショナルであるHPCシステムズさんのお力が必要だと思っています。Yahoo! JAPANが引き続き良いサービスを安定して提供できるようこれからもご協力をお願いしたいと思っています。
大変うれしいお言葉ありがとうございます。
また、たくさんの興味深いお話をお聞かせいただきありがとうございました。
ぜひ今後も安定稼働ができるようサポートしてまいりたいと思いますのでよろしくお願いいたします。
平日9:30~17:30 (土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)