Googleの最新技術動向

司会者:それではさっそくですが、前半のプレゼンテーションパートに入っていきたいと思います。Google I/Oレポートと題しまして、及川さん、よろしくお願いいたします。

及川卓也氏(以下、及川):こんばんは、及川と申します。よろしくお願いいたします。

私は、Google I/Oというイベントでの発表を中心に、Googleの最近の技術動向についてお話をさせていただきたいと思っています。私の次が、(インフラジスティックス・ジャパンの)東さんと(日本マイクロソフトの)井上さんによる、MicrosoftのBuildというカンファレンスに関する講演です。

面白いことに、今年はGoogleとMicrosoftのイベントがほぼ重なっていたんですね。毎年ちょっとはずれていたのですが、このたびは1日早くMicrosoftのBuildが始まって、その翌日からGoogle I/Oが始まったので、同じ人が両方のイベントに出ることは不可能でした。

IT系の技術動向や各社の戦略がわかるカンファレンスとしては、このほかにも、AppleのWWDC(Worldwide Developers Conference)やFacebookのF8といった開発者向けのカンファレンスがあります。

今回はこの中から業界を代表する2社……おっと、AWSを抜かしましたね、IBMも抜かしました。いろいろと敵に回してしまったかもしれません(笑)。が、本日の登壇者が参加したカンファレンスということで、代表的なものとして今回はこの2社を選び、みなさんといろいろと技術動向を共有して、その活用などを考えていきたいと思っています。

簡単に私の自己紹介をします。現在はクライス&カンパニーの顧問というかたちで、技術系人材の採用のお手伝い、もしくはエンジニアのキャリア構築というところでもお手伝いをさせていただいています。

以前はMicrosoftやGoogleに在籍したこともございました。

7,000人もの技術者が集まった「Google I/O 2018」

Google I/Oは、もう10年も連続して開催されているものでして、一昨年から野外でやるようになりました。今年は7,000人強の参加者がいたと聞いています。

ブレイクアウトセッションが160以上、ほかに「Office Hours」と言われているGoogleの技術者に相談できる場所や、「App Review」という、実際に作ったアプリケーションをレビューしてもらう場があります。スライド左側には「Waymo(ウェイモ)」と呼ばれる自動運転車が実際に展示されていたりするのもご覧いただけると思います。

この写真からも雰囲気を読み取って頂けるかと思いますが、Google I/Oは、開発者が技術を習得するという場だけではなく、一種の祭典のようなかたちで、Google技術に興味があるエンジニアを世界中から集めて交流を図る場になっています。

今回は、Google I/Oでの発表を中心としながら、それ以外も含めて、Googleの最近の技術動向として、いくつかポイントをご紹介をさせていただきます。ここに書いてある5つの領域で分類します。

一番最初に、いわゆるコグニティブ、AI、機械学習と言われているところの話をさせていただきます。

まず最初に申し上げるのは、Googleは一昔前となる3年〜4年ぐらい前に、デスクトップではなくモバイルだということで、「モバイルファースト」という宣言をしました。スマホ中心であることや、AndroidおよびIOSに向けてユーザー体験を良くしていくと言っていたのですが、去年には「AIファースト」を宣言しています。

実際に、Googleはgoogle.ai (ai.google) というサイトを持っていて、ここに自分たちのAI戦略や技術情報を全部載せているのですが、面白いことに、もともとのGoogleのリサーチサイトを全部ここに集約しています。

つまり、Google自身の技術戦略や研究のテーマの主軸にAIが入ってきていることが、対外的にもはっきりとわかるようになっています。

従来のGoogleのサービスがAIで高機能化

Google I/Oの中ではまず最初に、いろんなかたちの応用について話されておりました。Microsoftさんもやられている医療への応用では、例えば、網膜の写真から健康状態がわかるというような話や、医療機関にかかった履歴などから、その人の健康の予測ができたりします。

あとはアクセシビリティというところでは、2人の話者が同時に会話した場合でも、音声の認識以外にビジュアル面での認識を用いることで、片方の話者の声だけを取り出せるようになっています。また、目の不自由な方がモールス信号で入力を行う機能などを発表していました。

製品への応用も、ほぼすべての製品に何らかのAI機能が入っているという状況です。例えばGmailで、今までもスマートリプライというかたちで、来たメールに対して返信を自動作成してくれていました。今回は、返信だけではなく、新たに文章を作るときも、まるで統合開発環境(IDE)のAuto-completion(自動補完機能)のように、どんどん文章を作成してくれるものが発表されています。

あとはGoogleフォト。これ自身はAIがないとできなかった製品なのですが、テキスト等を自動的に認識したら、PDFに変換してくれたり、色を一部分だけ目立つようにして、写真を見やすくしたり。もしくは白黒写真をカラー化するというようなことができるようになります。

あとはGoogleマップでも、機械学習を活用して、「あなた向け」という形でパーソナライズした情報を出しています。

また、日本ではまだ出ていないのですが、Google Lensという製品が昨年、Google I/Oで発表されまして、その強化といわれているところも出てきています。

テキストの抽出とか、あとは、まるで昔のSF映画の「マイノリティ・リポート」のような感じですが、カメラでポスターを照らすと、そのポスターのアーティストのビデオがすぐに流れたり、(ライブ)チケットの購入ができるなど、自分が必要としているものを機械が自動判定してサービスを提供してくれるということが実現できるようになっています。

AI技術を実感できる「Googleアシスタント」

今一番、コンシューマーの方にAI技術を感じていただけるのは、おそらく、アシスタント機能である「Googleアシスタント」だと思います。ここでもいくつかの発表がありました。たとえば、新しい“声”が追加されました。

米国にJohn Legendというアーティストがいるのですが、彼の声も今回追加されています。ただ追加すると言っても、当たり前ですが、Googleアシスタントで用いる、すべての会話を録音しているわけではありません。代表的なフレーズを入れるだけで、他の会話はシンセサイズされるようになっており、ここにAlphaGoを開発したDeepMind(という企業)のWaveNetという技術が使われるようになっています。

ほかにも、「Ok,Google」「ねぇ、Google」と毎回言わなければいけない面倒くささがが解決されています。いわゆるコンテキストの共有というかたちで、(Googleアシスタントに)1回呼びかけることによって、そのあとの会話がGoogleアシスタントに対しての依頼であるかどうか判断できるようになっています。

さらには、今は質問を1個1個しか聞けませんが、1つにまとめて質問できるようになります。これは高度な自然言語処理(NLP)などにより実現されています。

また、AndroidやIOSを使ったときに、ユーザーに対して、音声だけではなくビジュアルとともにサービスを提供した方が便利なことがあると思います。

たとえば、ホームオートメーションのような操作を行う際のように、「温度を何度に設定して」と言ったあと、ビジュアルでダイヤル操作をした方が微調整がやりやすいときには、そのビジュアル(ダイヤル操作の画面)を(表示して)提供できるようになっています。

また、これはニュースでも非常に大きく取り上げられましたが、電話での会話をコンピューターが勝手にやってくれるというものです。

デモの中では、実際の店舗にかけたものとして、ビデオというか音声が流れたのですが、(一つは)美容院の予約(の電話)。もう一つはレストランの予約というところで、とくにこのレストランの予約がなかなか要領を得ない会話だったにも関わらず、きちっと予約を完了するところまでできています。

ちょっとだけいうと、「これは本当にどこまでできているの?」といった話も、実はそのあと、米国のメディア等でもいろいろと言われているところがあるのですが、デモをしたということは、あそこまで完成度が高くないにしても、近い将来、同じようなことが可能ではないか、と予見されるものになっています。

着々と進化を続ける自動運転技術

先ほどもちょっと言いましたが、Googleの親会社であるAlphabetの子会社、要はGoogleの関連会社のWaymoの自動運転車の話です。Google I/Oの期間中、私はGoogleの本社があるマウンテンビューにいて、自動車で移動をしていました。

1日運転していると、もう二度三度は、この実験車に普通に会います。日本にいるとあまりそういった(自動運転の実験者に遭遇するという)経験はありませんが、向こうでは普通に日常に溶け込んでいるんですね。

そのように、かなりのマイル数の実験を重ねた結果、Waymoの自動運転車は高いレベルにまで進化しているのですが、今回、Google I/Oに初めてWaymoの担当者が登壇し、こんなことまでできるようになっている、ということを話しています。

1つは、こういった雪の悪天候の中、Waymo(の自動運転車)にはどう見えているかということ。

左側がまずそのまま見たもので、右側がその雪を除去したときに、ここまで鮮明に見えているという画像処理の結果を見せています。

この結果を受けて問題なく走れたかどうかまでは、はっきりとした言及はありませんでしたが、ほかの例も含めて、ほとんどのケースでは、人間が運転するよりも安全ではないかと思わせるようなレベルまで達していることがわかります。

ビジネスに機械学習を活用する際の2つの選択肢

ここまでが派手な感じのところです。AIでどこまでできるか、Googleの発表やデモについてお話ししましたが、では、みなさんが実際に機械学習等を活用してビジネスをやろうとするときに、どのような選択肢があるのかをお話しさせていただきます。

いろんな切り口がありますが、ここでは2つの分類のお話をさせて頂きます。まず、トレーニング(学習)済みのモデルを使うのか、それとも、自らトレーニング(学習)をさせてモデルを作るのかという分類が1つ。

もう1つがIoTによるエッジ側で、どこまで処理をさせるか、それとも、クラウドにかなり依存するかたちでいくかといった分類もありますので、それぞれで考えてみたいと思います。

(スライドを指して)これはもう機械学習、AIを見られた方はご存知のフローだと思います。データを集め、前処理(を行います)。アノテーションと言ってもいいと思いますが、ラベルづけをするようなかたちです。

そのあとに、実際にトレーニング(学習)させ、モデルが作成され、それをデプロイすると。実際にタスクや予測といった処理が行われるという、パイプラインになっているわけです。

この中で、先ほどのトレーニング(学習)済みのモデルを使うときには、前段の3つの処理は不要なわけです。

GoogleなりMicrosoftなり、ほかのいろんなクラウドベンダーなりが作っているモデル、たとえば画像認識のパッケージ、それを使うかたちになるわけです。それをクラウドで使うものもあれば、エッジ側で使うものもあると。

もう1つが全部やります、といったものですね。データを集め、前処理、アノテーション等をし、それからトレーニングを走らせる。ここで当然、どういったアルゴリズムがいいか、モデル作成には何が適しているか、という試行錯誤が入るわけですが、それを経て、実際にデプロイして使うということになります。

さらに申し上げますと、このクラウド側のものをさらにエッジの方に圧縮して使うこともありますし、エッジのものはエッジ用に最初から使うこともあります。エッジの場合は、このエッジ側のIoTといったものはコンピューティングパワーが非常に小さく、弱いものになりますので、ここで完全な学習をさせることはほとんどあり得ません。

ですが、ある程度できあがったモデルに対して学習をかける「転移学習」をやることで、カスタムモデルといったものが可能になります。

モバイルアプリ向け機械学習モデル「ML Kit」

では、今言ったようないくつかの処理とパターンがある中で、Googleは何を提供しているのか。自明なのが、もうできあがっているトレーニング済みのモデルをそのまま使いましょう、という部分です。ここでは、GCP(Google Cloud Platform)が持っているAPIとして使えるものを、そのまま使うということで、ここの6つがそのパターンになります。

その次に、全部自前でデータを集め、モデルを考え、実際にアノテーションを含む学習をさせるといったときのフローが、例えばGoogle Cloudで言うならば「Machine Learning Engine」を使うかたちになります。あとは「TensorFlow」で、自分でエッジ側のIoTの上に組んでいくことも可能なわけです。

こういったパターンになります。エッジ側で、というところでは、昨年のGoogle I/Oで発表され、今年になるまでGoogleが提供していた機能が、この「TensorFlowLite」と言われているAndroidの上で動くもの。この軽量版の「TensorFlow」になるわけです。

こちらで先ほど言ったように、基本はできあがっているモデル、もしくは、それを一部カスタムするようなかたちで使っていくと。これは先ほどちょっとお話ししたように、元々は「TensorFlow」のモデルを軽量化するというフローが入り、iOS、Androidの両方で動くといったものです。

今年のGoogle I/Oで発表されたものが「ML Kit」と呼ばれているものになります。これがちょうど、先ほど申し上げた「TensorFlow」よりもさらに抽象度が高い、使い勝手の良いものになっています。

この(スライドの)右側にあるように、もちろんエッジ側でそのまま使うこともできますし、あとはクラウド側のほうが「Firebase」との連携ができるようになっていますので、「Firebase」の方が提供しているクラウド側のAPIを呼ぶこともできます。

もちろんクラウド側を使った方が精度は高いけれども、処理性能が遅いといったトレードオフがありますので、そこでどちらを使うかを開発者が判断していきます。

今までは「TensorFlowLite」の上に、そのまま自分たちでなにかアプリを書くしかなかったのですが、「ML Kit」と言われているところに抽象度の高いレイヤーが加わることになりますので、そちらを使って考えていただくことができるようになっています。

この「Firebase」の方で持っているAPIは、テキストの認識、顔検出、バーコードスキャン、画像のラベル付け、ランドマーク認識、あとは将来的にスマートリプライが入ってくると言われています。

それぞれクラウド側でしか動かないもの、もしくはデバイス側でしか動かないもの、というかたちがありますので、現状ではどちらで使うかというところで、使える機能も限定されてきます。

機械学習の知識がなくても画像認識モデルを構築可能

(スライドを指して)これはまだβ版なのですが、一つだけあるのが、「転移学習」と言われているものをそのまま使うというかたちで「AutoML」をGoogleが出しております。

現状は画像認識だけなのですが、要はGoogleが持っている優れた画像認識エンジン、モデルをそのまま使い、そこに自らの画像をデータとして提供することによってカスタムできる。そういったものもGoogleは提供しております。

あと、先ほどGoogleアシスタントと言われているものが、AIを使ったユーザーにとって身近なものですよね、とお話をしましたが、そこで使われる開発系の機能が「Actions on Google」になります。これを簡単にご説明します。

今回そこ(Actions on Google)で大きく言われていたのは、この(スライドの)左側にあるディスプレイが、各ベンダーから出るようになっていますので、そこへのインターフェイスが加わったということが一つ。

あと、この「Dialogflow」と言われるところが、カンバセーションや、その部分を設定するためのツールになっているのですが、そこに機能がいくつか使われているというかたちになっております。以上がAI関係のところですが、Google I/Oで本当に多くのセッションや発表がされていました。

しかし、それを支えるインフラストラクチャーの部分に関しては、あまり発表はございませんでした。なぜかというと、いろんな企業さんがそうなっていると思いますが、開発系のイベントが細分化される傾向があります。

Googleも7月にサンフランシスコで「Google Cloud Next」を行います。そちらのほうにおそらく多くの発表が行っているということもあり、あまりクラウド系の発表はございませんでした。

いくつかセッションがあったのが「Firebase」についてです。「Firebase」本体の新しい発表もあるのですが、それよりも、活用に関してのセッションも多くありました。

「Firebase」本体での発表が、パフォーマンスをモニタリングすることが正式版になりましたという話や、あとは電話でSNSの認証というのをモバイルアプリがやることになるのですが、その部分のサービスがしっかり入っていたりというところです。

あとは「Firebase Testlab」というものがあります。要はテストを「Firebase」のほうに依頼すると、いろんな実機のデバイスでテストが行われ、その結果をクラウド上で見られるというものですが、そこに今回IOSが加わったことが「Firebase」の新しい機能となっております。

Android OSの最新版「Android P」

ほかのところは、先ほど言ったように、あまり発表がありませんでした。もしかしたら今日の後半のパネルディスカッションで出てくるかな、というところなので、スライドには一通りの機能を並べたのですが、基本的な機能としては「Google Cloud、GCP」も「AWS」も「Azure」も、持ち駒としてはほとんど一緒です。

インフラストラクチャーのところでもう一つだけ付け加えさせていただくと、今回、「TensorFlow」に専門化したベーシックである、プロセッサーであるTPUというものが発表されているのですが、それが次世代の3.0になりました。

これは写真等で見ると、我々の理解するサーバーに搭載されているくらいのチップかと思えば、とんでもなくでかいものでして、今回ついに空冷では間に合わず液冷式になっているというもの。Cloud TPUという、我々が実際にGoogle Cloudのように使えるものは、まだβのかたちなので招待制なのですが、それも試せるようになっています。

次にモバイル/IoTのところの話をします。「Android P」と言われている次のバージョンが発表されました。新しいシステムナビゲーション、要はUIです。簡単に言ってしまうと、iPhoneのXと同じようなかたちで、下からの縦のナビゲーションにおいてタスク切り替えができるというようなもの(機能)が加わっています。

もう1つは「Adaptive Battery」。これは裏にいわゆる機械学習の成果が入っているのですが、どんなアプリケーションがあなたにとっては一番重要で、このシチュエーションのときにこれを一番使っているでしょう、ということがわかると、それにバッテリーを優先し、ほかのものは省電力モードにするというようなことを自動的にチューニングしてくれます。

ほかに、「App Actions」というのは、「Actions on Google」と似ていますが、スマートフォンアプリに特化されたものです。例としては、イヤホンが突っ込まれたら自動的にLady GaGaの曲がかかる、といったかたちで、(ユーザーの)アクションに応じて、アプリ側のアクションが同時にキックされます。

「Slices」というのは、Androidの中における検索です。今まで検索の結果はアプリが立ち上がるのですが、いわゆるWebからのディープリンクと同じようなかたちです。

スマホ依存を解消する「Digital Wellbeing」

例えば、私がUberなりLyftなりを使っているときには、これはLyftの例ですが、「あなたは仕事場に行きたいんですよね」「自宅に帰りたいんですよね」とサジェストしてくれて、それをタップするとアプリの中のその機能が自動で起動されるようになっています。

面白かったのは、「Digital Wellbeing」というものをテーマに出していたことです。要はスマホ依存になってしまっている人たちのための機能が入っています。Dashboardがあったり、コントロールができるようになっていたり、ライトダウンをしてということで、Wind Downというのですが、それで夜寝る前には寝るモードに入りましょう、ということができるようになっています。

開発系のところでは3つのテーマがあり、1つはアプリの配布をより革新的にするものです。ここの図に書いているものが「Dynamic Delivery」というもの。今まではアプリをインストールしたら自分は使わない、例えば自分は日本語しか使わないのに、ほかの言語のUIが全部入っていたりもするわけです。それを必要なものだけをデリバリーするというような機能が入っています。

もう1つは、図にはしていませんが、Instantという機能が去年、実は発表されています。Google Play上では、いくつかのゲームにだけ提供されているところがあったんですね。けれども、それがすべてのゲーム系アプリケーションで提供することになりました。つまり、インストールしないでそのアプリの機能を一部楽しめるといったものになるわけです。

ほかには、開発を早くするような機能、あとはエンゲージメントを高めるような機能。これは先ほどご紹介した「Slices」ですとか、「Actions」というところになります。

IoT開発プラットフォーム「Android Things」

あとはIoTとしては、「Android Things」と言われるものが正式版になっています。AndroidのIoTというと「ADK」と言われているものがあります。「あれはどうなったのか」とGoogleの人に聞いても、誰も消息を知らなかったので、かなり危ないんじゃないかと思うのですが。

「ADK」というのは、Androidをつないで機能するArduinoみたいなものだったのですが、「Android Things」はRaspberry Piを含めて、いくつかの組み込み機器にAndroidの軽量版がそのまま乗るというものになっています。Androidアプリの開発手法がそのまま使えるということです。

同時に、クラウド側には「IoT Core」と言われているものが入っています。例えば、自分のIoTのほうのデバイスを、Pub/Subで常にHTTPSやMQQTといったところでアクセスできるようにしているものがあったり、あとはデバイスの管理や更新ができる機能がクラウド側にも用意されています。

これは典型的な利用例です。IoTのデバイスから実際にPub/Subでデータを取得したものが、例えば「Cloud Functions」のところでキックがかかり、ある機能が実行され、そのあとに「BigQuery」のほうに流れていって解析が走る。データを貯めたら、マシンラーニングの方に流すといったことが可能になるというものです。

次に、VR/ARについてお話しします。先に言っちゃうと、VRはたいしたアップデートはありませんでした。ちょっと肩透かしを食らったかたちです。ここに「Tour Creator」と書いてありますが、主に教育市場向けに、教育市場以外でも使えますが、簡単に撮った360度写真を組み合わせてVRを作れるようになりますよ、という機能が入っています。

ARに関しては、ここに書いてあるように垂直平面の抽出ができたり、あとAugmented Imagesというのは、ARとは何かのかたち、空間位置を特定できない限り、そこに現実を拡張するオブジェクトを置けないわけですね。そのときにARマーカーなどを置かずとも、そこにあるイメージを空間特定に使える技術があります。

Googleマップの経路案内がより分かりやすくなる

次にSceneformというところは、OpenGLなどの知識がなくても3Dのモデルが書けます、という話です。

「Cloud Anchors」は面白くて、AndroidとIOSの両方に対応しています。AR空間を複数人で共有できるというものです。例えば、私がここでCloud Anchorsを使ったアプリを立ち上げて、もう1人の方が見ていたときに、ここ(のアプリ上)で落書きすると、相手側にもそれが共有されるということが可能になっております。

面白かったのが、これはキーノートのステージで出ていたのですが、Googleマップが今回いろいろな機能を追加している中で、経路案内の例を出しています。

例えば我々も地下鉄から地上に上がって、「こっちだよ」と言われても、GPSも多少狂っていたりするし、(地上に)出てきても、十字路でどこかわからないといった場合がある。そのときにカメラをかざすと、矢印を出してくれて「あなたの方向はこちらです」ということをやってくれる。

これをやるときに、GPSだけではなくVPS(Visual Positioning System)という、昔あったTangoというARのプロジェクトで培ってきた技術も使われています。つまり、緯度・経度ではなく、画像からあなたの位置を特定するという技術があります。Googleはストリートビュー等で世界中の画像を撮りまくっているので、これが可能になっているわけです。

最後に開発系の話ですが、あまり開発というところだけで取り上げてはいませんでした。たとえばAndroidの「Kotlin」。JavaではなくてKotlinの開発をしている人がもう35パーセントにも昇るという話がありました。あと、個人的には、JavaScriptがかなり躍進していると見受けられました。

一つは「TensorFlow」のところがJSでもできるようになっている。実際、Webだけで簡単な機械学習が使えるようになっているということもありますし、あとは最終日にさらっと発表されたのですが、「Google App Engine」上でNode.jsが使えるということがありまして、これはJavaScriptフリークにとって、とても嬉しい話でありました。

あと「Flutte」というものがあります。Dartという言語があって、ChromeのVM(virtual machine)に入れようとしたのだけれども失敗して、Webの次のスクリプト言語としての位置づけはもう難しくなったのですが、なぜか蘇ってきました。

「Flutter」と言われている、いわゆるマルチプラットフォーム開発環境の言語としてDartを使っているというものがあります。この「Flutter」のアプリがかなりいろんなところに使われるようになっているということで、セッションもありましたし、「Office Hour」でも盛況でした。

豊富な選択肢をいかに組み合わせていくかが重要

あとはPWA( Progressive Web Apps)のところで、実際に「Progressive Web Apps」というのも、いわゆるモバイルを中心として、Web Appにネイティブアプリの環境をそのまま使えるようにしようということで、ホーム画面に追加したり。

さらにパフォーマンスを良くしたり、通知を出せるようにしたり、バックグラウンドで処理できたりするといったことがありましたが、これがGoogleだけじゃなく、AppleのSafariにも乗るということがもう決まっています。

少なくとも実装がかなり入っていますし、Microsoftさんも積極的に推進されていて、Windowsストアの中に「PWA」のアプリが登録できるようになっています。

「Web Development Tools」というところでは「Lighthouse」という、パフォーマンス部分のサジェスチョンをしてくれるもの。また、「Headless Chrome」という、要はChromeをレンダリングエンジンのところだけ使えるものがあります。テストの自動化やサーバーサイドレンダリングをするということをよくやられていると思いますが、そこで使えるようなものが出てきています。

先ほど説明した「Flutter」というのがこうしたものです。これはダイナミックなローディングができるため、この開発環境でちょっと直したものがすぐにこのアプリの画面に反映されて、そのテストができます。

「PWA」は先ほど申し上げた通りのかたちになっております。

駆け足で技術スタックを説明しましたが、ポイントとしてちょっと覚えておいてほしいし、かつ、みなさんが活用できるのと同時に若干難しくなっているのが、「すべてGoogleの技術で固めましょう、ということではない」ところなんですね。

選択肢がかなり増えています。

iOSのサポートもしていますし、一から作れるところも用意しているし、ハイレベルなところを使ってくださいというものもある。ですから、これをいかに組み合わせていくかが、Googleの技術を活用するときに必要なことではないかと考えております。はい、駆け足になりましたが、以上です。どうもありがとうございました。

(会場拍手)