Facebookは5月1日に、同社のデベロッパーカンファレンスF8で、新しいオープンソースのAIツールとしてAxとBoTorchの2つをローンチした。
BoTorchは、その名前からもわかるようにFacebookの機械学習フレームワークPyTorchをベースとするベイズ最適化(Bayesian Optimization)のためのライブラリで、かなり特殊なツールだ。一方のAxはもっと興味深く、AIの実験を管理、デプロイ、そして自動化するための汎用プラットホームとなっている。
どちらのツールもFacebookにおける同じ全体的なワークの一部であり、それはFacebookが「適応的実験」(Adaptive Experimentation)と呼んでいるものにフォーカスしている。実際にAxはBoTorchとつながり、そして内部的にFacebookはこの2つのツールを、Instagramのバックエンドのインフラストラクチャの最適化やユーザーアンケートの応答率の向上など、さまざまなタスクに利用している。
基本的に、BoTorchないし一般的にベイズ最適化なるものは、モデルの最適化を容易かつ迅速にしてデータサイエンティストがなるべく早くプロダクション級のモデルを得られるようにする処理だ。通常は大量の試行錯誤を要し、サイエンスというよりアートだと言われることも多い。Facebook AIでPyTorchを担当しているプロダクトマネージャーのJoe Spisak氏は「アートを取り去り自動化する。目標は最新の研究成果をフルに活用することだ」と言う(ベイズ最適化の日本語参考ページ)。
ベイズ最適化ツールはBoTorchが初めてではないが、Facebookによると既存のライブラリは拡張もカスタマイズも困難で、しかもFacebookのニーズに合わない。
上図のようにAxがまず仕事を引き受け、BoTorchのモデルの最適構成を見つける能力を管理していく。そして、デベロッパーがプロダクション級のサービスを得られるようにする。例えばFacebookでは、AxがA/Bテストやシミュレーションツールと連携する。ツールの目的はあくまでもシステムを自動的に最適化することだから、ユーザーが関与する必要性はほとんどない。Axは実験を行うとき、最良の最適化戦略を自動的に拾い上げる。それは、ベイズ最適化かもしれないし、古典的なバンディット最適化かもしれない、あるいはもっとほかのアルゴリズムかもしれない。重要なのはAxがフレームワークと特定しないことだ。BoTorchを使っていても、研究者はPyTorchやNumPyを介したサービスを使って自分独自のコードをプラグインできる。
Facebookでツールをオープンソースにすることは、現時点ではかなりスタンダードな行為になっている。PyTochはその好例だ。Spisak氏によれば、BoTorchもこの分野の優れた研究者たちの協力が得たいからやはりオープンソースにする。そもそも、最初のリリースでもコーネル大学の協力を得ている。「コラボレーションもオープンなコミュニティ作りも、クローズドソースではできない。オープンソースだからこそできる」と彼は言う。
関連記事: F8におけるPyTorchのアップデート(未訳)
[原文へ]
(翻訳:iwatani、a.k.a. hiwa)