Pythonライクで高速な新言語「Mojo」が登場、何が魅力?:Modularが2つの発表
Modularは、開発中の次世代AIソフトウェア開発プラットフォームにおける2つの新しい技術的ブレークスルーを発表した。統合推論エンジン「Modular Inference Engine」と、Pythonの使いやすさとC言語のパフォーマンスを併せ持つ新プログラミング言語「Mojo」だ。
新興企業のModularは2023年5月2日(米国時間)、開発中の次世代AI(人工知能)ソフトウェア開発プラットフォームにおける2つの新しい技術的ブレークスルーを発表した。発表されたのは、統合推論エンジン「Modular Inference Engine」と、Pythonの使いやすさとC言語のパフォーマンスを併せ持つ新プログラミング言語「Mojo」だ。Modularはこの開発プラットフォームで、AIのプログラマビリティ、ユーザビリティ、スケーラビリティ、コンピューティングの在り方を根本的に変えることを目指している。
Modular Inference Engine:統合推論エンジン
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:全てのAI開発者のためのプログラミング言語
Mojoは、Pythonの使いやすさとC言語のパフォーマンスを兼ね備えており、Pythonの魅力を損なうことなく、AIハードウェアの比類ないプログラマビリティとAIモデルの拡張性を実現する。
Pythonは強力な高級言語であり、きれいで習得しやすい構文と広範なライブラリエコシステムを備えている。だが、Pythonは、よく知られているスケーラビリティの問題があり、極めて大規模なワークロードを処理したり、エッジデバイスにアクセスしたりするのは難しい。そこでAIの本番デプロイでは、C++やCUDAなど他の言語が使われている。その結果、AIソフトウェアが断片化され、AI開発者の生産性が低下し、研究から本番デプロイまでのパイプラインが遅くなっている。
Mojoはこれらの問題を解決し、AI開発者に以下のようなメリットをもたらす。
1つの言語で全てを記述
Mojoでは、研究者が好むPythonの長所とともに、C、C++、CUDAで提供されるようなシステムプログラミング機能が組み合わされている。Mojoは、次世代コンパイラ技術の上に構築されており、開発者はプログラムに型を追加して大幅にパフォーマンスを高めたり、ゼロコスト抽象化を定義したり、Rustのようなメモリ安全性の恩恵を受けたり、独自のオートチューニング機能やコンパイル時のメタプログラミング機能を利用したりできる。
Pythonの性能を引き出す
Mojoは、Modularの高性能ヘテロジニアスランタイム上に構築されており、MLIR(Multi-Level Intermediate Representation)を使用している。MLIRは、全てのAIハードウェアへのアクセスを可能にする。これにより、Mojoはスレッディングや、低レベルのハードウェア機能(TensorCoresやAMX拡張など)、アクセラレーターにアクセスできる。実際、Mojoは、マンデルブロのような数値アルゴリズムを実行した場合、Pythonの3万5000倍の速度が得られる。ハードウェアをフルに活用できるからだ。
Pythonのエコシステム全体にアクセスできる
こうした強力なパフォーマンスと引き換えに、既知の気に入っているものを犠牲にする必要はない。Mojoは、Pythonのようなルック&フィールを提供するだけでなく、開発者はPythonエコシステム全体にアクセスできる。その中には、Numpy、Pandas、Matplotlibのような人気のあるライブラリや、既存のカスタムPythonコードなどが含まれる。
モデルやModularスタックをアップグレードする
Mojoはサイドプロジェクトではなく、Modularが自社開発したカーネルは全てMojoで書かれており、Modular Inference Engineが優れたパフォーマンスとポータビリティを発揮するのはそのためだ。このエンジンでは、Mojoの前処理および後処理操作でモデルを拡張したり、既存の操作をカスタム操作に置き換えたりできる。Mojoを使えば、カーネルフュージョン、グラフの書き換え、シェイプ関数などによってModularスタックをカスタマイズでき、フレームワークを再コンパイルしたり、C++やCUDAコードを書いたりする必要がない。
Modular.com/mojoでサインアップすると、JupyterHubベースの「Mojo Playground」でMojoを試すことができる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
「Rustは安全でも難しい」といわれる理由――メモリ安全を実現する「所有権」の仕組み
Rustについて基本からしっかり学んでいく本連載。今回はRustにおける核心的な機能でRustによるメモリ安全なプログラミングを実現する機能の代表となる所有権を解説します。推論(inference)/推定(estimation)/予測(prediction)とは?
用語「推論」について説明。機械学習のモデルを「使う」ことを指す。「ブルースクリーン」からの回復:絶望する前に行うべき手順書【Windows 10/11】
システムがブルースクリーンエラーを発生するようになったり、Windows 10/11の動作が不安定になったりしていないだろうか。これは更新プログラムのインストールなどに失敗したことで、システムファイルの不整合が起きている可能性がある。最悪、Windows 10/11の再インストールが必要になるが、その前にシステムファイルチェッカーを使用して、システムファイルの復元を試みるとよい。その方法を紹介しよう。