既存のビッグデータ技術を使用して機械学習プラットフォームを構築する方法

既存のビッグデータ技術を使用して機械学習プラットフォームを構築する方法

[[210160]]

機械はどのように学習するのでしょうか?

人間の脳は継続的に経験を蓄積する能力があり、経験を頼りに分析し、処理する能力を持っています。たとえば、市場にスイカを買いに行くと、他の人や自分の経験から、緑色で根が丸まっていて、食感がはっきりしていて、叩いたときに大きな音がするスイカの方がおいしいことがわかります。

私たちにはこのような能力がありますが、機械はどうでしょうか? 機械は指示を受け取って処理するだけではないでしょうか? 人間の脳と同様に、履歴データを機械に取り込むことができます。機械はモデリング アルゴリズムを使用してモデルを生成し、そのモデルに基づいて新しいデータを処理して未知の属性を取得できます。以下は機械学習と人間の脳の誘導体験のカテゴリ図です。

プラットフォームコンセプト

Tongcheng 内では、機械学習を適用しているいくつかのチームについて学び、それらの共通の処理手順が次のようになっていることがわかりました。

このプロセスにはいくつかの問題点があります。

  • オンラインデータをオフラインに移行するには時間がかかる
  • トレーニングデータの量のバランスを取るのが困難です。トレーニングデータの量が多い場合、R または Python を使用した単一マシントレーニングは非常に時間がかかります。トレーニング データの量が少ない場合、トレーニングされたモデルは過剰適合する傾向があります。
  • アナリストとマイナーのコーディング能力には一定の要件があります。

そのため、オンラインデータ上で直接モデリング実験を実施し、機械学習の開発コストを節約し、機械学習の応用の敷居を下げるためのプラットフォーム製品群を構築できると考えています。

プラットフォーム構築

設計目標

  • 大規模なモデリング実験をサポートし、並列計算により時間消費を短縮します。
  • 構成しやすい最小実行単位を抽象化します。ドラッグして接続することでモデリングプロセスを構築
  • 回帰、分類、クラスタリングなどの問題を処理するための一般的な機械学習アルゴリズムをサポートします。標準化、正規化、欠損値処理などの一般的な特徴エンジニアリング コンポーネントをサポートします。
  • アルゴリズム評価結果の可視化をサポート

アルゴリズムライブラリ

アルゴリズムライブラリに関しては、Spark を選択しました。R や Python と比較すると、Spark は分散コンピューティング機能を備えており、より効率的です。

ml と mllib はどちらも Spark の機械学習ライブラリです。現在、両方のライブラリは一般的に使用される機械学習機能のニーズを満たすことができます。 ml は主に DataFrame 上で動作します。RDD 上で mllib が提供する基本的な操作と比較すると、ml は DataFrame 上で抽象化のレベルが高く、データと操作の結合度が低くなります。

ml はパイプラインを提供します。これは、Python の sklearn と同様に、パイプラインの形式で多くの操作 (アルゴリズム/特徴抽出/特徴変換) を連結することができ、StringToIndexer、IndexerToString、VectorAssembler などのタスクの組み合わせに非常に便利です。

コンポーネントベースの設計

アーキテクチャ設計の観点から見ると、アルゴリズムユニット、機能エンジニアリングユニット、評価ユニット、その他のツールユニットであっても、すべてコンポーネントの形で設計できると考えています。共通のインターフェース動作とさまざまな実装を利用することで、疎結合と容易な拡張性を実現できます。

上の図は全体の設計クラス図の一部ですが、実際にはさらに抽象化のレベルと共通コードが作られています。コアクラス BaseTask を見てみましょう。

  

run メソッドの実装はテンプレートのセットであり、手順は次のとおりです。

各コンポーネントは、独自のコアロジック実行メソッドを実装するだけで済みます。

プラットフォームの反復

v1.0 (プラットフォーム コア アーキテクチャ)

上記の設計目標に基づいて、機械学習プラットフォームの最初のバージョンのアーキテクチャは次のようになります。

ユーザーはインターフェースを介してコンポーネントをドラッグアンドドロップしてモデリングプロセスを構築し、コンポーネントの構成と依存関係をDBに保存します。

  • ユーザーはインターフェース上でモデリング実験の実行をトリガーすることができ、これは実際にspark-submitを通じてsparkタスクを送信します。
  • このタスクの実行は Ml Engine が担当します。ドライバー側では、現在の実験の依存コンポーネントとプロセス関係を DB から取得します。これらのコンポーネントは順番に実行され、RDD に関連する操作は並列計算のために Spark Executor に送信されます。

プロセスと評価ビュー

   

最初のバージョンでは、あまり多くのアルゴリズムコンポーネントを提供せず、線形回帰とロジスティック回帰のみを提供していました。しかし、コンポーネント化の考え方に基づいて、後の段階で迅速に反復できると確信しています。

アルゴリズムの数が少なくなるだけでなく、ビジネスからのフィードバックと独自の考えが組み合わされます。機械学習プラットフォームにはさらに多くの機能があると考えています。

  • このプラットフォームは単なる実験コンソールではなく、予測結果の着陸(オフライン計算)機能も追加されています。
  • 履歴データは拡大し続けるため、ほとんどの場合、モデルのトレーニングは周期的なプロセスになるはずです。私たちは、ユーザーがこのプロセスをプラットフォーム レベルでホストできるように支援したいと考えています。

v2.0 (拡張コンポーネント、オフライン コンピューティング、定期的なスケジュール)

第 2 バージョンでは、まず元の設計フレームワークに基づいて、関連する実用的なコンポーネントを拡張および改善しました。

同時に、第 2 バージョンでは、細部に渡っていくつかの改善を加えました。

  • モデリング実験の実行状況プロセス表示により、ユーザーは各コンポーネントの実行時間、ステータス、ログなどを観察できます。
  • 完全なコンポーネントに依存してローカルで実行できます。より複雑なモデリング実験では、最初にローカル検証とパラメータ調整を実行できます。
  • モデリング実験はクローン作成をサポートする

オフラインコンピューティング

予測結果を CSV 形式で HDFS にドロップできる「フィールド ランディング」ツール コンポーネントを提供します。

 

定期的なスケジュールとマクロ変数のサポート

当社の別の製品であるビッグデータ開発キット (BDK) は、定期的なスケジュール設定の機能をカバーしています。機械学習プラットフォームのモデリング実験は、サブタスクの形でこれに組み込むことができます。マクロ変数 (「/%Y/%m/%d」などの特定の規則的な構文置換は現在の日付を表すことができます) と組み合わせることで、ユーザーは当社のプラットフォームでモデリング実験をホストし、定期的なオフライン コンピューティングの目的を達成できます。

建築

要約すると、当社のプラットフォームの第 2 バージョンは、コンポーネントの強化と機能の改善、オフライン コンピューティングの結果の実装、定期的なオフライン コンピューティングのための BDK の組み合わせに重点を置いています。具体的なアーキテクチャは次のように進化しました。

v3.0 (リアルタイム予測とクロス検証)

リアルタイム予測

当社のプラットフォームでは、モデリング実験を通じてモデルをトレーニングできます。モデルは、PMML などの標準を通じてエクスポートできます。同様に、モデル エクスポート機能を使用して、モデルを parquet 形式で HDFS の対応するディレクトリに保存できます。ユーザーはこれらのモデル標準を入手し、一部の機能を独自に実装できます。しかし、リアルタイム予測機能も当社のプラットフォーム上で抽象化できると考えています。そのため、3.0 アーキテクチャでは、リアルタイム予測サービスを提供する tcscoring システムを開発しました。

tcscoring システムの依存媒体はモデルの PMML ファイルです。ユーザーは、トレーニング済みのモデルに対応する PMML ファイルを機械学習プラットフォームに直接展開するか、他のパスを通じて PMML ファイルを生成することができます。デプロイが成功すると、予測用の REST インターフェイスがビジネスでの使用のために返されます。

もちろん、PMML の展開を BDK と組み合わせて定期的なスケジュールを設定することもできます。モデルの定期的なトレーニングと組み合わせることで、トレーニング + 予測プロセス全体を機械学習プラットフォーム + BDK に委託してホスティングすることができます。

クロス検証

機械学習プラットフォームの 3 番目のバージョンでは、クロス検証にも重点を置いています。以前のバージョンでは、ユーザーは一度に 1 セットのハイパーパラメータしか実験できませんでした。クロス検証を使用すると、ユーザーは 1 つの実験で複数のハイパーパラメータ セットを設定し、トレーニング セットをトレーニング用と検証用に比例して分割して、最適なモデルを取得できます。

プラットフォームの展望

パーソナライゼーション

3 回の反復を経て、機械学習プラットフォームは多くの一般的な事柄を抽象化しましたが、収益化がうまくいかなかったパーソナライズされたものがまだいくつか残っていました。システムをパーソナライズする最良の方法は、ユーザーに独自のコードを書かせることだというのが私たちの考えです。カスタム プラグインのインターフェイスをオープンにし、動的コンパイル技術を使用してこれらのパーソナライズされたコンポーネントをロードし、モデリング プロセスに統合します。

他のアルゴリズムパッケージを統合する

現在、広く使用されている xgboost など、spark ml 以外のアルゴリズム パッケージの統合も試みています。一方、現在のアルゴリズムは依然として従来の機械学習アルゴリズムに基づいています。ディープラーニングの場合、TensorFlow に組み込まれているか、Deeplearning4j などのサードパーティのディープラーニング ライブラリを使用しているかなどです。次に、Spark ml以外のアルゴリズムパッケージを統合してみます。

<<:  AIとデータセンターの相互依存

>>:  ビッグデータと人工知能の分野で初心者から専門家になるためのガイド

ブログ    
ブログ    

推薦する

2018 年の画期的なテクノロジー トップ 10: AI と知覚都市

2017年、MITテクノロジーレビューは、強化学習、自動運転トラック、360度セルフィー、顔認証決済...

AIはいかにして「医療の神様」となったのか?

[[236501]] 「彼はただ生き残りたいだけ。どんな罪を犯したのか?」黄茂さんが亡くなった後、...

このアルゴリズムはアーキテクチャを自動的に最適化し、エンジニアがニューラルネットワークを設計するのに役立ちます。

最近、カナダのバンクーバーで NeurIPS 2019 が開催されました。テンセントAIラボからは合...

ほんの数行の Python コードで、将来の子供がどのような外見になるかを予測できますか?強力な人工知能

今回はBaidu Smart Cloudの顔認識機能とPythonを組み合わせて実験してみました。結...

話題の「人工知能」について、気になるNの質問にお答えします

人工知能は、かなり長い間人気を博してきました。多くの投資家、起業家、そしてあらゆる規模の企業が、この...

回答者の半数以上が顔認識技術の使用に懸念を抱いている

近年最も注目されている新技術の一つとして、顔認識技術が広く利用されています。人々の生活は便利になった...

知恵くんの“いいとこ”が明らかに!初のユニバーサルな具現化ベースモデル、ロボットは「理解はできるができない」状態に別れを告げる

先週金曜日、知会君は微博で「来週は良いものがリリースされる」と発表した。 「来週」になって間もなく、...

グラフなしの ICLR'24 のための新しいアイデア! LaneSegNet: 車線セグメンテーションを考慮したマップ学習

序文と著者の個人的な理解自動運転システムの下流アプリケーションにとって重要な情報である地図は、通常、...

ロジスティック回帰を用いた分類

[[345345]]ロジスティック回帰は機械学習でよく使われる手法です。教師あり機械学習に属します。...

AlphaFold2 の原理: 注意メカニズムが畳み込みネットワークに取って代わり、予測精度が 30% 以上向上

[[412540]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

普遍近似定理を理解しなければ、ニューラルネットワークを理解することはできないだろう。

[[422682]]以前、チューリング賞受賞者でありディープラーニングの先駆者であるヤン・ルカン氏...

人工知能が地震監視を新たな時代へ導く

[[388691]]被害の程度を軽減することは地震研究者にとって重要な目標です。破壊的な地震が発生し...

AIによって非効率と判断され、150人の労働者が解雇された。「労働者をコントロールできるのはまさに人工知能だ」

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ChatGPT「ピクチャートーク」が大変身しました!舞台裏で新型GPT-4Vモデルが公開

ChatGPTに音声・画像機能が加わりました! ChatGPT にログインすると、より直感的なインタ...

AES暗号化アルゴリズムの強度が弱まった

この脆弱性は、広範囲にわたる暗号分析を行った3つの大学とマイクロソフトの研究者によって発見されたが、...