2018年12月5日
H 2 OドライバーレスAIの作成 – 自動機械学習
共有カテゴリ:AutoML、コミュニティ、無人AI、H2Oワールド、H2O4GPU、メーカー、テクニカル、テクニカル記事
投稿者:Arno Candel
私たちの最新の自動機械学習製品であるAIを民主化するための最新の自動機械学習製品であるH2O Driverless AIの作成から得られたナゲットや洞察をこれまでになかったものと共有することが私の喜びです。これは本当にチームの努力でした、そして、私は絶え間なく作成して、革新することを続けている私たちの素晴らしいメーカーをもっと誇りに思うことができませんでした。このブログは、この製品に加わったすべてのハードワークのほんの一部を表したものです。ここでは、簡単のために一部の技術的貢献者のみを含めますが、会社全体がこの製品に心と魂を注ぎ込んでいます。H2O Driverless AIは、間違いなくメーカー文化の優れたショーケースです。
2017年1月 – H2O.ai:データ+ ai +人=素晴らしい
それはすべて、カリフォルニア州マウンテンビューでの雨の日(意図した通り)に始まった。現在業界標準のオープンソースの機械学習プラットフォームH2O-3の作成に5年近く費やした後、H2O.aiのメーカーの何人かは、次の明白な問題に取り組む準備ができました。H2O Driverless AIによる自動機械学習。特に最初の2人のKaggleの祖母を集めていたので(現在126人のうち126人のH2O.aiに6人のKaggleの祖母がいます)、そして私達は何年もの間Kaggleに参加していました。どちらもH2O-3のAutoMLによってスケーラブルな方法で行われています。
これが私たちの先見の明のある創設者兼CEOのSri Ambatiによる 2017年1月のオリジナルホワイトボードスケッチです。
Driverless AI(当時はH2O.aiと呼ばれていました)の目的は、中央の3つのノブ(精度、速度、解釈可能性)によって制御され、必要なユーザー入力を最小限に抑え、経験の浅いデータサイエンティストが最も正確なトレーニングを実行できるようにすることです可能なモデル、そしてあらゆるレベルの専門知識を持つデータ科学者にとって非常に貴重なデジタルアシスタントになることができます。また、最も一般的な種類のデータの処理、解釈可能で説明可能なモデルおよび予測の作成、および社内ハードウェア上でもクラウド内でも最善のオープンソースの機械学習プラットフォームを使用することができなければなりません。数分で。
これらが製品要件でした。
- 使いやすい
- 自動探査データ解析と可視化
- トランザクション、テキスト、時系列、および画像データに対するクラス最高の自動機械学習
- 自動モデルデバッグ – ドキュメンテーション、透明性、解釈および説明
- Python / Java / C ++でのプロダクションデプロイメント用の自動パイプライン
- 構内やクラウドに簡単にインストール
開発チームに対する唯一のガイダンスは以下のとおりです。
- 既存のオープンソースプロジェクトを使用する(H2O.aiによって書かれたものだけではない)
- 何かが足りない場合は、作成してオープンソースにします。
この素晴らしい挑戦と究極の創造的自由を考えると、我々はコーディングを始める準備ができていました!
少なくとも次の技術的マイルストーンを達成する必要があることがわかりました。
- データ科学者は、コアコードベースに直接貢献できるはずです。
- データ操作はメモリを使って非常に速く効率的でなければなりませんでした
- オーバーフィットやリークなど、データサイエンスにおける一般的な落とし穴を回避する必要がありました。
- 私たちは、GUIの大部分、クライアントのバインディング、そしてパイプラインの採点を自動生成しなければなりませんでした。
- すべてをマルチコアCPU間で並列化し、可能であればGPU高速化する必要がありました
これらの目標を達成するために、C ++で書かれたアルゴリズムの制御言語としてPythonを使用したシングルノード設計を使用して、H2O Driverless AIの最初のバージョンを構築することにしました。欠けていたものは何でも、私達は作成するでしょう。
分散コンピューティングと大規模な拡張性(スケールアウト)を念頭に置いてMap / Reduceパラダイムを使用してJavaで書かれたH2O-3とは対照的に、H2O Driverless AIは1つのボックスでスケールアップを使用し、ネットワークまたは通信のオーバーヘッドを回避します。単一ノードに収まるデータセットで可能な限り高速のパフォーマンスを実現するため(ほとんどのサーバーは現在256GBを超えるメモリを搭載しています。2TBを搭載しているサーバーもあります)。少なくとも今日では、自動機械学習が付加価値を生み出すことができる大多数のユースケースにはこれで十分です。
これは、さまざまな要素がどのように組み合わされ、各コンポーネントをどのように設計することにしたかを簡単に示したものです。
2017年3月 – フィーチャーエンジニアリング用Pythonデータテーブル
特徴工学は、機械学習モデルがノイズから信号をよりよく抽出できるように、ドメイン知識を使用してデータを再整形する技術です。されてよく知られて良い機能エンジニアリングが大幅にはるかにも、最も広範なパラメータチューニングは、何ができるかを超えて、多くの予測モデルの精度を向上させることができるという。
自動フィーチャエンジニアリングの困難なタスクを習得するには、特に高速の基数グループ化と集約、トランザクションデータセットまたは時系列データセットのフィーチャエンジニアリング用のパンとバターのために、最速の円柱状データフレーム操作エンジンが必要でした。そのために利用可能な最も普及している(高速、低メモリ使用量、柔軟)オープンソースライブラリ、Rのdata.tableを使用する必要があることはわかっていましたが、さらに別の市場需要を満たすためにPythonに移植する必要がありました。
これらはPython版datatableの設計目標です。
- マルチスレッド
- ビッグデータサポート(RAM不足を含む)
- 保守的なメモリ使用
- 効率的なアルゴリズム
- Rのdata.tableに似ています
- オープンソース
Python datatable version 0.7が先週リリースされ、上記の設計目標をすべて達成しました。それはDriverless AIのほぼすべての面とそのパフォーマンスへの重要な貢献者に深く埋め込まれています。
私の同僚によるR data.tableの最初の作者であるMatt DowleとPython datatableの主な作者であるPasha Stetsenkoによる次の2つの講演を見ることを強くお勧めします。(Jan Goreckiのおかげで)data.tableチームは R data.table、Python datatable、Spark、pandas、Dask、dplyr、Juliaを比較して非常に便利で最新の ベンチマークを作成しました。多くの特定のワークロードに最適です。
2017年3月 – 解釈可能な機械学習
その間に、同僚のPatrick Hallがメーカーのチームを結成し、機械学習の解釈に関するアイデアに取り組み始めました。この分野は明らかに技術革新に熟しており、生産に入る前にモデルをデバッグするために企業が頼ることができる解決策を必要としていました。すべての決定には透明性と理由コードが必要でした。すべての仮定シナリオを評価する必要がありました。部分従属プロットと洗練された代理モデルは、答えを得るための1つの方法にすぎませんでした。そして、ブレーンストーミングと文献レビューが完全に有効でした。これが初期のモックアップです。
2017年5月 – GPU向け機械学習用のH2O4GPU
我々はまた、特に非画像問題に関するKaggleの競争の大部分で勝利を収めたアルゴリズムである、グラジエントブースティングマシン(GBM)のための、可能な限り最速の機械学習アルゴリズムの実装を必要としていました。そこで我々はGPUアクセラレーテッドXGBoostをH2Oに追加しました。これは最も速くて成功したGBM実装の1つです。複数のGPUを搭載したボックスで、Deep Learningのワークロードだけでなくモデルのトレーニングを大幅にスピードアップできることが明らかになりました。
一般相対性理論およびスーパーコンピューティングの専門家Jon McKinneyが3月に私たちに加わり、GPUを使ってGLM、GBM、SVDおよびK-Meansアルゴリズムを高速化するための
H2O4GPUを中心とした取り組みを引き継ぎました。彼はすぐにDriverless AIの主要コミッターの1人にもなりました。
注:それ以来、Rory MitchellのXGBoost GPUプラグインの速度は、整数演算のようなトリックによって2倍以上になりました。
(メソッド使用して、当社のGLMソルバーの相対的な高速化当社の技術顧問教授・ボイドによって発明されたCPU対のGPU上で)実証するデモを作成するために私たちを導いたのGPUに関する世界最速の機械学習でNVIDIAのGTCの 2017年5月に会議を:
NVIDIAがH2O.aiに投資し、最近RAPIDSを発表したことで、統計的機械学習のためのさらに高速なGPUアルゴリズムが完成することを願っています。NVIDIAは、ディープラーニングだけではなく、エンタープライズ・マシンラーニングの問題にはデータサイエンスソリューションと統計的な機械学習アルゴリズムのフルスタックが必要であるという私たちのビジョンを共有していることに興奮しています。
2017年5月 – フィーチャーエンジニアリングのための進化的アルゴリズム
Kaggleの祖父母Dmitry Larkoは個人的に戦闘で証明されたPythonライブラリの兵器庫を作りました、そして彼は自動的に進化的アルゴリズムを使って最適な機能工学パイプラインを作成した ‘AutoDL’レシピの最初のバージョンで私たちを祝福しました。プロセスの繰り返しごとに、モデルのフィードバックに基づいて機能が作成され、その予測能力がXGBoost(後にLightGBM、TensorFlow、またはGLM)によってテストされます。弱い特徴は捨てられ、システムは収束が検出されるまで継続的にその性能を改善するであろう。下の写真は今日の外観ですが、当時はJupyterのノートブックしかありませんでした…
Dmitryが、Driverless AIの機能エンジニアリングに関するウェビナー、および最近の H2O AI Worldでのプレゼンテーションで、いくつかの概念を説明しています。
チェスや囲碁のようなボードゲームをプレイするコンピュータの最近の進歩と同様に、私たちのDriverless AIのプロトタイプは、熟練したデータ科学者の仕事を数時間で模倣することで模倣することができました。そして巧妙な検証スキーム(再利用可能なホールドアウトの修正版など)が組み込まれているので、 過剰適合やデータ漏洩の導入などの最も一般的なデータサイエンスの誤りを犯さないように設計されました。
Allstate Claims Severity Kaggle競争ベンチマークにおけるAutoDLの元のパフォーマンス比較は次のとおりです(低いほど良い)。
2017年5月 – アプリケーション開発
2017年5月までに、Sriのアーキテクチャスライドは次のようになりました。
同じ頃、H2OのFlow UIの最初の作者であるPrithvi Prabhuは、自動生成されたProtobufバインディングとIPCに基づいてサーバー/クライアントアプリケーションの設計を設計し実装し、そして自動生成されたUIにも取り組み始めました。開発の容易さのためにPythonコードがその状態を取り入れました。2017年5月、彼の新しいGUIの最初のプロトタイプは次のようになりました。
2017年6月 – 自動視覚化
6月までに、私の同僚Leland Wilkinson は自動視覚化のための別のパッケージ、AutoVisをコーディングしました。彼は統計ソフトウェアパッケージSYSTATの本の原作者であり、本のグラフィックス文法、 Rのggplot2、PythonのBokehおよびTableauのような会社の基礎です。
AutoVisは、外れ値や歪んだヒストグラムなど、特定のデータセットについて興味深い(または気になる)ものだけを自動的に表示します。AutoVisの中心的な構成要素の1つは詐欺学であり、それをスケーラブルにするために、LelandのAggregatorアルゴリズムを使用しました。これは、データの外れ値を保持することを目的とした代表的なサンプル(見本)へのクラスタリングの一種です。私たちは当初H2O-3で実装されたアグリゲーターを使いました、そしてバージョン1.4の時点で私達は今やPythonデータテーブルの一部であるもっと速いバージョンに頼ります(私の前そして現在の同僚Oleksiy Kononenkoのおかげで)。
詳細については、 LelandのH2O Driverless AIでのAutoVisのプレゼンテーションを必ずご覧ください。
2017年9月 – 最終アセンブリとテスト
夏には、すべてのコンポーネントをユーザーフレンドリーなアプリケーションに統合しました。業界をリードする堅牢な機械学習システムの作成における長年の経験を基に、さらに高速化と正確性を高めるための並列化、モデルの統合、追加のパラメータ調整方法など、パフォーマンスを重視する機能強化を行いました。
私たちは何百ものテストを書きました(現在は数千にのぼります)。完全なテストスイートをJenkinsクラスタで実行するには数時間かかります。この製品は現在単一のDockerfileになっていました。
その間、Jeff Gamberaを取り巻くITおよびインフラストラクチャチーム、およびシニアチームメンバーのTom KraljevicとMichal Malohlavaが、エンタープライズ機能のテスト、展開、実装に関する自動化の取り組みを主導してきました。
数ヵ月後、バージョン0.8のH2O Driverless AIを使って、1時間後には挑戦的なKaggleのコンペティションでトップ2.3%にランクインすることができた。2016年からのこのコンペティションでは、機能エンジニアリングが特に役に立ち、私たち自身のKaggleグランドマスターの何人かは、Driverless AIの結果をわずかに上回るために2か月と数百の提出物を費やしました。
注:H2O Driverless AIの最新バージョン1.4.2はそのままで第10位(トップ0.3%)になり、Dmitryの元のパフォーマンスをこのコンペティションに結び付けます(彼は10位)。
その間、私たちの機械学習通訳(MLI)チーム(Patrick、Navdeep、Megan、Wen、Mark)はH2O Driverless AIの一部として解釈可能な技術の完全な一式を思いつき、さらに小冊子を作成しました!
素晴らしい概要については、H2O Driverless AIでの解釈可能な機械学習に関するPatrickの最新のプレゼンテーションを必ずご覧ください。
2017年9月 – 無人AIが離陸
2017年9月下旬に、主要なすべての部品を配置し、H2O Driverless AI 1.0をリリースしました。100テラフロップス搭載の8 GPU NVIDIA DGXスーパーコンピュータ上でスムーズに実行できるよう最適化しました(ただしGPUは常にオプションです)。
無人AIはデータ科学者にとってデジタルコンパニオンとなり、面倒な手作業によるデータのクリーニングと準備、バリデーションスキームの作成、機能エンジニアリング、モデルパラメータの調整、モデルのアンサンブルの必要性を排除し、プロセス全体の自動パイプラインを作成することさえ可能になりました。生産に行く準備ができて。そしてそれは平易な英語でその予測を説明することができます。いくつかのボタンをクリックするだけですべての。
それまでに、アーキテクチャとロードマップは形作られました:
Jan Gamecは、プラハオフィスに新しく設立されたチームに加わり、すぐにH2O Driverless AIのフロントエンドとバックエンドの両方の作業にかけがえのないリソースになりました。そして、多くのユーザー向け機能は彼の貢献の結果です。
2018年春 – 機能の爆発的拡大と急速な顧客の採用
2018年1月、H2O Driverless AI 1.0.5はInfoWorldの2018年テクノロジー・オブ・ザ・イヤーを受賞しました。
今後数ヶ月の間に、私たちは多くの新機能を追加しました。それらの大部分は顧客と見込み客によって要求されました:
- よりスマートな機能進化
- より速いスピード
- UX、モデルメトリクスの改善
- マルチGPUシングルGBMモデルトレーニング
- TensorFlowディープラーニングモデル
- GLMモデル
- RuleFitモデル
- Shapley変数の重要性、解釈可能なモデルへのブレークスルー
- テキストデータのNLPレシピ(tf-idf、n-gram)
- HDFS、S3、Excel、スノーフレーク、Azure、GCP、BigQuery、Minioコネクタ
- LDAP、PAM、ケルベロス
- ネイティブインストーラー(RPM、DEB)
- IBM Powerサポート
- Javaスコアリングパイプライン
- 多数の採点基準
- 自動ドキュメンテーション
- などなど …
2018年夏 – 時系列レシピ
その間に、私たちの他の2人の熟練したKaggle祖母Marios MichailidisとMathias Muellerは時系列レシピ(AutoM&M)に取り組み始めました、そしてそれは以下の要件を満たさなければなりませんでした:
- 完全に自動化するか、ユーザーがパラメータを上書きできるようにします。
- 分類と回帰の両方の予測を行う
- 混合データ型を持つトランザクション多変量データセットの処理
- 欠損値を処理する
- 季節性や傾向を自動的に検出
- 時系列信号のグループを自動的に検出
- ローリングウィンドウを使用して内部検証
- トレーニングと本番展開の間にオプションのタイムギャップを含める(使用されるラグに影響する)
- 行ごとのスコアリングを許可する
2018年の夏には、因果関係の分割(移動ウィンドウ)、遅延の特徴、それらの相互作用、および時間グループ化列の自動検出( ‘Store’や ‘Dept’など)に基づくKaggle実証済み時系列レシピを統合しました。各店舗および部門の週間売上を含むデータセット)
これらのラグベースの機能を作成することで、アルゴリズムは過去の値と傾向によってデータを分割することができ、その結果は印象的でした。H2O World New Yorkを時系列でサポートするH2O Driverless AI 1.2.0を出荷しました。
時系列に関するJo-Fai Chowによるブログ、および主な作家MariosとMathiasによるプレゼンテーションで、より多くの情報を見つけることができます。
将来のバージョンでは、残り2つの未解決の問題に対処する予定です。
- 非常に不均一な時間間隔でデータをトレーニングする能力
- 短期間の遅れを許容するために生産中のモデルに新しい実際の目標値を提供する能力
2018年夏 – TensorFlow NLPディープラーニングモデル
その最初のバージョン以来、AutoDLはすでにSVDやGLMのようなアルゴリズムによって次元数が削減されたワードカウントベースの機能によってテキスト列を扱うことができました。
2018年春にインドの#1 KaggleグランドマスターSRKが入社して間もなく、彼はTensorFlow CNNディープラーニングモデルを使用した強化された(そしてより高価な)自然言語処理(NLP)レシピを提供しました。その他の関連ユースケース それはまた、CPUの10倍以上のスピードアップを備えたGPUの存在から利益を得るでしょう。
データに含まれるすべてのテキスト列が、特定の言語にとらわれないテキストモデルによって、範囲外の予測に変換されるようにシステムを設計しました(言語にスペース区切りのトークンがある限り)。この種のターゲットエンコーディングでは、ディープラーニングモデルとGBMやGLMなどの他の統計モデルによって作成された機能を混在させることができ、テキスト機能に加えて数値機能またはカテゴリ機能を持つデータセットにこれらの強力な単語埋め込みを使用できます。
見ていることを確認しSRKのプレゼンテーションをし、ジョー・ファイの読み
NLPのブログをあなたはこれらの技術を使用する方法を参照してください。
文字レベルのモデル、事前訓練された埋め込み、およびLSTMのサポートは、進行中またはロードマップ上で行われています。
2018年秋 – H2O AIワールドロンドン
11月には、ロンドンでこれまでで最大のH2Oワールドイベントを開催し、H2O Driverless AI 1.4.0にさまざまな新機能を導入しました。
- はるかに大きいデータセットのサポート(一部のお客様は500GB以上のデータセットを使用しています)
- LightGBMモデル
- 時系列レシピの改善
- 再トレーニングを避けるためのスマートチェックポイントおよび自動機能ブレイン
- KDB +コネクタ
- MLIにおける時系列サポート
これで、Kaggle Grandmaster Panelから学び、優れた講演者のプレゼンテーションをすべて見るのに最適な時期です。
その直後、私達は彼のレシピを寄付する準備をしている私達の最新のKaggle祖母Bojan Tunguzを迎えました!
今週は、バージョン1.4のIBM Powerサポートを追加したH2O Driverless AIのバージョン1.4.2をリリースします。
2019年 – 次は何ですか?
Driverless AIの将来と、オープンソースのプラットフォームであるH2O-3とSparkling Water(独自の自動機械学習AutoML)との統合に非常に興奮しています。
今後数ヶ月のうちに、次の主要なマイルストーンを追加する予定です。
オープンソースプラットフォームの収束とビッグデータの実現
- H2O-3 / Sparkling WaterからH2O Driverless AIモデルをトレーニング
- H2O-3 / Sparkling Waterの中にH2O Driverless AIアーティファクトを配置する
- H2O-3 / Sparkling Waterバックエンドを使用した大規模H2O Driverless AIパイプラインのトレーニング
- メモリ不足データサイズのアルゴリズム
企業規模
- マルチノード、マルチユーザーサポート
- モデル寿命管理
- プロジェクト管理とコラボレーション
ユーザビリティの向上
- C ++採点パイプライン
- ビジュアルモデルのデバッグ
- フィーチャーエンジニアリングパイプラインの手動微調整
ここに記載されている項目のほとんどは現在作業中ですが、ロードマップについて質問や提案がある場合はお知らせください。
読んでくれてありがとう!私と同じくらいあなたがこれを楽しんだことを願っています!今こそ、自動機械学習にH2O Driverless AIを使い始める最良の時期です。学術用途には無料です。
クレジット
私が個人的に上記で言及されなかったすべての人に謝罪します、私が書くことができたもっと多くのことがありえますシステム、NikhilとJustinのAutovisの統合、KubaのSpark MOJOの統合、Chandanのデータ拡張レシピ、Nickのクラウドコネクタ、MLIに関するMateuszとPramitの作業、DougのUIの改善、Michal、SankarとAnuの自動テストシステム、Daurenの認証と特に急成長しているチェコのチームでは特にそうですが、私はコーディングに戻らなければなりません。
感謝のマークランドリー持参で彼の助けのための文化「のデータ科学はteamsportは」私の作っH2O.aiへと(不当)のためKaggleマスター過ぎます。この機会を与えてくれたSriと、Team H2O.aiのみんなに感謝します。
便利なリンク
タグ
- AI
- 人工知能
- 自動機械学習
- ビジネス変革
- 分類
- 畳み込みニューラルネットワーク
- データサイエンス
- ディープラーニング
- 企業
- 説明可能なAI
- 機能エンジニアリング
- 予報
- GPU
- グラデーションブースト
- H2O
- h2o-3
- ハドープ
- 解釈可能性
- 線形回帰
- 機械学習
- 自然言語処理
- ニューラルネットワーク
- NVIDIA
- オープンソース
- パイプライン
- 予測分析
- 製造
- パイソン
- 回帰
- スケーラブル
- 教師付き機械学習
- テンソル流
- 時系列
- 可視化
- xgboost
著者について
アルノキャンデル
Arno CandelはH2O.aiの最高技術責任者です。彼は、H2O-3とDriverless AIの主要なコミッターであり、2012年から高性能の機械学習アルゴリズムを設計および実装しています。以前は、ETHおよびSLACでスーパーコンピューティングに10年間携わり、次世代粒子加速器についてCERNと協力しました。 。ArnoはスイスのETHチューリッヒで物理学の博士号と修士号を取得しています。彼は、Fortune Magazineによって「2014 Big Data All-Star」に選ばれ、2015年にETH GLOBEによって紹介されました。Twitterで@ArnoCandelをフォローしてください。
原文:https://www.h2o.ai/blog/ai-automatic-machine-learning-feature-engineering-interpretability/
Start the discussion