1. Pythonエコシステムの重要性 Pythonを選ぶ理由 Python は、データ分析と一般的なプログラミングの両方において主要な言語に成長しました。 技術系Q&Aサイト「Stack Overflow」の統計によると、Python、C#、Javascript、java、php、C++、SQL、Rなどのプログラミング言語のトレンドチャートと2009年から2021年までの統計は下図の通りです。 Python は、特にデータ分析とデータサイエンスの分野で人気が高まっており、ほぼトップのプログラミング言語となっていることがわかります。これは Python エコシステムの開発動向です。もちろん、データ分析、データサイエンス、機械学習の分野では、プログラミング言語だけが使われるわけではありません。 https://insights.stackoverflow.com/trends からの統計 データサイエンス技術スタック データサイエンスの分野では、プログラミング言語は単なる一側面にすぎません。言語にはPython以外にも多くのものがあります。データ アナリストは、SQL、従来の分析言語 R、または関数型プログラミング言語 Scala も使用します。 2 番目の側面では、NumPy、pandas などのデータ分析に対応するライブラリが必要であり、または視覚化ベースのライブラリが含まれます。 Python を実行するクラスターには、Docker や Kubernetes 上で実行されるものなど、いくつかの運用および保守テクノロジ スタックも含まれます。データ分析やデータサイエンスを行う場合は、早い段階でデータをクリーンアップする必要があり、いくつかの ETL プロセスがあります。一部のクリーニング タスクは 1 つまたは 2 つのステップでは完了できないため、ETL プロセス全体を完了するにはワークフローが必要です。これには、Spark や Airflow などの最も人気のあるコンポーネント、ワークフロー全体のスケジュール設定が含まれます。最終結果を提示するには、ストレージが必要です。一般的にはPostgreSQLデータベースやインメモリデータベースのredisが使用され、外部にBIツールが接続されて最終結果が表示されます。また、TensorFlow、PyTorch など、機械学習用のコンポーネントやプラットフォームもいくつかあります。Web 開発を設計している場合は、フロントエンド プラットフォームをすばやく構築し、Flask などを使用できます。最後に、BI ツール Tableau、Power BI、データ サイエンスの分野でよく使用される SaaS ソフトウェアなどのビジネス インテリジェンス ソフトウェアが含まれます。 これは、データ サイエンス テクノロジー スタック全体の比較的完全なビューです。私たちはプログラミング言語から始め、大規模データに対してデータサイエンスを実装するにはあらゆる側面を考慮する必要があることに気付きました。 2. MaxCompute 分散 Python 機能の紹介 MaxCompute 分散 Python テクノロジー - PyODPS MaxCompute は、SaaS モードのクラウド データ ウェアハウスです。 MaxCompute は Python と互換性があります。 PyODPS は、MaxCompute 用の SDK の Python バージョンです。これは、MaxCompute オブジェクトに対する基本的な操作と、MaxCompute でのデータ分析のための DataFrame フレームワーク (追加、削除、変更、およびクエリが可能な 2 次元テーブル構造) を提供します。 PyODPS によって送信された SQL および DataFrame ジョブは、分散操作のために MaxCompute SQL に変換されます。サードパーティのライブラリを UDF + SQL の形式で実行できる場合は、分散形式で実行することもできます。 大規模なベクトル コンピューティングなどの分散実行のために Python を使用してジョブをサブタスクに分割する必要がある場合、ネイティブ Python には分散機能がありません。この場合は、MaxCompute Mars が推奨されます。 Python タスクをサブタスクに分割して実行できるフレームワークです。 カスタム関数でサードパーティのパッケージを使用する Python を単純に実行しない場合は、MaxCompute もサポートしている Python サードパーティ パッケージを使用する必要があります。 プロセスは次のとおりです。 ステップ1 使用されているサードパーティのパッケージを特定する sklearn、scipy ステップ2 対応するレポートのすべての依存関係を見つける sklearn、scipy、pytz、pandas、six、python-dateutil ステップ3 対応する3部構成のパッケージ(pypi)をダウンロードします。 python-dateutil-2.6.0.zip、 pytz-2017.2.zip、six-1.11.0.tar.gz、 pandas-0.20.2-cp27-cp27m-manylinux1_x86_64.zip、 scipy-0.19.0-cp27-cp27m-manylinux1_x86_64.zip、 scikit_learn-0.18.1-cp27-cp27m-manylinux1_x86_64.zip ステップ4 アップロードされたリソースは、MaxCompute のリソース オブジェクトになります。 この方法では、関数を作成し、カスタム関数を参照してサードパーティのパッケージを使用することができます。 カスタム関数コード
MaxCompute 分散 Python テクノロジー - Mars プロジェクト名火星 最も古いのはMatrixandArrayです。火星への着陸 なぜ火星なのか? 大規模な科学計算向けに設計されています: ビッグデータ エンジンのプログラミング インターフェイスは科学計算にはあまり適しておらず、フレームワークの設計は科学計算モデルに基づいていません。従来の科学計算は単一のマシンに基づいており、大規模な科学計算にはスーパーコンピュータが必要です。 従来の SQL モデル処理機能は不十分です: 線形代数、行列式の乗算、既存のデータベースの効率の低さ。現在の状況は、単一のマシンに基づく R、Numpy スタンドアロンです。 Python エコシステムにおける Dask ビッグデータから科学計算への架け橋 場合 顧客 A は既存の MaxCompute データを持っており、これらの 100 億 TB レベルのデータを増殖させる必要があります。既存の MapReduce モードのパフォーマンスが低い。火星はこの問題を効率的に解決するために使用できます。現在唯一の大規模科学計算エンジンである データサイエンスを加速する新しい方法 次の図は、データ サイエンスを加速する方法を示しています。 DASK または MaxCompute Mars は、実際には互換性のあるスケールアップとスケールアウトの方法です。下の左下の画像は、データ サイエンスを行うために単一のマシンで Python ライブラリを実行する方法を示しています。大規模スーパーコンピューティングの考え方は、スケールアップ、つまりオンラインで垂直に広がり、ハードウェア機能を増やすことです。たとえば、複数のコアを使用できます。現在、各コンピューターまたはサーバーには、GPU、TPU、NPU、その他のディープラーニング用のハードウェアなど、複数のコアが搭載されています。 Python をこれらのハードウェアに移植すると、ある程度の高速化が可能です。ここでのテクノロジには、たとえば、複数のコアを使用してパンダを高速化するために使用される Modin が含まれます。右下には、分散 Python を実行するフレームワークもいくつかあります。たとえば、RAY は Ant のフレームワーク サービスです。基本的に、Mars は RAY 上で実行できます。これは、Python エコシステム、Kubernetes のスケジューラに相当します。 DASK は、Mars を含む分散 Python にも取り組んでいます。もちろん、最適なモードはスケールアップとスケールアウトを組み合わせることです。この利点は、分散化が可能であり、ハードウェア機能を単一のノードで利用できることです。現在、Mars は大規模クラスターおよび GPU クラスター内の単一マシンでのみ使用できます。 Pythonの設計ロジックの配布 Marsの設計思想は、本質的にはデータサイエンスライブラリを配布することです。たとえば、Python では、データフレームを Numpy と Scikit-Learn に分割できます。 分散コンピューティングのために大規模なジョブを小さなジョブに分割します。フレームワーク自体はジョブに分割されるように設計されています。まず、クライアントがジョブを送信し、Mars フレームワークがジョブを部分に分割し、DAG グラフを作成し、最後に計算結果を要約して収集します。 火星シナリオ1: CPUとGPUのハイブリッドコンピューティング 1. セキュリティと金融の分野では、従来のビッグデータ プラットフォームは、マイニング サイクルが長く、リソースが不足しており、待機サイクルが長いという問題があります。 2. Mars DataFrame はデータ処理を高速化します: 大規模なソート。統計;集計分析。 3. Mars Learn は教師なし学習を加速します。 Mars は分散型ディープラーニング コンピューティングを可能にします。 4. GPU を使用して特定の計算を高速化します。 火星シナリオ2: 説明可能なコンピューティング 1. 広告の帰属と洞察機能の解釈アルゴリズム自体は、計算量が非常に多く、時間がかかります。 2. Mars Remote を使用して、数十台のサーバーを使用してコンピューティングを高速化し、パフォーマンスを 100 倍向上させます。 火星シナリオ3: 大規模k近傍法アルゴリズム 1. 埋め込みの普及により、ベクトルを使用してエンティティを表現することが非常に一般的になっています。 2. Mars の NearestNeighbors アルゴリズムは scikit-learn と互換性があります。ブルートフォースアルゴリズムでは、300 万のベクトルと 300 万のベクトル間の上位 10 件の類似性計算 (9 兆回のベクトル比較) を完了するのに 20 人の作業者が 2 時間かかりました。 SQL + UDF ベースのビッグデータ プラットフォームでは計算を完了できませんでした。小規模な Mars では、ビッグデータ プラットフォームと比較してパフォーマンスが 100 倍向上します。 3. Mars は、Faiss および Proxima (Alibaba Damo Academy ベクトル検索ライブラリ) の分散アクセラレーションをサポートし、数千万から数十億の規模に達します。 III.ベストプラクティス Mars 自体は、基本的な主流の機械学習およびディープラーニング ライブラリを含むいくつかの Python サードパーティ パッケージを統合しています。以下のデモでは、インテリジェントな推奨に Mars を使用し、分類アルゴリズムに lightgbm を使用する方法を示します。たとえば、特定のユーザーに割引をプッシュするかどうかを決定できます。 Mars には次のサードパーティ パッケージが含まれています。 https://pyodps.readthedocs.io/zh_CN/latest/mars-third-parties.html 最初の図の主な手順は、AK、プロジェクト名、エンドポイント情報を介して MaxCompute に接続することです。次に、8 コア、ノードあたり 32G の 4 ノード クラスターを作成し、拡張パッケージを適用して、100 万人のユーザーの 64 次元の説明情報を含むトレーニング データを生成します。 Lightgbm 2 分類アルゴリズムを使用したモデルトレーニング: リソース作成モードでモデルをリソースオブジェクトとしてMaxComputeに転送し、テストセットデータを準備します。 テスト セット データを使用してモデルを検証し、分類を取得します。 |
<<: 「ウランチャブ・ファーウェイクラウドシティサミット2021」が開催され、「草原のクラウドバレー」は非常に異なります
>>: Kafka 3.0 がリリースされました。新着情報?
新たな情報技術革命により、従来のインターネットを覆す波が巻き起こっています。クラウド コンピューティ...
今月、cmivps は香港 CN2+BGP ネットワークとシアトル トリプル ネットワーク AS48...
いつものことですが、特に安全性に関しては、人々は自分の失敗から学ぶよりも他人から学ぶことを好みます。...
エッジコンピューティングとは何ですか?人工知能とモノのインターネット産業の急速な発展に伴い、私たちの...
検索エンジンのアルゴリズムが進化するにつれて、外部リンクの影響はどんどん小さくなってきていますが、外...
マレーシアの商人であるmondozeは、公式発表によると2009年に設立されました。主にマレーシアの...
BlogCN無料ブログのデータが削除され、ネットユーザーは懐かしむ新快報記者 唐培陽中国のブログネッ...
ITM Services LLC / DBA、vpsRus は 2000 年に設立され、米国フロリダ...
最近、2019 Alibaba Cloud Summit Beijing で、Alibaba Clo...
Maxthon Hosting (Maxthon VPS、Maxthon Cloud、Aoyoyun...
ここ数日、ウェブサイトに若干の変動があり、いつも以上に多くの問題について考えるようになりました。最近...
Baidu アルゴリズムの継続的な改善により、特に 2013 年以降、多くの Web サイトが毎日 ...
[[221381]] 「クラウドコンピューティング」という用語は、2007 年以来、国内でよく使われ...
現在から11月28日まで、liteserver(2007〜)は、デフォルトのオランダデータセンターで...
月給5,000~50,000のこれらのプロジェクトはあなたの将来ですWeb クローラーは、SEO 担...