Pythonライクで高速な新言語「Mojo」が登場、何が魅力?Modularが2つの発表

Modularは、開発中の次世代AIソフトウェア開発プラットフォームにおける2つの新しい技術的ブレークスルーを発表した。統合推論エンジン「Modular Inference Engine」と、Pythonの使いやすさとC言語のパフォーマンスを併せ持つ新プログラミング言語「Mojo」だ。

» 2023年05月11日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 新興企業の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ワークロードを稼働させることができ、ユーザビリティ、パフォーマンス、ポータビリティの大幅な向上を実現する。

単一のエンジンにより、使用中のカスタムAIツールチェーンを統合し、AIのデプロイを簡素化できる(提供:Modular) 単一のエンジンにより、使用中のカスタムAIツールチェーンを統合し、AIのデプロイを簡素化できる(提供:Modular)

 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のようなメモリ安全性の恩恵を受けたり、独自のオートチューニング機能やコンパイル時のメタプログラミング機能を利用したりできる。

1つの言語でPythonコードを書いたり、ハードウェアレベルのSIMD命令を記述したりできる(提供:Modular) 1つの言語でPythonコードを書いたり、ハードウェアレベルのSIMD命令を記述したりできる(提供:Modular)

Pythonの性能を引き出す

 Mojoは、Modularの高性能ヘテロジニアスランタイム上に構築されており、MLIR(Multi-Level Intermediate Representation)を使用している。MLIRは、全てのAIハードウェアへのアクセスを可能にする。これにより、Mojoはスレッディングや、低レベルのハードウェア機能(TensorCoresやAMX拡張など)、アクセラレーターにアクセスできる。実際、Mojoは、マンデルブロのような数値アルゴリズムを実行した場合、Pythonの3万5000倍の速度が得られる。ハードウェアをフルに活用できるからだ。

Amazon EC2 r7iz.metal-16xl上でマンデルブロアルゴリズムを実行したときのMojoのパフォーマンスと、標準的なpythonや他の言語の比較(提供:Modular) Amazon EC2 r7iz.metal-16xl上でマンデルブロアルゴリズムを実行したときのMojoのパフォーマンスと、標準的なpythonや他の言語の比較(提供:Modular)

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.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。