MaxFrame は、Alibaba Cloud によって開発された分散サイエンスコンピューティングフレームワークです。これは PyODPS と Mars から進化したもので、Pandas インターフェースと互換性のある API を提供し、Python を使用するのと同様の方法で MaxCompute を使用できるようにします。このトピックでは、MaxCompute によって提供される Python 開発エコシステムの背景情報と開発履歴について説明します。
背景情報
機械学習と AI モデル開発の主流プログラミング言語として、Python は、NumPy(多次元配列操作)、Pandas(データ分析)、Matplotlib(2 次元描画)、scikit-learn(データ分析およびマイニングアルゴリズム)などの豊富なサイエンスコンピューティングおよび可視化ライブラリを提供します。 Python はまた、TensorFlow、PyTorch、XGBoost、LightGBM などの幅広いトレーニングフレームワークをサポートしています。
MaxCompute は、大量データの処理、分析、マイニング、モデルトレーニングの要件を満たすために、Python 開発エコシステムを提供します。一元化された Python API を使用して、包括的かつ効率的な方法でデータ処理とマイニングを実行できます。
開発履歴
次の図は、MaxCompute によって提供される Python 開発エコシステムの開発履歴を示しています。
PyODPS
PyODPS は 2015 年に正式にリリースされ、Python 用の MaxCompute SDK として機能します。 Python インターフェースを使用して、MaxCompute のデータに対して操作を実行できます。複数のバージョンの反復開発の後、PyODPS は DataFrame をサポートしています。 PyODPS は、Pandas のような構文と、データの集約、ソート、重複排除のためのビルトインオペレーターも提供します。
PyODPS の主な機能:
MaxCompute オブジェクトの基本操作のサポート(2015 年):
PyODPS は、テーブル、リソース、関数などの MaxCompute オブジェクトへのアクセスをサポートしています。
PyODPS では、
run_sqlまたはexecute_sqlメソッドを使用して SQL リクエストを送信できます。PyODPS では、
run_xflowまたはexecute_xflowメソッドを使用して Platform for AI(PAI)コマンドを実行し、機械学習タスクを実行できます。PyODPS では、
open_write、open_reader、またはクラウドネイティブ Tunnel API 操作を使用して、データをアップロードおよびダウンロードできます。
DataFrame API と Pandas のようなインターフェースのサポートにより、DataFrame コンピューティングのために MaxCompute のコンピューティング機能を最大限に活用できます(2016 年から 2022 年まで):
PyODPS DataFrame を使用すると、Python を使用してデータ操作を実行できます。このようにして、Python の言語機能を簡単に活用できます。
PyODPS DataFrame は、構文が拡張された多数の Pandas のようなインターフェースを提供します。たとえば、ビッグデータ環境に適応するために MapReduce API が追加されています。
PyODPS DataFrame は、データの集約、データのソート、データの重複排除、データのサンプリング、視覚的な描画などの一般的な操作のためのビルトイン関数を備えています。
Mars
Python エコシステムには、NumPy、Pandas、scikit-learn などの豊富なサイエンスコンピューティングライブラリが含まれています。これらのライブラリは、便利なデータ分析およびマイニングオペレーターを提供します。ただし、ほとんどのライブラリはスタンドアロンリソースによって制限されています。 Mars は、NumPy のインターフェースの約 70% を分散方式で実装するテンソルベースの一元化された分散コンピューティングフレームワークです。 Mars は、分散サイエンスコンピューティングコードを作成する際の難しさを大幅に軽減し、パフォーマンスを向上させます。
Mars の主な機能:
互換性と分散機能:Mars は 2019 年 1 月に正式にオープンソース化されました。Mars により、NumPy、Pandas、scikit-learn、および Python 関数を分散方式で実行できるようになり、ほとんどのインターフェースと互換性があります。
MaxFrame
Mars と PyODPS は、さまざまなシナリオに適しています。たとえば、Pandas に精通していて、NumPy または scikit-learn を並列および分散方式で実行したいユーザーは、Mars を使用する方が適しています。 DataFrame に精通していて、安定性とデータ量(テラバイトレベル以上)に高い要件を持つユーザーは、PyODPS を使用するのに適しています。ただし、アーキテクチャの複雑さはユーザーに困難をもたらします。
MaxFrame は、Alibaba Cloud によって開発された分散サイエンスコンピューティングフレームワークです。 Pandas インターフェースと完全に互換性があり、最適な基盤となるエンジンを自動的に選択してジョブを実行できるため、パフォーマンスと開発効率が向上します。ユーザーは基盤となる実行エンジンの選択に集中する必要がなくなり、データ開発と分析から AI トレーニングと推論までのプロセス全体を効率的に完了できます。次の図はアーキテクチャを示しています。
MaxFrame の主な機能:
より使い慣れた開発習慣
MaxFrame は Python 開発エコシステムと互換性があり、MaxCompute の Python エコシステムに統一された開発インターフェースを提供します。同じ Python コードを使用して、完全なデータおよび AI 開発プロセスを実装できます。
MaxFrame は、NumPy、SciPy、Pandas、Matplotlib などのサードパーティライブラリを直接参照して、科学計算、データ分析、可視化などの操作を実行できます。これにより、ユーザーの運用コストが削減されます。
より高い処理パフォーマンス
MaxFrame を使用すると、MaxCompute データに直接アクセスできます。 MaxFrame を実行するときに、データをオンプレミスマシンにプルする必要はありません。これにより、データ転送の必要がなくなり、実行効率が向上します。
MaxFrame は、MaxCompute の膨大な量の弾力的なコンピューティングリソースを直接使用できます。 MaxFrame は、自動分散と並列処理をサポートしています。これにより、データ処理時間が大幅に短縮されます。
より便利な開発エクスペリエンス
MaxFrame は、MaxCompute Notebook および DataWorks と統合されています。環境を構成することなく、MaxCompute Notebook または DataWorks で MaxFrame を直接使用できます。また、オンプレミス環境に MaxFrame をインストールして使用することもできます。
MaxFrame を使用すると、MaxCompute のビルトインイメージとカスタムイメージを直接参照できます。これにより、開発環境の準備時間が短縮され、環境バージョン間の競合を防ぎます。
改善されたオペレーターサポート
MaxFrame は Pandas インターフェースと完全に互換性があり、分散処理を自動的に実行します。これにより、強力なデータ処理機能が保証され、データ処理と計算効率が大幅に向上します。