AWSはどちらかというとオープンソースとは縁の薄い企業と思われているが、それが変わりそうな兆しもある。この、Amazonのクラウドコンピューティング部門は今日(米国時間1/24)、Neo-AIのローンチを発表したがそれは、Apache Software Licensetheによるオープンソースのプロジェクトだ。この新しいツールは、同社が機械学習サービスSageMaker Neoのために開発して使っている技術の一部を、オープンソースのエコシステムに持参した(お返しした)ものだ。
その主な目的は、機械学習のモデルを複数のプラットホームで使うために行なう最適化を、もっと容易にすることだ。そしてAWSの文脈では、その複数のプラットホームとは多くの場合、これらのモデルをエッジで動かすマシンのことだ。
今日の発表声明でAWSのSukwon KimとVin Sharmaがこう書いている: “通常、機械学習のモデルを複数のハードウェアプラットホームのために最適化することは、プラットホームのハードウェアやソフトウェアの構成に合わせて手作業でモデルを調整しなければならないから難しい。とくに難しいのが、エッジデバイスの場合だ。コンピューターのパワーやストレージが限られていることが多いからだ”。
Neo-AIは、TensorFlowやMXNet、PyTorch、ONNX、XGBoostなどのモデルを最適化できる。AWSによると、Neo-AIがこれらのモデルのスピードを、精度の損失なく最初の倍ぐらいに上げてしまうことも多い。ハードウェアに関しては、IntelとARMとNvidiaのチップをサポートし、Xilinx、Cadence、そしてQualcommにも近く対応する。Nvidiaを除きこれらの企業のすべてが、このプロジェクトに寄与貢献している。
IntelのArtificial Intelligence Products GroupのトップNaveen Raoはこう語る: “AIが価値をもたらすためには、ディープラーニングのモデルがデータセンターでもクラウドでも、そしてエッジのデバイスでも、等しく容易にデプロイできなければならない。IntelがNeo-AIに寄与貢献することによって、nGraphで始めたイニシアチブを拡張できたことは、きわめて喜ばしい。Neoを使えば、デバイスのメーカーとシステムのベンダーが、オールIntelのコンピュートプラットホーム上の、ほとんどどんなフレームワークで開発されたモデルでもパフォーマンスをアップできる”。
このツールはモデルの最適化に加え、それらを新しいフォーマットに変換して、モデルが実際に実行されるデバイス上の互換性と、ローカルなランタイムの問題を防ぐ。
AWSによると、Neo-AIコンパイラーの開発の一部はワシントン大学のTVMやTreeliteのプロジェクトで始まった。“本日、AWSのコードをNeo-AIプロジェクトとしてオープンソースにお返しすることにより、だれもがプロダクション級のNeoコンパイラーでイノベーションを追究できる”、とAWSは言っている。AWSはオープンソースのプロジェクトを自分のクラウドサービスに利用するだけ、という世評もあったが、今度からはお返しもするようになったのだから、めでたい。
Amazonのオープンソースへの取り組みとしては、同社のFirecrackerハイパーバイザーを挙げておくべきだ。これは今ではOpenStack FoundationのKata Containersプロジェクトをサポートしている。そのFirecrackerもオープンソースだから、いずれOpenStack Foundationに寄贈されたとしても、意外ではない。