Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

世界征服を目指すJubatusだからこそ期待する5つのポイント

11,616 views

Published on

2013/06/02 Jubatus Casual Talks #1
『世界征服を目指すJubatusだからこそ期待する5つのポイント』

NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス 下垣 徹

Published in: Technology
  • Be the first to comment

世界征服を目指すJubatusだからこそ期待する5つのポイント

  1. 1. Copyright © 2013 NTT DATA Corporation2013/06/02Jubatus Casual Talks #1NTTデータ 基盤システム事業本部OSSプロフェッショナルサービス下垣 徹世界征服を目指す Jubatus だからこそ期待する 5 つのポイント
  2. 2. 2Copyright © 2013 NTT DATA Corporation 下垣 徹 (しもがき とおる / @shimtoru) 株式会社NTTデータ 基盤システム事業本部 RDBMSスペシャリスト OSSのデータベース「PostgreSQL」使い ミッションクリティカルなOracleのシステムをPostgreSQLへ移行する案件を手掛ける Oracleの高速データロードツールSQL*LoaderのPostgreSQL版を開発 ここ数年はHadoopに従事 巨大なデータをどう取り扱うかに取り組む 2011/01/28発売の「Hadoop徹底入門」でとりまとめを担当 第4刷を発売中 もうすぐ第二版を発売予定自己紹介
  3. 3. 3Copyright © 2013 NTT DATA Corporation 安定したシステムを提供するためにはそのミドルウェアをコントロール可能であることコントロール可能であるためには、状態を正しく把握できること システムを提供する立場からすると「多種多様であること」は必ずしも好ましいとは言えない言うなれば 「多種 単 様」 であることが望ましいあれもこれも見ないといけない & 見るためのスキルが必要結果としてメンテナンスコストが膨らむ今日の立ち位置:システムを提供する側として
  4. 4. 4Copyright © 2013 NTT DATA Corporation 静的なシステム・アーキテクチャ付加しなければならない機能を作り込みやすいフレームワークとして使いやすい、分かり易いインストールしやすいメンテナンスしやすい 動的なシステム・アーキテクチャ性能、サイジング障害の検知、復旧する アプリケーション開発機会学習のフレームワークとして必要なもの .. こと足りてる?機能を開発、実装、検証する際に必要な、道具立てが揃っている今日の立ち位置:システムを提供する側として
  5. 5. 5Copyright © 2013 NTT DATA Corporation 比較的安心して使えるのは Classifier・Recommender あとは AnomalyJubatus の各機能の実装状況 (2013年5月時点)No 機能名 実装状況1 Classifier ◯ 最も安定した学習結果を得られる。△ 学習の際のハイパーパラメータの調整機能が不足2 Recommender◯ 比較的安定した学習結果を得られる。△ 類似度の計算方式を調整できない。△ 並列処理時の有難味が薄い。3 Regression △ 学習時の収束性に問題がある4 Stat △ 基本的な統計処理が可能だが、統計処理の対象範囲指定ができないため使い所が難しい5 Graph△ 最短経路の探索機能に制限があり(landmarkの柔軟な指定ができない)、出力される内容も正確でない場合がある。△ 重み付きグラフ・有向グラフへに非対応6 Anomaly◯ 機能的には比較的使いやすい△ パラメータの調整が難しすぎる△ 自動的に「忘れる」機能が欲しい
  6. 6. 6Copyright © 2013 NTT DATA Corporation1. モデルの取得2. 障害に対する配慮3. ミドルウェアとしての構成をシンプルに4. mixが効果的に動いてほしい5. Jubatus の動作モデルのあり方について世界征服を目指す Jubatusだからこそ期待する5つのポイント
  7. 7. 7Copyright © 2013 NTT DATA Corporation 現状の Jubatus ではモデルを取得することができないため、Jubatus内部での学習状況を把握できない 自社では Classifier について Jubatus の save の出力を参考に、モデル(特徴ベクトル) を取得する機能を自作して活用中 「Rだと普通に使える機能」を提供してほしい @kumagi さんによると、すでに実装し終えているとか...??1. モデルが取得できない
  8. 8. 8Copyright © 2013 NTT DATA Corporation 現状の Jubatus は、障害に対する配慮が十分とはいえない そもそも、どういう障害が起こりえて、どこを観測していればどのような障害が発生していることを確認できるのだろうか?例:この2つのエラーメッセージ、状態の違いって何...?- msgpackrpc.error.TimeoutError: Request timed out- msgpackrpc.error.RPCError: request timed out まずは「事象を把握できること」を地道に作りこんでほしい エラーメッセージから問題が識別できる 問題が識別できるようにエラーメッセージを出す2. 障害に対する配慮
  9. 9. 9Copyright © 2013 NTT DATA Corporation 現状の Jubatus は実験的に作ってみた要素が強い1. パッケージの依存関係が多すぎるインストールが面倒くさい- devパッケージ・rpmパッケージともに用意されたので昔ほど煩雑ではない- ネットワークに繋がっている環境でインストールする分にはかまわないが...依存パッケージのバージョンにもかなり引きずられる- Jubatus のバージョンアップのたびに周辺パッケージもアップデートいざ運用に入ったときにこれだけのパッケージの面倒をみるの...?- pficommon と MessagePack は特に強結合3. ミドルウェアとしての構成が複雑
  10. 10. 10Copyright © 2013 NTT DATA Corporation2. 実装言語も多すぎるJubatus は C++ で実装されているが、そのコードの一部を自動生成するためにIDLが用意されている- mpidl : 各種ヘッダファイルの作成 → Haskel- jenerator : impl や keeper の作成 → OCaml本当に言語を分ける必要があるのか...3. ミドルウェアとしての構成が複雑
  11. 11. 11Copyright © 2013 NTT DATA Corporation Jubatus の Classifier は mix によって重みベクトル(モデルの実体)を平均化している しかし、この操作の意味は少なくとも自明に了解できる類のものではない例えば、以下の二つの状況を考える。1. データを 2 プロセスに振り分けて学習し、結果を平均化する2. データを 1/2 に間引き、1 プロセスで学習するこのどちらが「正しい」のかの判断には慎重な検討を要し、ある程度以上のデータ量を前提とすれば、直感的には、むしろ後者の方が統計的に正しい結果を得られるようにも思われる。 mix を効果的に使うための構成やチューニング方法といった情報の提供も望まれる4. mixが効果的に動いてほしい
  12. 12. 12Copyright © 2013 NTT DATA Corporation(参考) mix の動作検証mixなし mix間隔512mix間隔64 mix間隔81プロセス8プロセスmixあり/mixなしで収束速度はほぼ同じ ※グラフの横軸は投入件数、縦軸は正答率(25件ごとの移動平均)<評価について>・1 プロセスの場合、評価を 8 回に 1 回とした・評価は特定の1 プロセスについてのみ実施した(8 プロセスの場合はそのうちの1 プロセス)mix間隔を狭めるにつれむしろ正答率の立ち上がりが鈍化・mix が効果を発揮できているのかを調査・Classifier に対し、20 Newsgroups の場合の記事を 1 件ずつ評価・学習の順で投入し、評価結果が正解か不正解かを出力
  13. 13. 13Copyright © 2013 NTT DATA Corporation 機械学習の特性と並列処理の有効活用について Jubatus は最初に実装された Classifier に適した動作モデルになっているが、全モデルで共通の構成で良いのか? レコード群を各プロセスで分割して保持し、評価を並列実行するようにすれば高速化可能なはず → Recommender に限らず機械学習モデルごとに並列度を活かせるような動作モデルをとる必要があるのでは?5. Jubatus の動作モデルのあり方についてClassifier Recommender学習 遅い 速い評価 速い 遅いClassifier の場合、相対的に処理速度が遅くなる学習フェーズの部分を並列化することで高速化を図っているRecommender の場合、並列度を上げても評価にかかる時間は一定(Jubatus ではモデルを全プロセスで共通化するため)→ 並列化してもプロセスのプールができるだけであり、高速化は期待できず、有り難みが少ない
  14. 14. 14Copyright © 2013 NTT DATA Corporation Jubatus は開発チームが非常にアクティブ バグを指摘すると素早く修正してくれる これからが正念場のプロダクト Jubatusの発展を応援しています! 一緒にPOCをやってみたいという方は遠慮なくご連絡を!最後に
  15. 15. Copyright © 2011 NTT DATA CorporationCopyright © 2013 NTT DATA Corporationお問い合わせ先:株式会社NTTデータ 基盤システム事業本部OSSプロフェッショナルサービスURL: http://oss.nttdata.co.jp/hadoopメール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496

×