あまり知られていないFacebookの機械学習ツール「FBLearner Flow」とは:「The Next Platform」で読むグローバルITトレンド(5)(1/2 ページ)
機械学習フレームワークでは、GoogleのTensorFlowが人気を博しているが、Facebookは「FBLearner Flow」というツールを自社開発し、同社エンジニアの4分の1が使っているという。このツールは、業界に大きな影響を与える可能性を秘めている。
英国のIT専門媒体、「The Register」とも提携し、エンタープライズITのグローバルトレンドを先取りしている「The Next Platform」から、@IT編集部が独自の視点で“読むべき記事”をピックアップ。プラットフォーム3へのシフトが急速に進む今、IT担当者は何を見据え、何を考えるべきか、バリエーション豊かな記事を通じて、目指すべきゴールを考えるための指標を提供していきます。
われわれは何年も前から、機械学習(ML)が次のプラットフォームの重要な要素になると確信している。実際、機械学習はこの新たなスタックの最も重要な部分かもしれない。それだけに、機械学習の運用方法をコントロールする企業が、将来のアプリケーションやシステムの在り方を、かなりの程度コントロールすることになるだろう。
機械学習は、ハイパースケールデータセンターのキラーアプリだ。数十年前に、モデリングやシミュレーションがスーパーコンピューティングセンターのキラーアプリだったのと同様だ。だが、われわれにはまだ「機械学習」という氷山の一角しか見えていない。今、目立つのはGoogle、Facebook、Baidu、Amazon、Microsoftなど、機械学習が実際に役立つどころか、必要なほどの膨大なデータを持つ大手インターネット企業がノウハウに磨きをかけ、自らの帝国を支える開発および本番プラットフォームに結実させていることだ。
Googleにおける機械学習の展開
2011年、Googleの最初の機械学習プラットフォーム「DistBelief」が導入され、数千台のサーバに搭載された数万個のCPUコアを使って、ディープニューラルネットワークを訓練するのに利用された。GoogleによるとDistBeliefは使いにくく、Google自身のインフラに緊密に結合されていた。そのため、同社はより汎用(はんよう)的な優れた機械学習プラットフォーム「TensorFlow」を開発し、2015年11月にオープンソースとして公開した。TensorFlowフレームワークは、CPUシステムやCPU-GPUハイブリッドシステムを使ってさまざまな機械学習アルゴリズムを訓練するためだけでなく、完成した機械学習モデルを本番アプリケーションにプッシュする目的でも利用されている。
Google社内では目覚ましいペースで機械学習アルゴリズムの導入が進んでいる。そしてもっと重要なことに、われわれには、多数の専門家を抱え膨大なデータを持っている大企業でなければアルゴリズムを完成させることができないように見える。GoogleやMicrosoft、Amazonなどが、機械学習ノウハウをサービスとして販売し、収益化しようとするとともに、積極的に顧客のデータを保存、蓄積し、アプリケーションの機械学習アドオン用に処理サービスも提供するだろうと、われわれは予想している。
しかし、機械学習はこうした企業のプラットフォームの魅力を高める方法の1つとなるだけでなく、特定の種類のデータ同士を相関できる唯一の方法として機能する。世界には、同時通訳者やインターネットのスピードで写真の識別ができる人は不足している。近いうちに機械学習は、今は人手が必要なあらゆる種類のプロセスに適用されるようになると予想している。
Googleは、世界の人々が自由に技術を開発し、利用するのを後押ししたいと考えている。そのために同社は、コンテナ管理のための「Kubernetes」(Googleのクラスタマネジャ「Borg」に触発されたもの)のようなツールをオープンソース化したり、システムモニタリングのための「Prometheus」(Googleの「Borgmon」ツールに触発されたもの)のようなプロジェクトを積極的に支援したり、TensorFlowを本番運用への移行完了を待つのではなく、移行途上の段階から公開したりしている。
Googleは、技術を公開し、業界がそれらの開発を協力して進められるようにすることのメリットをFacebookから学んだ。技術を解説した研究論文を公開するだけでは、業界がGoogleの技術と互換性のない派生技術を開発することもある。HadoopとMapReduceフレームワーク、Hadoop Distributed File System(HDFS)がその例だ。
Facebookが機械学習に力を入れる理由
Facebookは、モダンなインフラと高度なアプリケーションプラットフォームに関する深い洞察を持つ技術者を擁しており、世界有数のソフトウェアおよびハードウェアエンジニアのマインドシェアと採用シェアの獲得にしのぎを削っている。最も優秀な技術者層を引きつけるには、最も優秀な技術者層が働いている場であることを示すしかないからだ。Facebookにとっての最良の方法は、インフラのイノベーションを着実に継続し、オープンソースコミュニティーに公開することだ。
Facebookは機械学習をサービスとして販売したり、機械学習のサポートサービスを提供したりするようには見えない。だが、売上高と利益を伸ばすことと、業界でGoogleなどよりも自社のAIフレームワークが採用されることを目指し、機械学習を自社のソーシャルネットワークの全ての適所に深く組み込もうとしているのは確かだ。
2016年5月、Facebookは同社の機械学習プラットフォーム「FBLearner Flow」(縮めて「Flow」とも呼ばれる)を発表した。われわれは、同社がこの技術を(オープンソースとして)いずれは公開すると予想している。ハイパースケールデータセンターにおける多くの技術と同様、FBLearner Flowはインフラの複雑さを隠蔽(いんぺい)し、自身の技術(この場合は機械学習)を使用する作業の多くを自動化することで、ソフトウェアエンジニアがインフラではなく、コードとアルゴリズムに集中できるようにすることを目的としている。
FBLearner Flowはどのように生まれたのか
Facebookのソフトウェアエンジニアであるジェフリー・ダン氏によると、2014年、FBLearner FlowはFacebookで使われていたそれまでのシステムよりも優れたAIワークベンチとなるよう開発された。ダン氏はMicrosoftでクリック予測のための機械学習アルゴリズム開発に携わり、2011年にFacebookに移った。
ダン氏は、「われわれは、AIやMLを利用しようとする初期の取り組みの一部(各ユーザーへの最も関連度の高いコンテンツの提供など)において、精度の最大の改善が多くの場合、根本的に異なるアルゴリズムの適用ではなく、素早い実験、機能エンジニアリング、モデルのチューニングによって得られることに気付いた」と、FBLearner Flowツールを発表したブログ記事で説明している。
「エンジニアは、成功する新機能やハイパーパラメーターセットを見つけるのに数百もの実験を試みる必要があるかもしれない。われわれが評価した従来のパイプラインシステムは、われわれの使い方にはあまり向かないようだった。ほとんどのソリューションは、さまざまな入力を持つパイプラインの実行結果を返す方法や、出力や副作用を明確に捉えるメカニズム、出力の可視化、パラメーターの削除のような作業に関する条件に応じた手順を提供していなかった」(ダン氏)
そこで、FacebookはゼロからFBLearner Flowを開発し、機械学習アルゴリズムを一度作成したら、これをFacebookのソフトウェアエンジニア全員が利用できるようにした。これまでのところ、約4分の1のエンジニアがアプリケーションにAIを組み込んでおり、利用も急激に増えている。その中には、ニュースフィードの記事ランキングやトレンドトピックのハイライト表示、下品なコンテンツのフィルタリング、検索結果の順位付けなどが含まれる。
エンジニアが機械学習アルゴリズムを簡単に利用できるようにする上で同じく重要なのは、FBLearner Flowがアルゴリズムの訓練を自動化する方法だ。この方法では、多数のマシンにわたって少しずつ異なるバリエーションが実行され結果が示される。これにより、エンジニアはさまざまなアプローチについて、どのくらい有効かそうでないかが分かる。何が有効でないかを知ることは、時には、何が有効かを発見するのと同じくらい重要な場合がある。
Copyright © ITmedia, Inc. All Rights Reserved.