クラウドコンピューティングのディープラーニングプラットフォームを構築し実践する唯一の方法

クラウドコンピューティングのディープラーニングプラットフォームを構築し実践する唯一の方法

クラウド ディープラーニング プラットフォームの定義 クラウド ディープラーニングとは何ですか? 機械学習の発展に伴い、スタンドアロンの機械学習タスクでは、リソースの分離が不十分であったり、動的にスケーリングできないなどの問題が発生するため、クラウド コンピューティング ベースのインフラストラクチャ サービスが必要になります。クラウド機械学習プラットフォームは新しい概念ではありません。Google、Microsoft、Amazon などはすべて対応するサービスを提供しています。ここではいくつかの典型的な例を示します。

[[204002]]

1 つ目は、Google Cloud Machine Learning Engine で、最下層で Google Cloud 上にホストされています。上位層は、トレーニング、予測、モデル サービスなどの機械学習アプリケーションの抽象化をカプセル化し、上位層で Google の公式 TensorFlow オープンソース フレームワークをサポートします。

Amazon はまた、AWS の Iaas アーキテクチャをベースとし、Iaas 上で 2 つの異なるサービスを提供する Amzon 機械学習プラットフォームも立ち上げました。MXNet などのフレームワークを実行できる EC2 仮想マシン サービスと、画像、音声、自然言語処理用のさまざまな SaaS API です。

さらに、Microsoft は Azure Machine Learning Studio サービスも提供しています。これも、独自のスケーラブルで拡張可能な Microsoft Azure Cloud サービスに基づいています。上位層では、ドラッグ アンド ドロップで使いやすい Studio ツールが提供され、Microsoft の公式 CNTK やその他のフレームワークがサポートされています。さらに、Microsoft にはさまざまな認識サービス、画像処理、その他の SaaS API もあります。これらのサービスはすべて、スケーラブルなクラウド インフラストラクチャ プラットフォーム上で実行されます。


関連メーカーコンテンツ

畳み込みニューラルネットワークに基づく携帯電話での文書検出の実装 アリババグループの1000億レベル店舗システムアーキテクチャのプラットフォーム技術実践 Ctripの第4世代ソフトロードアーキテクチャ SLB実践 BaiduのPBレベルデータウェアハウスの道路解釈 Paloオープンソースアーキテクチャ 関連スポンサー

国内外の100名以上の技術専門家とともに、2017年の将来を予測する注目の技術を探る

上記はすべて、業界では比較的成熟したクラウド ディープラーニング プラットフォームです。しかし、実際のエンタープライズ環境では、なぜクラウド マシン ラーニング サービスを実装する必要があるのでしょうか?

まず、海外のインフラは必ずしも国内企業が直接利用できるとは限りません。TensorFlowをローカルにインストールしただけでは、ベアメタル上でしかトレーニングを実行できません。デフォルトではローカルでのリソース分離はありません。2つのトレーニングタスクを同時に実行する場合、リソース競合の問題を自分で解決する必要があります。リソースの分離がないため、リソースの共有は不可能です。マルチノードコンピューティングクラスターリソースがある場合でも、タスクが競合しないように手動で合意する必要があり、リソース共有によってもたらされる利便性を十分に活用できません。さらに、オープンソースの機械学習フレームワークには、クラスターレベルのオーケストレーション機能がありません。たとえば、分散型 TensorFlow を使用する場合は、複数のサーバーでプロセスを手動で開始する必要があります。自動フェイルオーバーやスケーリングはありません。そのため、多くの企業がすでに機械学習ビジネスを展開していますが、クラウド機械学習プラットフォームが不足しているため、導入、管理、クラスターのスケジュール設定などに依然として問題を抱えています。

では、クラウド マシン ラーニング プラットフォームをどのように実装すればよいのでしょうか?

当社には階層化されたクラウド ディープラーニング サービスがあります。最初のレイヤーはプラットフォーム レイヤーで、Google Cloud、Azure、AWS などの IaaS レイヤーに似ています。企業は、コンテナ オーケストレーション ツール Kubernetes や仮想マシン管理ツール OpenStack などのオープン ソース ソリューションも使用できます。このレイヤーでは、トレーニング、予測、モデルの起動、モデルの反復と更新などの機械学習関連の機能もサポートする必要があります。機械学習レイヤーでこれらの機能を抽象化し、対応する API インターフェースを実装します。最上位層はモデル アプリケーション層であり、TensorFlow、MXNet などのオープンソースの機械学習ライブラリをベースにすることができます。

クラウド マシン ラーニング全体は、モデル開発、モデル トレーニング、モデル サービスなどの機能を含むスケーラブルなクラウド サービス上で実行され、完全なマシン ラーニング ワークフローを形成します。しかし、これは閉ループではありません。オンライン機械学習モデルは時間に敏感であることが実際にわかっています。たとえば、ニュース推奨モデルでは、ホットニュースのサンプル機能をタイムリーに更新する必要があります。このとき、閉ループを開き、オンライン予測結果をオフライントレーニングタスクに追加する必要があります。その後、オンライン学習またはモデルのアップグレードを通じて、完全な機械学習閉ループを実現できます。これらは、スタンドアロンの機械学習プラットフォームでは実現できません。

クラウド ディープラーニング プラットフォームの構築には、主に次のコンポーネントが含まれます。まず、クライアントがアクセスする API サービスです。サービス プロバイダーとして、標準の RESTful API サービスを提供する必要があります。バックエンドは、Kubernetes クラスター、OpenStack クラスター、さらには独自開発のリソース管理システムに接続できます。クライアントが API サービスを要求した後、プラットフォームは機械学習タスクのパラメータを解析し、Kubernetes または OpenStack を通じてタスクを作成し、実際に計算を実行するバックエンドのクラスター リソースにタスクをスケジュールする必要があります。トレーニング タスクの場合は、TensorFlow または MXNet ランタイム環境がプリインストールされているトレーニング タスク コンテナを起動できます。これらの抽象化レイヤーを通じて、スタンドアロンの TensorFlow トレーニング タスクを Kubernetes によって管理されるコンピューティング クラスターに送信して実行できます。モデルのトレーニングが完了すると、システムはモデルに対応するファイルをエクスポートし、最終的にクラウド ディープラーニング プラットフォームの API サービスをリクエストすることで Kubernetes が理解できるリソース構成リクエストに変換し、クラスター内で TensorFlow Serving などのサービスを開始できます。さらに、Google Cloud-ML の最新 API に予測機能が追加されました。予測を行う際には、オンライン サービスとオフラインの予測タスクの両方を開始できます。プラットフォームでは、対応する予測コンテナを作成して推論を実行し、予測結果を保存するだけで済みます。このシンプルなカプセル化により、Google Cloud-ML に似たインフラストラクチャを実装できます。

アーキテクチャは階層化され抽象化されており、実装に必要なのは 3 つのステップだけです。

最初のステップは、Docker イメージを作成することです。次の Dockerfile の例は、TensorFlow プロジェクトから抜粋したものです。公式が実行可能な Docker イメージを提供しています。カスタマイズされた起動スクリプトを追加することで、開発環境、モデルのトレーニング、モデルのサービングなどの機能を実装できます。

2 番目のステップは、標準 API サービスを実装することです。以下は Python 実装の例です。ユーザーはトレーニング タスクを開始するためのリクエストを送信します。サーバーはリクエストのパラメーターとコンテンツを解析し、Kubernetes などのバックエンド クラスターにタスクを送信できます。

3 番目のステップは、Kubernetes に必要なファイル形式を生成することです。次の JSON ファイルも GitHub にあります。これは、分散 TensorFlow タスクを Kubernetes クラスターに送信して実行することを実装しています。

3 つの簡単な構成で、機械学習タスクをローカルからクラウドに移行するプロセスを完了し、クラウド機械学習サービスを実現できます。前述のように、クラウド ディープラーニング プラットフォームは、リソースの分離とリソースの共有をサポートする必要があります。これはどのように実現されるのでしょうか。実は、Kubernetes 自体にこの抽象化があります。ユーザーはリクエスト時に必要な CPU、メモリ、さらには GPU リソースを宣言し、cgroups や namespace などのコンテナー テクノロジを通じてリソースの分離を実現できます。一方、kube-scheduler は、リソースのスケジューリングやリソースの共有などの機能を実装します。開発者は、自社開発またはパブリッククラウドのクラウド機械学習プラットフォームを実装することで、トレーニングタスクの送信やモデルサービスの作成などを簡単に行うことができます。しかし、実際の機械学習のシナリオでは、コンピューティングリソースの分離とスケジュールを解決するだけでは十分ではありません。データ処理、特徴エンジニアリングなどの問題を統合する方法も再考する必要があります。

クラウドディープラーニングプラットフォームを再定義するTensorFlowは、ディープラーニングに使用できる数値計算ライブラリです。TensorFlowをベースに、MLP、CNN、RNNなどの機械学習モデルを実装できます。しかし、Sparkは不要になったということでしょうか?両者の関係はどうなっているのでしょうか?

本番環境では、TensorFlow が既存のビッグデータ処理ツールを完全に置き換えるわけではないことがわかりました。データ分析と特徴量エンジニアリングには Spark を使用する必要があり、構造化データを保存およびクエリするにはデータ ウェアハウスなどのサービスも必要です。 TensorFlow は優れたディープラーニング フレームワークですが、実際のシナリオでは、ユーザーは PowerGraph によって処理されるいくつかのグラフ関係機能を入力として必要としますが、これは単一のフレームワークでは解決できません。 Azure ML Studio を使用すると、ユーザーのモデリング プロセスの整理、データのクリーンアップ、機能の抽出、トレーニング済みモデルの起動、モデル効果の推定などを行うことができますが、これらはすべて TensorFlow には欠けています。

先ほど、Google と同様の分散型、高可用性、クラスター オーケストレーション コンピューティング プラットフォームを実現できる Cloud Machine Learning を紹介しました。ただし、MapReduce、ストリーム処理、グラフ コンピューティングなどのビッグ データ処理フレームワークも使用する必要があるため、これだけでは十分ではありません。 TensorFlow は、モデルトレーニングのための機械学習プロセス全体の一部にすぎません。CPU と GPU を管理およびスケジュールするには、Kubernetes も必要になる場合があります。機械学習ビジネスを完結させたいのであれば、Google Cloud-MLやAWSのサービスだけを提供するのではなく、TensorFlow、Spark、Hadoop、Hive、Kubernetesなどのフレームワークの原理と応用をマスターする必要があります。これが、私たちがクラウド機械学習を再定義したい理由です。

客観的に見ると、私たちには多くの知識が必要ですが、主観的に見ると、私たちは何を望んでいるのでしょうか。私たちは、単なる機械学習フレームワークや一般的なコンピューティング プラットフォームではなく、データ処理からモデル トレーニング、モデルの起動まで、完全なクローズド ループ サービスを望んでいます。コードを書かずに特徴抽出を行えるようにしたいと考えています。機械学習のワークフローは、実装するためにコードを書かなくても簡単に記述できるものであってほしいと思っています。さまざまな異種コンピューティング リソースをサポートできる、非常に柔軟なインフラストラクチャが必要です。プラットフォームがスケーラブルで、自動フェイルオーバーとスケーリングを実現できるものであってほしいと思っています。 前述のGoogle、Microsoft、Amazonが開発したクラウド機械学習プラットフォームに加え、さまざまなレベルのユーザーの利用ニーズを満たすために、IaaS、PaaS、SaaSなど多次元からの利用インターフェースを提供する必要があります。一方で、ドメインの専門家であれば誰でも簡単に利用できる、敷居の低い製品サービスである必要があります。

後ほど、クラウド機械学習プラットフォームを実際のシナリオで変革する方法を紹介し、Fourth Paradigm が提供する、敷居が低く、分散型で、可用性の高い Prophet 機械学習プラットフォームを紹介します。

フォースパラダイムのクラウドディープラーニング実践経験 フォースパラダイムのProphet Platformは、クラウドを基盤としたフルプロセスの機械学習製品です。ユーザーはWeb経由でProphet Platformにログインし、モデル研究や推定サービス機能を利用することができ、ドラッグアンドドロップで機械学習のワークフローを記述することができます。

使用手順は次のとおりです。最初のステップはデータの前処理です。ユーザーは Spark コードを記述する必要はなく、オペレーターと呼ばれるアイコンをドラッグするだけで、データクリーニングなどのデータ前処理タスクを送信できます。データ分割演算子をドラッグすると、データ セットをトレーニング セットとテスト セットの 2 つの部分に分割し、そのうちの 1 つの部分を特徴抽出用に左側に残すことができます。一般的に、Spark や Mapreduce などのオープンソース ツールを使用して特徴抽出を行うこともできますが、これには一定のプログラミング スキルとエンジニアリング能力が必要です。特徴抽出構成またはスクリプトを定義することで、ユーザーはコードを記述せずに元のデータ セットの特徴エンジニアリングを実装できます。そして、独自に開発した高次元ロジスティック回帰、高次元 GBDT などのモデルトレーニング演算子を接続したり、TensorFlow や MXNet などのオープンソースフレームワークに基づいて実装されたアルゴリズムを接続したりすることができます。最後に、モデルトレーニングによってモデルファイルを取得した後、分割したテストセットを使用してモデル予測を実行します。一般的なモデル評価演算子を使用して、AUC、ROC、Loglossなどの指標を視覚化することもできます。

Prophet プラットフォームでは、ユーザーはフローチャートを作成するだけでデータ処理やモデルトレーニングなどの機能を実装でき、実際のシナリオで機械学習のビジネス上の問題を真に解決できます。 Prophet プラットフォームの最新バージョンでは、非常に高い効率で特徴エンジニアリング構成スクリプトを生成したり、独自に開発された LR および GBDT アルゴリズムの最適なパラメータを取得したりするなどの AutoML 機能が提供されています。これらの機能により、効果的なモデリング ソリューションを取得するための反復的な作業が大幅に削減されるほか、データ サイエンティストがデータの予備的な理解を得るのにも効果的に役立ちます。シナリオによっては、専門家によるモデリングで達成される結果と同等、あるいはそれを超える結果を達成することも可能です。

現在、Prophet プラットフォームは主に以下のターゲット シナリオを解決します。

  1. データ導入を簡素化します。プラットフォームでは分散ストレージを使用するためにデータを必要とせず、トレーニング サンプル データを RDBMS などの SQL データベースから直接インポートすることもできます。
  2. データ分割を簡素化します。ユーザーは Spark コードを記述する必要はなく、データ分割後のストレージ パスを指定するだけで済みます。また、割合による分割とルールによる分割の 2 つのモードもサポートされています。
  3. 特徴抽出を簡素化します。プラットフォームは、連続的特徴と離散的特徴の抽出と組み合わせをサポートしています。連続的特徴の場合、自動マルチバケットアルゴリズムをサポートしています。また、一般的な特徴抽出方法をまとめ、スクリプトまたは構成にカプセル化します。ユーザーは、特定のロジックを自分でコーディングして実装する必要はなく、対応する構成を理解するだけで済みます。このプラットフォームは、既存の機能構成に基づいて機能の組み合わせを自動的に拡張し、モデルの効果を向上させることもできます。
  4. モデルトレーニングを簡素化するために、プラットフォームはオープンソースの機械学習アルゴリズムと、Fourth Paradigm が独自に開発した超高次元 LR アルゴリズムの実装をサポートできます。この LR アルゴリズムは、パラメータ サーバーを実装して、数十億または数百億の特徴次元を持つ高速分散トレーニング問題を解決します。学習率、正則化パラメータなどを自動的に調整できます。さらに、このプラットフォームは、線形フラクタル分類器などの拡張アルゴリズムも提供しており、人間の介入なしに数値的特徴をより効果的に活用できます。
  5. モデル評価を簡素化し、モデル推定結果を取得した後、モデルの ROC、Logloss、KS などの指標を計算できます。異なるモデルの指標を計算する方法は似ています。ユーザーは実装コードを繰り返し記述する必要がなく、演算子をドラッグアンドドロップして直接呼び出すことができます。上記はすべて、Prophet プラットフォームによって解決される問題です。
  6. モデルの起動を簡素化します。一般的な高次元 LR/GBDT モデルは、ワンクリックでオンライン サービス インスタンスとして公開できます。これにより、モデルの展開と運用および保守が簡素化されるだけでなく、オンライン インスタンスにはほとんどの機能エンジニアリング ロジックも含まれるため、機能処理ロジックのオンライン バージョンを再度手動で開発する必要がなくなります。

現在、Prophetプラットフォームは銀行、金融、インターネットなどのさまざまな業界で成功裏に応用されています。「Prophetプラットフォーム」に基づく不正防止モデルは、銀行が数ミリ秒で疑わしい取引を識別するのに役立ちます。同時に、「Prophetプラットフォーム」はニュース、ビデオ、オーディオなどのコンテンツ推奨シナリオでも主要なビジネス指標を大幅に改善することに成功しました。さらに、企業が機械学習を活用して業務効率を向上させることを可能にする一方で、より意義深いのは、「Prophet Platform」が機械学習の利用の敷居を大幅に下げることです。

Prophet は、機械学習ビジネス全体のための人工知能プラットフォームとして、データ処理、モデルトレーニングからモデルの起動、フィードバック更新までのシステムクローズドループをカプセル化します。ユーザーは、強力なプログラミングおよびエンジニアリング能力を必要としません。ドメイン専門家とビジネス担当者は、プッシュアンドプル方式でモデリングと起動を実行できるため、企業はデータ収集からビジネス価値の向上まで、最終目標を迅速に達成できます。

特許取得済みのアルゴリズムの継続的な更新と、よりリアルタイムで効率的な極限エンジニアリングの最適化により、Future Prophet プラットフォームは人工知能の産業応用の敷居をさらに下げ、より多くの企業が人工知能サービスを享受できるように支援します。

<<:  3大ニューラルネットワークから、TensorFlow、MXNet、CNTK、Theanoの4つのフレームワークをテストして比較します。

>>:  60年間の浮き沈みを経て、人工知能はどれだけの偏見や誤った判断を経験するのでしょうか?

ブログ    

推薦する

...

機械学習システムの弱点: 保護が必要な 5 つの理由

[[345683]]日々の努力の究極の目的は、生活をより楽に、より便利にすることです。これが人類の歴...

テスラ、マイクロソフト、グーグル、アップルなどを含む1,000件以上の「AIロールオーバー」事件が発生しています。

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

この記事では機械学習における3つの特徴選択手法を紹介します。

機械学習では特徴を選択する必要があり、人生でも同じではないでしょうか?特徴選択とは、利用可能な多数の...

OpenAIをターゲットに!元Google CEOがAI+サイエンスのムーンショット計画を発表

元 Google CEO のエリック・シュミット氏は、AI を活用して科学研究の課題に取り組むことを...

...

...

人工知能は希少疾患を患う4億人の患者がより効果的な診断を受けるのに役立っている

[[284630]] ▲人工知能は数百万の遺伝子変異を高速で検索し、希少疾患の原因を特定することがで...

AlphaCode がリリースされました! 「AlphaGo」のプログラミング版が静かに競争し、プログラマーの半数を破る

本日、DeepMind の「Alpha」ファミリーに新しいメンバーが加わりました。プログラミング競技...

流行を予防し制御するために、人工知能はまだ3つの大きな問題を解決する必要がある

新型コロナウイルス感染症は、中華人民共和国成立以来、最も急速に広がり、最も広範囲に及び、最も困難な公...

人工知能、機械学習、認知コンピューティングの入門

何千年もの間、人々はインテリジェントな機械を構築する方法について考え続けてきました。それ以来、人工知...

...

GPT-2はGPT-4を監督できる、イリヤがOpenAI初のスーパーアライメント論文を主導:AIアライメントAIは実証的な結果を達成

過去1年間、「次のトークンを予測する」ことを本質とする大規模なモデルが人間の世界の多くのタスクに浸透...

OpenAIのアルトマン氏、ニューヨークタイムズの訴訟に反応: AIはニュース出版社からのトレーニングデータを必要としない

ブルームバーグによると、1月17日、現地時間火曜日にダボスで行われた世界経済フォーラム年次総会で、O...

...