こんにちは、越です。
すこし遅れましたが、2/18にDevelopers Summitへ行ってきたので、聞いてきたセッションのメモをブログへ記載させていただきます。
エンジニアなら使える深層学習 〜TensorFlowやDataRobotで機械学習がもっと身近に〜
シバタアキラ [DataRobot, Inc] @madyagi
DataRobot
機械学習を使った予測モデルを誰でも簡単に生成し、リアルな問題解決に活かすことができるプラットフォーム。
機械学習とは
コンピュータアルゴリズムにパターンを学習させ、予測や識別などの問題を解かせること
機械学習の種類
- 教師あり学習
- 教師なし学習
- 強化学習
機械学習への入力データと解ける問題
分類
- 2値分類: True/False
- 多値分類: カテゴリー
回帰
- 連続値: 数値
時系列
- 数値x時間
レコメンデーション
- 数値xアイテム
クラスタリング
すでに広くのビジネスに応用されている
金融
- 与信
- 保険
- 事故に合う確率
マーケティング
- クリック率
- キャンペーン効果
人事・採用
- マッチング
- 辞めそうか?
スポーツ
- 打率
ヘルスケア
- 再入院率
Tensorflow
深層学習の構築に必要な線形代数を表現し、GPUなどの分散処理技術を使って高速に計算するためのライブラリ
デモ
- pipでtensorflowをインストール https://www.tensorflow.org/versions/r0.7/get_started/os_setup.html#pip-installation
- Giant Pandaの画像を識別 https://www.tensorflow.org/versions/r0.7/tutorials/image_recognition/index.html#usage-with-python-api
学習済みであるものしか識別できない
乗り遅れるな!KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
田中 裕一 [日本アイ・ビー・エム]
ターゲット
- これからビックデータを作り、集めたい方
- Sparkを始めたい、ビックデータを始めたいエンジニア
- ビックデータをやることになったけど、なにから始めたら良いかわからない方
持ち帰りポイント
- Spark + Kafkaを使った解析基盤の概要の把握
- ビジネス担当の方には「こんなことができるんじゃないか」という発想の種
Hadoop/Sparkの広がりについて
- イノベータ
- アーリーアドプタ
- アーリーマジョリティ←いまここ
- レイトマジョリティ
- ラガード
毎日発生しているデータ
- ウェブサイトデータ
- センサーデータ
- カスタマーデータ
- ログデータ
- オフィスデータ
- ソーシャルデータ
- オペレーションデータ
- メディアデータ
従来のHadoop基盤のおさらいと問題提起
リアルタイム解析基盤について
リアルタイム解析基盤ではキューが重要
Kafkaがデータハブ
- Inputの世界
- OutPutの世界
- BigDataの世界
Kafkaを用いて、キューによる処理系の分離をすることで、冗長化を実現
大量のデータ ↓ (どんなデータも一旦)Kafkaへ保存 ↓ データに合わせた処理
リアルタイム解析基盤の活用
RAW data(Kafka) ↓ Sparkで処理 ↓ 結果(Kafka) → API ↓ RDB
まとめ
- Sparkは利用事例や活用事例がこれからなサービス
- 多様な業種で必要とされるビッグデータ処理を包括的にインタラクティブに扱うことができる
- 設計にあたってキューを使っておくとアーキテクチャ全体の耐障害性・可用性が担保しやすい
マイクロサービス時代の大規模動画配信基盤 〜 Ruby × Go = ∞
小嶋 聡史 [DMM.comラボ]/江藤 慎吾 [DMM.comラボ]
DMMの動画配信サービスアーキテクトや開発フローについて
マイクロサービスとは
独立した軽量なシステムをシンプルに連携し構成したアーキテクチャ 連携=主にHTTPのRestfulな通信を想定
動画配信基盤
インターネットを介して動画コンテンツを配信するサービス 動画配信は大きく2種類に分類 - VOD 録画されてる動画を配信 - LOD ライブに動画を配信
システムの切り出し
- 論理的な独立性を考慮する
- 物理的な独立性を考慮する
ソースコードの変更が最小限になるように設計した
必要なものをプラグインから選択できるようにした
Pub/Subメッセージングモデル
設定変更の電番で使用
技術選定
技術選定で大事にしたこと
- エンジニアに習得できるか?
- エンジニアが成長できるか?
- エンジニアが確保できるか?
評価軸
- 学習コスト
- 環境適応
- 機能
- 拡張性
- 将来性
- 学習コスト
- 信頼性
- レスポンス速度
Rubyと比較した時のGoの評価
メリット
デメリット
- JSONなどの動的データの扱いは不向き
- 戻り値によるエラーチェックが必須で冗長になりがち
- ライブラリやノウハウが少ない
- デバッガやロガー周りが充実していない
最終的なGo言語の決定要素
- ハイパフォーマンスである
- システムコールまで追える
- 実用環境での十分な採用実績
- 学習が容易で保守しやすい
- ノウハウが資産になる
- 今後もビジネスニーズがある