Modularは、開発中の次世代AIソフトウェア開発プラットフォームにおける2つの新しい技術的ブレークスルーを発表した。統合推論エンジン「Modular Inference Engine」と、Pythonの使いやすさとC言語のパフォーマンスを併せ持つ新プログラミング言語「Mojo」だ。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
新興企業のModularは2023年5月2日(米国時間)、開発中の次世代AI(人工知能)ソフトウェア開発プラットフォームにおける2つの新しい技術的ブレークスルーを発表した。発表されたのは、統合推論エンジン「Modular Inference Engine」と、Pythonの使いやすさとC言語のパフォーマンスを併せ持つ新プログラミング言語「Mojo」だ。Modularはこの開発プラットフォームで、AIのプログラマビリティ、ユーザビリティ、スケーラビリティ、コンピューティングの在り方を根本的に変えることを目指している。
ModularがModular Inference Engineを開発した目的は、AIのデプロイに伴うソフトウェアの断片化の解消と、デプロイ自体の簡素化にある。Modular Inference Engineは、全てのPyTorchおよびTensorFlowワークロードを稼働させることができ、ユーザビリティ、パフォーマンス、ポータビリティの大幅な向上を実現する。
Modular Inference Engineは、AI開発者に以下のようなメリットをもたらす。
開発者はカスタムツールチェーンを排除し、AIのデプロイを根本的に簡素化できる。PythonやC/C++などの一般的な言語で利用できるシンプルなAPIにより、開発者はPyTorchやTensorFlowでトレーニングしたモデルを、中間段階のモデル変換や事前の最適化ステップなしで迅速にデプロイできる。
他のAIエンジンとは異なり、Modular Inference Engineは、トレーニングフレームワークの最新バージョンで利用可能な全ての演算子をネイティブでサポートしている。また、制御フローを含むモデルとの完全な互換性があり、動的シェイプ(BERTやGPTなどのモデルを支えるさまざまな長さのテキストシーケンスなど)も完全にサポートする。開発者は独自のカスタム演算子を書くこともできる。また、NVIDIAのTriton Inference ServerやTensorFlow Servingといった既存のクラウドソリューションと完全に互換性があり、オンプレミスでのデプロイもサポートする。
全ての開発者がポータビリティを享受できる。プラットフォーム、マイクロアーキテクチャ機能(AVX512、AVX2、Neon)、ハードウェアタイプ(CPU、GPU、xPU)、ベンダーにかかわらず、同じインストールパッケージがどこでも動作する。これは、開発者がツールチェーンを変更したり、コードを書き換えたりすることなく、ワークフローを新しいターゲットに移行できるということだ。異なるハードウェアを素早く試せるので、企業は、コストとパフォーマンスのトレードオフについて、判断するためのデータを十分に収集できる。
市場に出回っている他のソリューションとは異なり、開発者はポータビリティを確保するためにパフォーマンスを犠牲にする必要がない。Modular Inference Engineは、Intel、AMD、Gravitonアーキテクチャの最新モデルで、すぐに3〜4倍のレイテンシ改善とスループットを実現し、あらゆる場所でコンピューティングを可能にする。
Modular Inference Engineは現在、限られた数の早期アクセスパートナーに提供されており、アクセスしたい開発者はウェイティングリストに登録できる。
Mojoは、Pythonの使いやすさとC言語のパフォーマンスを兼ね備えており、Pythonの魅力を損なうことなく、AIハードウェアの比類ないプログラマビリティとAIモデルの拡張性を実現する。
Pythonは強力な高級言語であり、きれいで習得しやすい構文と広範なライブラリエコシステムを備えている。だが、Pythonは、よく知られているスケーラビリティの問題があり、極めて大規模なワークロードを処理したり、エッジデバイスにアクセスしたりするのは難しい。そこでAIの本番デプロイでは、C++やCUDAなど他の言語が使われている。その結果、AIソフトウェアが断片化され、AI開発者の生産性が低下し、研究から本番デプロイまでのパイプラインが遅くなっている。
Mojoはこれらの問題を解決し、AI開発者に以下のようなメリットをもたらす。
Mojoでは、研究者が好むPythonの長所とともに、C、C++、CUDAで提供されるようなシステムプログラミング機能が組み合わされている。Mojoは、次世代コンパイラ技術の上に構築されており、開発者はプログラムに型を追加して大幅にパフォーマンスを高めたり、ゼロコスト抽象化を定義したり、Rustのようなメモリ安全性の恩恵を受けたり、独自のオートチューニング機能やコンパイル時のメタプログラミング機能を利用したりできる。
Mojoは、Modularの高性能ヘテロジニアスランタイム上に構築されており、MLIR(Multi-Level Intermediate Representation)を使用している。MLIRは、全てのAIハードウェアへのアクセスを可能にする。これにより、Mojoはスレッディングや、低レベルのハードウェア機能(TensorCoresやAMX拡張など)、アクセラレーターにアクセスできる。実際、Mojoは、マンデルブロのような数値アルゴリズムを実行した場合、Pythonの3万5000倍の速度が得られる。ハードウェアをフルに活用できるからだ。
こうした強力なパフォーマンスと引き換えに、既知の気に入っているものを犠牲にする必要はない。Mojoは、Pythonのようなルック&フィールを提供するだけでなく、開発者はPythonエコシステム全体にアクセスできる。その中には、Numpy、Pandas、Matplotlibのような人気のあるライブラリや、既存のカスタムPythonコードなどが含まれる。
Mojoはサイドプロジェクトではなく、Modularが自社開発したカーネルは全てMojoで書かれており、Modular Inference Engineが優れたパフォーマンスとポータビリティを発揮するのはそのためだ。このエンジンでは、Mojoの前処理および後処理操作でモデルを拡張したり、既存の操作をカスタム操作に置き換えたりできる。Mojoを使えば、カーネルフュージョン、グラフの書き換え、シェイプ関数などによってModularスタックをカスタマイズでき、フレームワークを再コンパイルしたり、C++やCUDAコードを書いたりする必要がない。
Modular.com/mojoでサインアップすると、JupyterHubベースの「Mojo Playground」でMojoを試すことができる。
Copyright © ITmedia, Inc. All Rights Reserved.