Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

20161027 hadoop summit Generating Recommendations at Amazon Scale with Apache Spark and Amazon DSSTNE

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 49 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Andere mochten auch (20)

Anzeige

Ähnlich wie 20161027 hadoop summit Generating Recommendations at Amazon Scale with Apache Spark and Amazon DSSTNE (20)

Weitere von Amazon Web Services Japan (20)

Anzeige

Aktuellste (20)

20161027 hadoop summit Generating Recommendations at Amazon Scale with Apache Spark and Amazon DSSTNE

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Solutions Architect, Amazon Web Services Japan Generating Recommendations at Amazon Scale with Apache Spark and Amazon DSSTNE Ryosuke Iwanaga October 2016, Hadoop Summit Tokyo
  2. 2. 自己紹介 Ryosuke Iwanaga (岩永 亮介) • Twitter/GitHub @riywo Amazon Web Services Japan Solutions Architect • Web, Gaming • Big Data / Machine Learning / DevOps / Container Before Amazon • Software Engineer / Ops Engineer / DBA / etc.
  3. 3. Agenda • 機械学習とAmazon DSSTNE • AWSを利用したAmazonのレコメンデーション
  4. 4. 機械学習と Amazon DSSTNE
  5. 5. サービス、分析、リアルタイム、そして機械学習 • サービス: ビジネスのコア (E*) • ビジネス価値を高めるには、これだけでは不十分 • 分析: 過去に何があったか? • Hadoopが最初に注目されたところ • リアルタイム: 今何が起こっているか? • 最近注目されているところ (Spark Streaming, Flink, etc.) • 機械学習: これから何が起こるか? • これから注目を浴びていくところ
  6. 6. 機械学習は難しい?専門性が必要?
  7. 7. 子どもたちが算数の授業で学ぶこと
  8. 8. 算数の問題を解く時 問題を解くステップの本質 機械学習の問題を解く時 1. 正しい問いを与える 2. 現実世界を数式に 3. 計算 4. 数式を現実世界に 1. 正しい問いを与える 2. 現実世界を数式に 3. 計算 4. 数式を現実世界に →データ →アプリ
  9. 9. 学習タスク 推論タスク BIGDATA Labels 学習済みモデル Apple:0.9 Orange:0.1 Strawberry: 0.2 Banana:0.1 学習 推論 エンジン 結果 教師データ 機械学習のアーキテクチャ ここだけ提供しているSaaSも多い デバイス側で動作させる場合も多い大量の計算リソースが必要 「今日の天気は?」 「晴れです」 推論 エンジン学習 初期パラメータ ニューラルネットワーク定義 結果 配布 配布
  10. 10. Amazonの製品レコメンデーション • 製品A, B, C …, Zを買った人が、次に購入しそうな製品 はなんでしょう? 推論の入出力 • 入力: 各お客様の購入履歴 (過去のデータ) • 出力: 各お客様の、各製品に対する購入確率 (未来の予測) 課題 • 製品数・お客様数が膨大なため、学習・推論に時間がかかる
  11. 11. レコメンデーションのための機械学習 多数のアルゴリズム 行列因子分解 ロジスティック回帰 ナイーブベイズ etc. => ニューラルネットワーク
  12. 12. パーセプトロン 複数の入力値の積み重ねから、出力を計算 ニューラルネットワーク パーセプトロンを接続 多くの場合、複数層で構成 深層学習とは、深い層を持ったネットワークの学習効率化 ニューラルネットワークとは? y x0 x1 x2
  13. 13. ニューラルネットワークでレコメンデーション 出力層 (1万-1千万) 入力層 (1万-1千万) 隠れ層 (100-1,000) 製品カタログに対して、お客様の購入履歴は極端に小さい →ほとんどの重みがゼロ(疎なネットワーク) 愚直にニューラルネットワークを計算すると、ほとんどの計算は0×0
  14. 14. Amazon DSSTNE: Deep Sparse Scalable Tensor Network Engine AmazonがOSSとしてリリースしたニューラルネットワークのフレー ムワーク 巨大疎データと全結合レイヤに対して最適化されている モデル並列の複数GPUサポートが、とても効率的 100%の決定論的な実行 SM 3.x, 5.x, 6.xを完全にサポート (Kepler以上のGPU) 標準で分散学習をサポート (約20行のMPI呼び出し)  よくあるユースケース  製品レコメンデーション (製品数は膨大だが、各人の購入履歴は小さい)  自然言語学習 (語彙数は膨大だが、各文脈で使われるのはごく一部) https://github.com/amznlabs/amazon-dsstne
  15. 15. AWSを利用した Amazonのレコメンデーション
  16. 16. レコメンデーションシステムの要件 • 高速な繰り返しが、生産性のために最も重要 • 設計=>学習=>予測=>評価=>設計=>学習=>… • 多種多様なワークロードをなるべく少ないツールで • データサイエンティストがその仕事に集中できるように • レコメンデーション生成が24時間以内に終わること • 分散システムを使って、大規模データを扱う
  17. 17. GPUは超並列学習・推論に最適だが試行錯誤が重要 • アルゴリズム、パラメータ、フレームワークを変えて繰り返し • → 入出力を変えずに、学習器のみを入替えたい 機械学習では、その前後のデータ処理も重要 • データ整形、異常値排除等CPUが得意な処理 • →大量のデータを、分散処理したい • →1つのインタフェースで両方を扱いたい GPUとCPUを、統一された使い勝手で効率よく
  18. 18. アーキテクチャ Amazon EMR Amazon S3 Amazon ECS
  19. 19. コンテナとは何か? OS上の仮想化 プロセスの隔離 イメージ 自動化Server Guest OS Bins/Libs Bins/Libs App2App1
  20. 20. 深層学習とDocker(Container) • 深層学習のフレームワークはたくさんある • DSSTNE, Caffe, Theano, TensorFlow, MXNet, etc. • 深層学習では調整すべきパラメータが膨大 • 同じ入力で様々に比較するには? • 各フレームワークをコンテナ化 • コンテナイメージと設定を入れ替えるだけでOK • もうマシンのセットアップを心配しなくて良い • 例: CUDA Driverはホスト側で共有するのでセットアップ済
  21. 21. 参考: NVIDIA Docker https://github.com/NVIDIA/nvidia-docker
  22. 22. Sparkを使って対話的な速度を実現 join filter groupBy Stage 3 Stage 1 Stage 2 A: B: C: D: E: F: = cached partition= RDD map • 大規模並列 • 実行エンジンとしてMap ReduceではなくDAGを利用 • DataFrameのメモリ内にデ ータほ保持することでI/Oを 最小化 • パーティションを意識するの で、ネットワーク負荷になる Shuffleを避けられる
  23. 23. Apache Zeppelinのノートブックでクエリを構成
  24. 24. Amazon EMR
  25. 25. Why EMR? 自動化 分離 弾力性 連携 低コスト最新
  26. 26. Why EMR? 自動化 EC2起動 Cluster設定 Hadoop設定 アプリケーション インストール ジョブ実行モニタリングと 失敗のハンドリング
  27. 27. Why EMR? 分離アーキテクチャ コンピュートと ストレージを分離 データロスなく リサイズしたり止めたり Amazon S3上の同一データを 複数クラスタから利用 技術の進歩に合わせて 簡単にインフラも進歩できる 繰り返しでI/O重視な ワークロードにはHDFS スポットやリザーブ ドインスタンスで コストを抑える
  28. 28. Why EMR? ストレージとコンピュートの分離 Amazon Kinesis (Streams, Firehose) Hadoopジョブ 永続化クラスタ – 対話型クエリ (Spark-SQL | Presto | Impala) 変換クラスタ - バッチジョブ (夜間バッチで数時間) – ノードを増減 ETLジョブ Hive外部Metastore i.e Amazon RDS ワークロード特化型クラスタ (異なるサイズ、異なるバージョン) Amazon S3をストレージ create external table t_name(..)... location s3://bucketname/path-to-file/
  29. 29. FINRA事例: GreenplumからHive on EMRへ
  30. 30. EMR 5.0 - Applications
  31. 31. Amazon ECS
  32. 32. Amazon EC2 Container Service コンテナ管理を あらゆるスケールで 柔軟なコンテナの配置 AWSの基盤との連携
  33. 33. Amazon ECS コンポーネント • Task • Instance上で実行されてい る実際のContainer • Task Definition • Taskで使うContainer、及 び周辺設定の定義 • Cluster • Taskが実行されるEC2 Instance群 • Manager • ClusterのリソースとTaskの 状態を管理 • Scheduler • Clusterの状態をみて、Task を配置 • Agent • EC2 InstanceとManagerの 連携を司る
  34. 34. Cluster, Scheduler, Task Scheduler ManagerCluster Task Definition Task Agent
  35. 35. 高性能GPUインスタンスタイプ • NVIDIA K80を最大16GPU搭載 • 最大64 vCPUのIntel Broadwell プロセッサと、最大 732 GiB RAM • Elastic Network Adaptor (ENA)による20 Gbps ネットワーク P2 インスタンス p2.xlarge: $ 0.90 per hour (us-east-1)〜利用可能 リザーブドインスタンスやスポットインスタンスももちろん可能 https://aws.amazon.com/jp/blogs/news/new-p2-instance-type-for-amazon-ec2-up-to-16-gpus/
  36. 36. 学習はモデル並列、推論はデータ並列
  37. 37. AWSを利用したことによる利点 スケーラビリティ フルマネージドサービス GPUインスタンス
  38. 38. まとめ
  39. 39. Amazonのレコメンデーション on AWS • SparkとZeppelinをデータサイエンティストの統一インタ フェースに • DSSTNEで巨大な疎なニューラルネットを実行 • CPUクラスタをEMR、GPUクラスタをECSで管理 • 今すぐあなたも試せます! • GPU高速化のワークロードをAmazon ECS上で管理する • 上記のアーキテクチャを簡単に試すことができるAWS CloudFormationテンプレート付きです
  40. 40. 参考情報 • Apache SparkとAmazon DSSTNEを使った、Amazon規 模のレコメンデーション生成 • 今回も紹介しているアーキテクチャの解説ブログ • Amazon S3を中心とするデータ分析のベストプラクティス • S3をデータレイクとして構成する際のアーキテクチャ • AWSでBig Data活用 • AWSの各種サービスを駆使した事例
  41. 41. Thank you!

×